LoginSignup
40
32

More than 5 years have passed since last update.

git-mr-diffコマンドでリリースノートを爆速で作成する

Last updated at Posted at 2016-02-12

2017.8.1追記

正規表現がマッチしないケースを発見したので、gistのほうを更新しました。使ってくださっている方は手元のスクリプトを更新してください。

はじめに

スクリーンショット_2016-02-15_10_21_23.png

Pull RequestやMerge Request以外の方法ではmasterやdevelopブランチへのマージを許さない感じの各種ワークフローを実践していると、自然とリリースノートの中身ってMergedのリストになりますよね。

私も仕事でよく社内向けのリリースノートを作るのですが、手作業でMerge Requestのリストを作るのが結構手間だったわけです。

というわけでRubyの練習がてら作ったのがgit-mr-diffです。

スクリーンショット_2016-02-15_10_39_45.png

Getting Started

install

gistからコピペしてきてパスの通った場所に置いてください。Rubyが必要ですがMacの人は気にしなくていいです。Windowsでの動作確認はしていません。

usage

$ git mr-diff -h
List of GitLab merge requests between the range expression like 'branch-a...branch-b' (with Markdown friendly list format).

usage: git mr-diff mybranch...development
   or  git mr-diff (default: master...HEAD)
$ git mr-diff
List merge requests for range: master...HEAD

* !123 hogehoge
* !124 fugafuga

git mr-diffを実行すると、カレントブランチとmasterの間にあるMerge RequestをMarkdownのリストにして並べてくれます。

具体的なコミットを指定して、git mr-diff dee34df...334edabみたいな書き方でもOKです。

あとはどこかのリリースノートにコピペすればOK!

Practical Usage

リリースブランチで実行

もともとこのために作りました。

私はgit-flowっぽいbranching modelを採用しているので、developブランチに変更を溜めていって、リリースするときに release/1.2.2 のような名前のブランチを経由してmasterブランチにマージしたものを実際にビルド&デプロイします。

このrelease/***というリリースブランチにリリースノートを書いているわけですね。

リリースブランチをチェックアウトした状態でgit mr-diffを実行すると、良い感じにmasterブランチとの差分を出してくれるので、リリースマージ用のMerge Requestにリリースノートを書くのが捗るわけです。

タグ間のdiff

GitLabにもタグにリリースノートを書く機能が付きましたね。前回のタグと今回のタグの間で入った更新をリリースノートやCHANGELOGに書きたい場合は、次のように使うとよいでしょう。

$ git mr-diff v1.2.2...v1.3.0

まとめ

標準出力に出しているので、他のコマンドと組み合わせて、リリース用MRの作成を自動化したりするのも良いと思います。

リスト作りはgit-mr-diffで省力化して、もっと大事なことをリリースノートに書いていけるようにしたいですね。

おまけ

エンジニア募集中です。 https://www.wantedly.com/projects/53479

追記 2/15

くりの人が既にパワフルなのを作ってたようです

40
32
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
40
32