[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-7675":3},{"id":4,"name":5,"fullName":6,"owner":5,"repo":5,"description":7,"homepage":8,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":16,"stars30d":17,"stars90d":15,"forks30d":15,"starsTrendScore":18,"compositeScore":19,"rankGlobal":9,"rankLanguage":9,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":23,"topics":24,"createdAt":9,"pushedAt":9,"updatedAt":35,"readmeContent":36,"aiSummary":37,"trendingCount":15,"starSnapshotCount":15,"syncStatus":16,"lastSyncTime":38,"discoverSource":39},7675,"github-changelog-generator","github-changelog-generator\u002Fgithub-changelog-generator","Automatically generate change log from your tags, issues, labels and pull requests on GitHub.","",null,"Ruby",7528,847,104,123,0,2,5,1,39.79,"MIT License",false,"master",true,[25,26,27,28,29,30,31,32,33,34],"changelog","changelog-generator","generator","github-api","github-extension","hacktoberfest","labels","markdown","notable-changes","ruby","2026-06-12 02:01:42","[![Gem Version](https:\u002F\u002Fbadge.fury.io\u002Frb\u002Fgithub_changelog_generator.svg)](http:\u002F\u002Fbadge.fury.io\u002Frb\u002Fgithub_changelog_generator)\n[![Ruby CI](https:\u002F\u002Fgithub.com\u002Fgithub-changelog-generator\u002Fgithub-changelog-generator\u002Factions\u002Fworkflows\u002Ftest.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fgithub-changelog-generator\u002Fgithub-changelog-generator\u002Factions\u002Fworkflows\u002Ftest.yml)\n[![Join the chat at https:\u002F\u002Fgitter.im\u002Fgithub-changelog-generator\u002Fchat](https:\u002F\u002Fbadges.gitter.im\u002Fgithub-changelog-generator\u002Fchat.svg)](https:\u002F\u002Fgitter.im\u002Fgithub-changelog-generator\u002Fchat?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n# github-changelog-generator ![GitHub Logo](..\u002Fmaster\u002Fimages\u002Flogo.jpg)\n\n\u003C!--\nTo update TOC, please run:\n> doctoc .\u002FREADME.md --github\n -->\n\u003C!-- START doctoc generated TOC please keep comment here to allow auto update -->\n\u003C!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->\n\n  - [Changelog generation has never been so easy](#changelog-generation-has-never-been-so-easy)\n  - [*What’s the point of a changelog?*](#whats-the-point-of-a-changelog)\n  - [*Why should I care?*](#why-should-i-care)\n- [Installation](#installation)\n- [Usage](#usage)\n  - [Running with CLI:](#running-with-cli)\n  - [Running with Docker](#running-with-docker)\n- [Output example](#output-example)\n  - [Params](#params)\n  - [Params File](#params-file)\n  - [GitHub token](#github-token)\n- [Migrating from a manual changelog](#migrating-from-a-manual-changelog)\n  - [Rake task](#rake-task)\n- [Features and advantages of this project](#features-and-advantages-of-this-project)\n  - [Using the summary section feature](#using-the-summary-section-feature)\n  - [Alternatives](#alternatives)\n  - [Projects using this library](#projects-using-this-library)\n- [Practical Use Cases](#practical-use-cases)\n  - [Creating GitHub Release Notes](#creating-github-release-notes)\n- [Am I missing some essential feature?](#am-i-missing-some-essential-feature)\n- [FAQ](#faq)\n- [Contributing](#contributing)\n- [Contact us](#contact-us)\n- [License](#license)\n\n\u003C!-- END doctoc generated TOC please keep comment here to allow auto update -->\n\n\n### Changelog generation has never been so easy\n\n**Fully automated changelog generation** - This gem generates a changelog file based on **tags**, **issues** and merged **pull requests** (and splits them into separate lists according to labels) from :octocat: GitHub.\n\nSince you don't have to fill your `CHANGELOG.md` manually now: just run the script, relax and take a cup of :coffee: before your next release! :tada:\n\n### *What’s the point of a changelog?*\n\nTo make it easier for users and contributors to see precisely what notable changes have been made between each release (or version) of the project.\n\n### *Why should I care?*\n\nBecause software tools are for _people_. \"Changelogs make it easier for users and\ncontributors to see precisely what notable changes have been made between each\nrelease (or version) of the project.\"\n\n:arrow_right: *[https:\u002F\u002Fkeepachangelog.com](https:\u002F\u002Fkeepachangelog.com)*\n\n## Installation\n\nGitHub Changelog Generator is a [Ruby](https:\u002F\u002Fwww.ruby-lang.org\u002F)\nprogram, distributed as a RubyGem. The Ruby language homepage has an [Installation page](https:\u002F\u002Fwww.ruby-lang.org\u002Fen\u002Fdocumentation\u002Finstallation\u002F).\n\nInstall the gem like:\n\n    $ gem install github_changelog_generator\n\nDepending on your system, you _may_ need to run the shell as an Administrator (Windows),\nor use `sudo gem install github_changelog_generator` (Linux).\n\n\n## Usage\n\n\n### Running with CLI:\n\n\t   github_changelog_generator -u github_project_namespace -p github_project\n\n(where the project namespace is _likely_ your username if it's a project you own, but it could also be the namespace of the project)\n\n\n### Running with Docker\n\nUsing [Docker](https:\u002F\u002Fwww.docker.com\u002Fproducts\u002Fdocker-desktop) is an alternative to installing Ruby and the gem.\n\nExample invocation:\n\n    $ docker run -it --rm -v \"$(pwd)\":\u002Fusr\u002Flocal\u002Fsrc\u002Fyour-app githubchangeloggenerator\u002Fgithub-changelog-generator\n\n\n\n- For GitHub Enterprise repos, specify *both* `--github-site` and `--github-api` options:\n\n       $ github_changelog_generator --github-site=\"https:\u002F\u002Fgithub.yoursite.com\" \\\n                                  --github-api=\"https:\u002F\u002Fgithub.yoursite.com\u002Fapi\u002Fv3\u002F\"\n\n\nThis generates a `CHANGELOG.md`, with pretty Markdown formatting.\n\n\n## Output example\n\n- Look at **[CHANGELOG.md](https:\u002F\u002Fgithub.com\u002Fgithub-changelog-generator\u002Fgithub-changelog-generator\u002Fblob\u002Fmaster\u002FCHANGELOG.md)** for this project\n- [ActionSheetPicker-3.0\u002FCHANGELOG.md](https:\u002F\u002Fgithub.com\u002Fskywinder\u002FActionSheetPicker-3.0\u002Fblob\u002Fdevelop\u002FCHANGELOG.md) was generated by command:\n\n      $ github_changelog_generator -u github-changelog-generator -p ActionSheetPicker-3.0\n\n- In general, it looks like this:\n\n> ## [1.2.5](https:\u002F\u002Fgithub.com\u002Fgithub-changelog-generator\u002Fgithub-changelog-generator\u002Ftree\u002F1.2.5) (2015-01-15)\n>\n> [Full Changelog](https:\u002F\u002Fgithub.com\u002Fgithub-changelog-generator\u002Fgithub-changelog-generator\u002Fcompare\u002F1.2.4...1.2.5)\n>\n> **Implemented enhancements:**\n>\n> - Use milestone to specify in which version bug was fixed [\\#22](https:\u002F\u002Fgithub.com\u002Fgithub-changelog-generator\u002Fgithub-changelog-generator\u002Fissues\u002F22)\n>\n> **Fixed bugs:**\n>\n> - Error when trying to generate log for repo without tags [\\#32](https:\u002F\u002Fgithub.com\u002Fgithub-changelog-generator\u002Fgithub-changelog-generator\u002Fissues\u002F32)\n>\n> **Merged pull requests:**\n>\n> - PrettyPrint class is included using lowercase 'pp' [\\#43](https:\u002F\u002Fgithub.com\u002Fgithub-changelog-generator\u002Fgithub-changelog-generator\u002Fpull\u002F43) ([schwing](https:\u002F\u002Fgithub.com\u002Fschwing))\n>\n> - support enterprise github via command line options [\\#42](https:\u002F\u002Fgithub.com\u002Fgithub-changelog-generator\u002Fgithub-changelog-generator\u002Fpull\u002F42) ([glenlovett](https:\u002F\u002Fgithub.com\u002Fglenlovett))\n\n### Params\n\nPrint help for all command-line options to learn more details:\n\n    $ github_changelog_generator --help\n\nFor more details about params, read the Wiki page: [**Advanced changelog generation examples**](https:\u002F\u002Fgithub.com\u002Fgithub-changelog-generator\u002Fgithub-changelog-generator\u002Fwiki\u002FAdvanced-change-log-generation-examples)\n\n### Params File\n\nIn your project root, you can put a params file named `.github_changelog_generator` to override default params:\n\nExample:\n\n```\nunreleased=false\nfuture-release=5.0.0\nsince-tag=1.0.0\n```\n\n### GitHub token\n\nGitHub only allows **50 unauthenticated requests per hour**.\n\nTherefore, it's recommended to run this script with authentication by using a **token**.\n\nHere's how:\n\n- [Generate a token here](https:\u002F\u002Fgithub.com\u002Fsettings\u002Ftokens\u002Fnew?description=GitHub%20Changelog%20Generator%20token) - you only need \"repo\" scope for private repositories\n- Either:\n    - Run the script with `--token \u003Cyour-40-digit-token>`; **OR**\n    - Set the `CHANGELOG_GITHUB_TOKEN` environment variable to your 40 digit token\n\nYou can set an environment variable by running the following command at the prompt, or by adding it to your shell profile (e.g., `.env`, `~\u002F.bash_profile`, `~\u002F.zshrc`, etc):\n\n    export CHANGELOG_GITHUB_TOKEN=\"«your-40-digit-github-token»\"\n\nSo, if you get a message like this:\n\n``` markdown\nAPI rate limit exceeded for github_username.\nSee: https:\u002F\u002Fdeveloper.github.com\u002Fv3\u002F#rate-limiting\n```\n\nIt's time to create this token! (Or, wait an hour for GitHub to reset your unauthenticated request limit.)\n\n## Migrating from a manual changelog\n\nKnowing how dedicated you are to your project, you probably haven't been waiting for `github-changelog-generator` to keep a changelog.\nBut you probably don't want your project's open issues and PRs for all past features listed in your historic changelog, either.\n\nThat's where `--base \u003Cyour-manual-changelog.md>` comes in handy!\nThis option lets append your old manual changelog to the end of the generated entries.\n\nIf you have a `HISTORY.md` file in your project, it will automatically be picked as the static historical changelog and appended.\n\n### Rake task\n\nYou love `rake`? We do, too! So, we've made it even easier for you:\nwe've provided a `rake` task library for your changelog generation.\n\nConfigure the task in your `Rakefile`:\n\n```ruby\nrequire 'github_changelog_generator\u002Ftask'\n\nGitHubChangelogGenerator::RakeTask.new :changelog do |config|\n  config.user = 'username'\n  config.project = 'project-name'\n  config.since_tag = '0.1.14'\n  config.future_release = '0.2.0'\nend\n```\n\nAll command-line options can be passed to the `rake` task as `config`\nparameters. And since you're naming the `rake` task yourself, you can create\nas many as you want.\n\nYou can look for params names from the [parser source code (#setup_parser)](https:\u002F\u002Fgithub.com\u002Fgithub-changelog-generator\u002Fgithub-changelog-generator\u002Fblob\u002Fmaster\u002Flib\u002Fgithub_changelog_generator\u002Fparser.rb). For example, to translate the bugs label to Portuguese, instead of setting `config.bugs_label`, you have to set `config.bug_prefix`, and so on.\n\n## Features and advantages of this project\n\n- Generate canonical, neat changelog file, with default sections that follow [basic changelog guidelines](http:\u002F\u002Fkeepachangelog.com) :gem:\n- Optionally generate **Unreleased** changes (closed issues that have not released yet) :dizzy:\n- **GitHub Enterprise support** via command line options! :factory:\n- Flexible format **customization**:\n    - **Customize** issues that **should be added** to changelog :eight_spoked_asterisk:\n    - **Custom date formats** supported (but keep [ISO 8601](http:\u002F\u002Fxkcd.com\u002F1179\u002F) in mind!) :date:\n    - Manually specify the version that fixed an issue (for cases when the issue's Closed date doesn't match) by giving the issue's `milestone` the same name as the tag of version :pushpin:\n    - Automatically **exclude specific issues** that are irrelevant to your changelog (by default, any issue labeled `question`, `duplicate`, `invalid`, or `wontfix`) :scissors:\n- **Distinguish** issues **by labels**. :mag_right:\n    - Merged pull requests (all merged pull-requests) :twisted_rightwards_arrows:\n    - Bug fixes (issues labeled `bug`) :beetle:\n    - Enhancements (issues labeled `enhancement`) :star2:\n    - Issues (closed issues with no labels) :non-potable_water:\n    - Plus any additional custom label-to-section mappings you want :gear:\n\n- Manually include or exclude issues by labels :wrench:\n- Customize lots more! Tweak the changelog to fit your preferences :tophat:\n(*See `github_changelog_generator --help`  for details)*\n\n### Using the summary section feature\n\nFor each version, you can add a _release summary_ with text, images, gif animations,\netc, and show new features and notes clearly to the user. This is done using GitHub metadata.\n\n**Example**: adding the release summary for v1.0.0:\n\n1. Create a new GitHub Issue\n2. In the Issue's _Description_ field, add your release summary content\n```\n![image](https:\u002F\u002Fuser-images.githubusercontent.com\u002F12690315\u002F45935880-006a8200-bfeb-11e8-958e-ff742ae66b96.png)\n\nHello, World! :tada:\n```\n3. Set the Issue Label `release-summary` and add it to the GitHub Milestone `v1.0.0`\n4. Close the Issue and execute `github-changelog-generator`\n5. The result looks like this:\n> ## [v1.0.0](https:\u002F\u002Fgithub.com\u002Fgithub-changelog-generator\u002Fgithub-changelog-generator\u002Ftree\u002F1.0.0) (2014-11-07)\n> [Full Changelog](https:\u002F\u002Fgithub.com\u002Fgithub-changelog-generator\u002Fgithub-changelog-generator\u002Fcompare\u002F0.1.0...1.0.0)\n>\n> ![image](https:\u002F\u002Fuser-images.githubusercontent.com\u002F12690315\u002F45935880-006a8200-bfeb-11e8-958e-ff742ae66b96.png)\n>\n> Hello, World! :tada:\n>\n> **Implemented enhancements:**\n> - Add some features\n\n### Alternatives\n\nHere is a [wikipage list of alternatives](https:\u002F\u002Fgithub.com\u002Fgithub-changelog-generator\u002Fgithub-changelog-generator\u002Fwiki\u002FAlternatives) that I found. But none satisfied my requirements.\n\n*If you know other projects, feel free to edit this Wiki page!*\n\n\n### Projects using this library\n\nHere's a [wikipage list of projects](https:\u002F\u002Fgithub.com\u002Fgithub-changelog-generator\u002Fgithub-changelog-generator\u002Fwiki\u002FProjects-using-GitHub-Changelog-Generator).\n\nIf you've used this project in a live app, please let me know! Nothing makes me happier than seeing someone else take my work and go wild with it.\n\n*If you are using `github_changelog_generator` to generate your project's changelog, or know of other projects using it, please [add it to this list](https:\u002F\u002Fgithub.com\u002Fgithub-changelog-generator\u002Fgithub-changelog-generator\u002Fwiki\u002FProjects-using-GitHub-Changelog-Generator).*\n\n## Practical Use Cases\n\n### Creating GitHub Release Notes\n\n`github_changelog_generator` can be used in combination with the [github cli](https:\u002F\u002Fcli.github.com\u002F) to create release notes.  Use the `--since-tag` and `--output` options of `github_changelog_generator` to create a changelog for the current release and store the results in a file.  In the\nexample below, version `2.0.0` is the current release and version `1.0.0` is the previous release.\n\n```\nmkdir -p build\ngithub_changelog_generator \\\n  --since-tag 1.0.0 \\\n  --output build\u002Fchangelog.md\n```\n\nThen use the [release create](https:\u002F\u002Fcli.github.com\u002Fmanual\u002Fgh_release_create) feature of the github cli to create a new github release\n\n```\ngh release create 2.0.0 \\\n  --notes-file build\u002Fchangelog.md \\\n  --title 2.0.0\n```\n\n## Am I missing some essential feature?\n\n- **Nothing is impossible!**\n\n- Open an [issue](https:\u002F\u002Fgithub.com\u002Fgithub-changelog-generator\u002Fgithub-changelog-generator\u002Fissues\u002Fnew\u002Fchoose) and let's make the generator better together!\n\n- *Bug reports, feature requests, patches, and well-wishes are always welcome.* :heavy_exclamation_mark:\n\n## FAQ\n\n- ***I already use GitHub Releases. Why do I need this?***\n\nGitHub Releases is a very good thing. And it's very good practice to maintain it. (Not a lot of people are using it yet!) :congratulations:\n\n*BTW: I would like to support GitHub Releases in [next releases](https:\u002F\u002Fgithub.com\u002Fgithub-changelog-generator\u002Fgithub-changelog-generator\u002Fissues\u002F56) ;)*\n\nI'm not trying to compare the quality of handwritten and auto-generated logs. That said....\n\nAn auto-generated changelog really helps, even if you manually fill in the release notes!\n\n- **I want to define my own label-to-section mapping, how can I do it?**\n\nThis is possible using either the ``add-sections`` or ``configure-sections``\nentry in ``.github_changelog_generator``. For example, to add a single new\nentry called \"Maintenance\" that will catch PRs tagged with your ``maintenance``\nlabel, you can add to ``.github_changelog_generator`` the line:\n```\nadd-sections= {\"maintenance\":{\"prefix\":\"**Project maintenance**\",\"labels\":[\"maintenance\"]}}\n```\nA similar approach can be used via ``configure-sections`` to set all section\nproperties (including adding new ones!).\n\n- ***My Ruby version is very old, can I use this?***\n\nWhen your Ruby is old, and you don't want to upgrade, and you want to\ncontrol which libraries you use, you can use Bundler.\n\nIn a Gemfile, perhaps in a non-deployed `:development` group, add this\ngem:\n\n```ruby\ngroup :development do\n  gem 'github_changelog_generator', require: false\nend\n```\n\nThen you can keep back dependencies like rack, which currently is only\ncompatible with Ruby >= 2.2.2. So, use an older version for your app by\nadding a line like this to the Gemfile:\n\n```\ngem 'rack', '~> 1.6'\n```\n\nThis way, you can keep on using github_changelog_generator, even if you\ncan't get the latest version of Ruby installed.\n\n- ***Windows: 1.14.x wants to create a file on an invalid path. Why?***\n\nWindows: [v1.14.0 introduced a bug where it attempts to create \u002Ftmp\u002Fgithub_changelog-logger.log... which isn't a valid path on Windows and thus fails](https:\u002F\u002Fgithub.com\u002Fgithub-changelog-generator\u002Fgithub-changelog-generator\u002Fissues\u002F458)\n\nWorkaround: Create a `C:\\tmp`.\n\n## Contributing\n\nWould you like to contribute to this project? [CONTRIBUTING.md] has all the details on how to do that.\n\n[CONTRIBUTING.md]: CONTRIBUTING.md\n\n## Contact us\n[Join the chat at gitter : github-changelog-generator](https:\u002F\u002Fgitter.im\u002Fgithub-changelog-generator\u002Fchat?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n## License\n\nGitHub Changelog Generator is released under the [MIT License](http:\u002F\u002Fwww.opensource.org\u002Flicenses\u002FMIT).\n","github-changelog-generator 是一个用于自动生成变更日志的工具，它能够基于 GitHub 仓库中的标签、问题、拉取请求等信息自动创建详细的变更记录。该项目使用 Ruby 语言编写，支持通过命令行或 Docker 运行，并且提供了丰富的参数配置选项以满足不同需求。其核心功能包括根据标签分类展示变更内容以及生成符合 Markdown 格式的输出文件。此工具特别适合需要频繁发布新版本的开源项目或者任何希望简化发布流程并提高透明度的软件开发团队使用。","2026-06-11 03:13:42","top_language"]