Pull Requestのフォーマットを自動入力するブックマークレットをつくろう


By: Chris Martin

共通フォーマット重要

Githubを使って開発を行っている場合、Pull Requestを出してレビューしてもらったり、他の人の変更をレビューをしたりしながら開発を進めていきますが、Pull Requestのフォーマットは開発者に委ねられています。

フォーマットが決まっていないと↓のようなPRでレビュー依頼が来るかもしれません。

pr1

このPRだけを見ても何をレビューすればいいのかわからないですよね。

「そもそもどういうバグだったのか?」、「どんな修正を行ったのか?」

それを確認するためにレビュー依頼者もレビュアーも再度やりとりを行う必要があり、余計なコミュニケーションコストがかかってしまいます。

こんな時、チームとして共通のPull Requestフォーマットを決めておけば、予めレビューに必要なことは一通り書かれているので生産性アップにつながります。

フォーマットを考えるにあたり、以下のブログ記事を参考にさせていただきました。

各会社さんで色々な工夫がされていて大変参考になります。

ただ、「完璧なフォーマットとは?」とかを考えだすといつまで経っても決められなくなりそうだったので、フォーマットとしては以下の3つを用意しておいて、あとはそれぞれのPR毎に補足があれば追加できる状態にしておけばとりあえずは良いかなと思いました。

  • なぜ必要か?
  • どういう変更か?
  • レビュー優先度

pr2

言葉としては何も書いてないですが、フォーマットがあるおかげで最初のやつより断然分かりやすくなった気がします。

ただ、これを毎回手で入力するのは面倒なのでブックマークレットになっていると手軽ですよね。

フォーマット生成ツール

というわけで、雑ですがPRのフォーマットを生成するツールを作ってみました。(PC版Chromeで動作確認しています)

使い方ですが、お好きなPull RequestのフォーマットをMarkdown形式で入力し、「generate」をクリック。

↓のようにアラートダイアログが表示されるので、「javascript:〜void 0」までをコピーしてください。

pr3

最後に、本記事、もしくは適当なページをお気に入りに追加し、

pr4

「編集」でURL部分にコピーした文字列をペーストし、適当な名前をつければブックマークレットの完成です。

pr5

あとは、実際にPull Requestを出す際にブックマークレットをクリックすればフォーマットが自動入力されます。

pr6

テキストエリアの内容を上書きするのでご注意ください。

ブックマークレットを選択後に実際の内容を入力すればフォーマットに沿ってPRを書いていくことができます。

まとめ

  • Pull Requestフォーマットの仕組み化でチームの生産性アップ
  • チームでのフォーマット共有にブックマークレット生成ツールをお使いください
  • 「こんなフォーマット使ってるよ」があれば教えて下さい

2/18追記

GitLab版があるとうれしいというご意見をいただいたので対応しました。

手元にGitLab環境がなかったのですが、Dockerでさくっと環境を作れるという記事を見つけたので試してみたらできました。

  • Docker Toolboxをインストール
  • 「Docker Quickstart Terminal」でDockerを起動
  • 以下をターミナルで実行
curl https://raw.githubusercontent.com/sameersbn/docker-gitlab/master/docker-compose.yml -o docker-compose.yml
docker-compose up

これでGitLabが立ち上がりました。

pr7

Dockerは使ったことなかったのですが、手軽に試せる環境を作れるのは非常に便利ですね。

参考