Github の問題から変更ログを自動的に生成する方法はありますか?
理想的には、クローズされたマイルストーンを指定して、タイトル付きのクローズされた問題のプレーン テキスト リストを生成できるようにしたいと考えています。さらに良いのは、問題へのリンクと問題自体のタイトルのマークアップを含むリストです。
これは特に Github 向けではありませんが、Git を介してログを整形印刷で実行し、changelog スタイルの html ページを生成できます。
https://coderwall.com/p/5cv5lgから
git log v2.1.0...v2.1.1 --pretty=format:'<li> <a href="http://github.com/jerel/<project>/commit/%H">view commit •</a> %s</li> ' --reverse | grep "#changelog"
GitHub APIを使用して、特定のマイルストーンに関連付けられた課題のリストを取得できます。例えば:
curl https://api.github.com/repos/<user>/<project>/issues\?milestone\=1\&state\=closed
と をユーザー名とプロジェクトに置き換える<user>
と<project>
、マイルストーンのすべてのクローズ済み課題の json リストが返されます1
。次に、たとえばスクリプトを使用して、関心のある情報を抽出できます。問題のリストを再構成されたテキストとして出力する Python の例を次に示します。
import json
with open("issues.json") as of:
data = json.load(of)
for issue in data:
t = issue['title']
n = issue['number']
url = issue['html_url']
print "* %s [`Issue %s <%s>`_]" % (t, n, url)
次のツールでgithub-changes が機能するかどうかを確認してください。
開示:私はツールの作成者です。
特定の日時以降にクローズされた github の問題のリストから変更ログを生成するオープン ソース プロジェクトを作成しました。ここから入手できます: https://github.com/piwik/github-changelog-generator
GitHub から直接ではありません: これは、プロジェクトが従う可能性のある命名規則またはコメント規則に基づいて配置できる一種のフックになります。
課題のタイトルを使用しても、プロジェクトのすべての課題のタイトルを確認して必要に応じて編集しない限り、常に意味のある変更ログを生成する確実な方法とは限りません。
つまり、プロジェクトの管理方法に大きく依存し、すべてのGitHub リポジトリに簡単に一般化することはできません。「 Github でプロジェクト リリース (バイナリ/ソース パッケージ) を公開しますか?
」
という非常によく似た質問で、私は同じことを言いました。
サードパーティ ソリューション (または のような GitHub アクションgenerate-changelog
) に加えて、まもなく 2021 年第 3 四半期にGitHub のネイティブ機能を利用できるようになる可能性があります。
ソフトウェア ライフサイクルの最も重要な部分の 1 つは、他のユーザーが使用できるようにコードをリリースすることです。
GitHub リリースは、説得力のある自動リリース ノートを提供することで、それをさらに容易にします。
リリースを作成するときに、ボタンをクリックしてリリース ノートを自動的に生成できます。
さらにカスタマイズしたい場合は、REST API を使用して、生成されたリリース ノートを取得し、それらを既存のリリース プロセスに統合できます。また、メンテナーがリリース ノートを共有したときに見栄えが良く、見つけやすくしたいと考えています。プロジェクトの発表を見事に見せるために、リリースを完全に再設計しました。
発見を増やすために、これらのリリースをフィードに表示しています。
また、リリース用のオープン グラフ データを改善して、GitHub プラットフォームから共有したときにも同様に素晴らしいものに見えるようにしています。
意図した結果
私たちの一番の目標は、メンテナーが優れたリリース ノートを簡単に作成できるようにして、メンテナーが行っているすばらしい仕事をより多くの人が発見できるようにすることです。
最小限の労力で、多くのプロジェクトが詳細なリリース ノートの恩恵を受けることができます。
リリース ノートにより多くの時間を費やして編集コンテンツを作成するメンテナーにとって、意図した結果は、カスタム インフラストラクチャを維持し、変更ログをコンパイルするために現在費やしている時間を解放して、顧客にとって最も重要なコンテンツ、高品質に集中できるようにすることです。編集されたコンテンツ。
私たちのもう 1 つの目標は、リリース ノートの見栄えを良くし、メンテナーや開発者が読んで共有したくなるようなものにすることです。
それはどのように機能しますか?
- 新しいリリース UI は、機能のプレビューで有効にすることができます
- リリース作成 UI の新しいボタンを押すと、任意のタグからリリース ノートを生成できます。
- 生成されたメモは、
.github/release.yml
- 新しい REST API を使用すると、顧客は自分の都合に合わせてメモを生成し、GitHub アクションのエクスペリエンスをさらに自動化およびカスタマイズできます。
私は最近、GitHub の問題を使用してアプリの更新をユーザーに直接伝える jQuery プラグインの構築を支援しました。リポジトリはここにあります https://github.com/uberVU/github-changelog
使い方はとても簡単です:
$(function() {
var $demoChangelog = $('.demo-changelog');
//call the plugin on a dom none
$demoChangelog.changelog({
//give it a repo to monitor
githubRepo: 'uberVU/github-changelog-playground',
});
//manually check for new closed issues
$('.demo-button').on('click', function(e) {
e.stopPropagation();
$demoChangelog.changelog('checkForUpdates');
});
});