GIT-GENERATE-CHANGELOG(1)

πŸ“¦ version 1.16.4, in nixos 26.05, nixpkgs unstable

πŸ’… 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 is CHANGELOG.md.
  • -b, --base NAME β€” optional base file to append the generated changes to. default is HISTORY.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 is true.
  • --[no-]issues-wo-labels β€” include closed issues without labels. default is true.
  • --[no-]pr-wo-labels β€” include pull requests without labels. default is true.
  • --[no-]pull-requests β€” include pull requests. default is true.
  • --[no-]filter-by-milestone β€” use the milestone to detect when an issue was resolved. default is true.
  • --[no-]issues-of-open-milestones β€” include issues of open milestones. default is true.
  • --[no-]author β€” add the author of the pull request at the end. default is true.
  • --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 is true.
  • --[no-]compare-link β€” include the compare link (Full Changelog) between the older version and the newer version. default is true.
  • --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 is duplicate,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 is Release summary,release-summary,Summary,summary.
  • --breaking-labels x,y,z β€” issues with these labels get added to a new section called "Breaking changes". default is backwards-incompatible,breaking.
  • --enhancement-labels x,y,z β€” issues with these labels land in the "Implemented enhancements" section. default is enhancement,Enhancement.
  • --bug-labels x,y,z β€” issues with these labels land in the "Fixed bugs" section. default is bug,Bug.
  • --deprecated-labels x,y,z β€” issues with these labels land in a section called "Deprecated". default is deprecated,Deprecated.
  • --removed-labels x,y,z β€” issues with these labels land in a section called "Removed". default is removed,Removed.
  • --security-labels x,y,z β€” issues with these labels land in a section called "Security fixes". default is security,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 is false.
  • --future-release RELEASE-VERSION β€” put the unreleased changes in the specified release number.
  • --release-branch RELEASE-BRANCH β€” limit pull requests to the release branch, like master or release.
  • --http-cache β€” use HTTP Cache to cache GitHub API requests (useful for large repos). default is true.
  • --[no-]cache-file CACHE-FILE β€” filename to use for the cache. default is github-changelog-http-cache in a temporary directory.
  • --cache-log CACHE-LOG β€” filename to use for the cache log. default is github-changelog-logger.log in a temporary directory.
  • --ssl-ca-file PATH β€” path to the cacert.pem file. default is a bundled lib/github_changelog_generator/ssl_certs/cacert.pem. it respects SSL_CA_PATH. πŸ”
  • --require file1.rb,file2.rb β€” paths to the Ruby file(s) to require before generating the changelog.
  • --[no-]verbose β€” run verbosely. default is true. 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