
完全に自動化されたChangelog生成-この宝石は、タグ、問題、およびGitHubからのマージされたプルリクエストに基づいてChangelogファイルを生成します(およびラベルに応じて別々のリストに分割します)。
CHANGELOG.md手動で入力する必要がないので、今すぐ手動で:スクリプトを実行し、リラックスして、次のリリースの前に☕を取ります! ?
ユーザーと貢献者が、プロジェクトの各リリース(またはバージョン)の間にどのような顕著な変更が行われたかを正確に確認できるようにするため。
ソフトウェアツールは人向けだからです。 「Changelogは、ユーザーと貢献者がプロジェクトの各リリース(またはバージョン)の間にどのような顕著な変更が行われたかを正確に確認できるようにします。」
https://keepachangelog.com
Github ChangelogジェネレーターはRubyプログラムで、Rubygemとして配布されています。 Ruby Language Homepageにはインストールページがあります。
宝石を次のようにインストールします。
$ gem install github_changelog_generator
システムに応じて、シェルを管理者(Windows)として実行するか、 sudo gem install github_changelog_generator (linux)を使用する必要があります。
github_changelog_generator -u github_project_namespace -p github_project
(プロジェクト名空間があなたが所有しているプロジェクトである場合、ユーザー名の可能性がありますが、プロジェクトの名前空間である可能性もあります)
Dockerを使用することは、RubyとThe Gemのインストールに代わるものです。
例の例:
$ docker run -it --rm -v "$(pwd)":/usr/local/src/your-app githubchangeloggenerator/github-changelog-generator
GitHub Enterprise Reposの場合、 --github-siteと--github-apiオプションの両方を指定します。
$ github_changelog_generator --github-site="https://github.yoursite.com"
--github-api="https://github.yoursite.com/api/v3/"
これにより、 CHANGELOG.mdが生成され、Markdownフォーマットがかなりあります。
このプロジェクトについては、 changelog.mdをご覧ください
ActionSheetPicker-3.0/changelog.mdはコマンドによって生成されました。
$ github_changelog_generator -u github-changelog-generator -p ActionSheetPicker-3.0
一般的に、それは次のように見えます:
1.2.5(2015-01-15)
フルチェンジログ
実装された機能強化:
- マイルストーンを使用して、バージョンのバグが修正されたバージョン#22を指定する
修正バグ:
- タグなしでリポジトリのログを生成しようとするときのエラー#32
マージされたプルリクエスト:
PrettyPrintクラスは、小文字「PP」#43(Schwing)を使用して含まれています
コマンドラインオプションを介してエンタープライズGithubをサポートします#42(Glenlovett)
すべてのコマンドラインオプションのヘルプを印刷して、詳細を確認してください。
$ github_changelog_generator --help
Paramsの詳細については、Wikiページをお読みください: Advanced Changelog Generationの例
プロジェクトルートでは、デフォルトのパラメーションをオーバーライドするために.github_changelog_generatorという名前のparamsファイルを配置できます。
例:
unreleased=false
future-release=5.0.0
since-tag=1.0.0
GitHubでは、1時間あたり50の認可されていないリクエストのみを許可します。
したがって、トークンを使用して認証でこのスクリプトを実行することをお勧めします。
方法は次のとおりです。
--token <your-40-digit-token>でスクリプトを実行します。またはCHANGELOG_GITHUB_TOKEN環境変数を40桁のトークンに設定しますプロンプトで次のコマンドを実行するか、シェルプロファイルに追加することにより、環境変数を設定できます(例: .env 、 ~/.bash_profile 、 ~/.zshrcなど)。
export CHANGELOG_GITHUB_TOKEN="«your-40-digit-github-token»"
だから、あなたがこのようなメッセージを受け取った場合:
API rate limit exceeded for github_username.
See: https://developer.github.com/v3/#rate-limitingこのトークンを作成する時が来ました! (または、GitHubがあなたの認定されていないリクエスト制限をリセットするのを1時間待ちます。)
あなたがあなたのプロジェクトにどれほど献身的であるかを知っているので、あなたはおそらくgithub-changelog-generatorがChangelogを維持するのを待っていなかったでしょう。しかし、おそらくあなたのプロジェクトのオープンな問題やPRSがあなたの歴史的なChangelogにリストされているすべての過去の機能のPRSを望んでいません。
それが--base <your-manual-changelog.md>便利です!このオプションを使用すると、古いマニュアルChangelogを生成されたエントリの最後に追加できます。
プロジェクトにHISTORY.mdファイルがある場合、静的な履歴チャンケログとして自動的に選択され、追加されます。
あなたはrakeが好きですか?私たちもそうします!そのため、私たちはあなたにとってさらに簡単になりました。ChangelogGenerationのためにrakeタスクライブラリを提供しました。
Rakefileでタスクを構成します:
require 'github_changelog_generator/task'
GitHubChangelogGenerator :: RakeTask . new :changelog do | config |
config . user = 'username'
config . project = 'project-name'
config . since_tag = '0.1.14'
config . future_release = '0.2.0'
endすべてのコマンドラインオプションは、 configパラメーターとしてrakeタスクに渡すことができます。そして、あなたは自分でrakeタスクを命名しているので、あなたはあなたが望むだけを作成することができます。
パーサーソースコード(#setup_parser)からパラメーション名を探すことができます。たとえば、 config.bugs_labelを設定する代わりに、バグラベルをポルトガル語に翻訳するには、 config.bug_prefixなどを設定する必要があります。
基本的な変更ログガイドラインに従うデフォルトのセクションを使用して、標準的できちんとしたChangelogファイルを生成しますか?
オプションで、未発表の変更を生成します(まだリリースされていない閉じられた問題)?
コマンドラインオプションを介したGitHub Enterpriseサポート! ?
柔軟な形式のカスタマイズ:
milestoneにバージョンのタグと同じ名前を与えることにより、問題を修正したバージョン(問題の閉じた日付が一致しない場合)を手動で指定しますか?question 、 duplicate 、 invalid 、またはwontfixというラベルの付いた問題)✂️ラベルで問題を区別します。 ?
bugとラベル付けされた問題)?enhancementとラベル付けされた問題)?ラベルで問題を手動で含めるか、除外しますか?
もっとカスタマイズしてください!あなたの好みに合うようにchangelogを微調整しますか? (詳細については、 github_changelog_generator --help参照してください)
各バージョンについては、テキスト、画像、GIFアニメーションなどでリリースの概要を追加し、ユーザーに新しい機能とメモを明確に表示できます。これは、GitHubメタデータを使用して行われます。
例:v1.0.0のリリース概要を追加:

Hello, World! :tada:
release-summaryを設定し、Github Milestone v1.0.0に追加しますgithub-changelog-generatorを実行しますv1.0.0(2014-11-07)
フルチェンジログ
こんにちは世界! ?
実装された機能強化:
- いくつかの機能を追加します
これが私が見つけた選択肢のウィキページリストです。しかし、私の要件を満たした人はいませんでした。
他のプロジェクトを知っている場合は、このWikiページをお気軽に編集してください!
これがプロジェクトのウィキページリストです。
ライブアプリでこのプロジェクトを使用した場合は、お知らせください!他の誰かが私の仕事をしてそれでワイルドになるのを見ることほど私を幸せにするものはありません。
github_changelog_generatorを使用してプロジェクトのChangelogを生成する場合、またはそれを使用している他のプロジェクトを知っている場合は、このリストに追加してください。
github_changelog_generator 、Github CLIと組み合わせて使用してリリースノートを作成できます。 github_changelog_generatorの--since-tagおよび--outputオプションを使用して、現在のリリースの変更ログを作成し、結果をファイルに保存します。以下の例では、バージョン2.0.0は現在のリリースであり、バージョン1.0.0は以前のリリースです。
mkdir -p build
github_changelog_generator
--since-tag 1.0.0
--output build/changelog.md
次に、GitHub CLIのリリース作成機能を使用して、新しいGitHubリリースを作成します
gh release create 2.0.0
--notes-file build/changelog.md
--title 2.0.0
不可能はない!
問題を開き、ジェネレーターを一緒に改善しましょう!
バグレポート、機能リクエスト、パッチ、およびウェルウィッシュはいつでも大歓迎です。 ❗
Githubのリリースはとても良いことです。そして、それを維持することは非常に良い習慣です。 (まだ多くの人がそれを使用しているわけではありません!)
ところで:次のリリースでGitHubリリースをサポートしたいと思います;)
手書きのログと自動生成ログの品質を比較しようとはしていません。そうは言っても。
リリースノートを手動で記入しても、自動生成された変更ログは本当に役立ちます!
これは、 .github_changelog_generatorのadd-sectionsまたはconfigure-sectionsエントリのいずれかを使用して可能です。たとえば、 maintenanceラベルでタグ付けされたPRSをキャッチする「メンテナンス」と呼ばれる単一の新しいエントリを追加するには、 .github_changelog_generatorに追加できます。
add-sections= {"maintenance":{"prefix":"**Project maintenance**","labels":["maintenance"]}}
同様のアプローチをconfigure-sectionsを介して使用して、すべてのセクションプロパティを設定できます(新しいプロパティの追加を含む!)。
Rubyが古く、アップグレードしたくない場合、使用するライブラリを制御したい場合は、Bundlerを使用できます。
ジェムファイルでは、おそらく展開されていない:developmentグループで、この宝石を追加してください。
group :development do
gem 'github_changelog_generator' , require : false
end次に、Radyのような依存関係を維持できます。これは、現在Ruby> = 2.2.2とのみ互換性があります。したがって、このような行をGemfileに追加して、アプリに古いバージョンを使用してください。
gem 'rack', '~> 1.6'
これにより、Rubyの最新バージョンを入手できない場合でも、github_changelog_generatorを使用し続けることができます。
Windows:V1.14.0は、/tmp/github_changelog-logger.logを作成しようとするバグを導入しました。
回避策: C:tmpを作成します。
このプロジェクトに貢献しますか? Convributing.mdには、その方法に関するすべての詳細があります。
Gitter:Github-Changelog-Generatorでチャットに参加してください
Github Changelogジェネレーターは、MITライセンスの下でリリースされます。