マージリクエストにラベルを付ける

以前、GitLab の運用についてこんな記事を書きました。

kntmr.hatenablog.com

現在もだいたい同じような運用をしているのですが、最近、少しだけマイナーチェンジしました。タイトルの通りなんですが。

現状

これまでのメンバーの作業の流れはこんな感じ。

  1. チケットで作業を振られる
  2. feature ブランチを切る
  3. 実装 & commit
  4. 実装完了次第、マージリクエストを投げてレビュー依頼する

ちなみに弊社で使ってる GitLab のバージョンはとても古いです。お察しください。

課題

メンバーが作業途中でも適当なタイミングでレビューしたい。特に、朝会などで昨日までの実装分をお互いに見ながら軌道修正しつつ開発を進めたい。そのためには、作業着手して feature ブランチを切るのに併せてマージリクエストを投げてもらえばいいが、作業途中のブランチを誤ってマージするのは避けたい。昔の GitHub の PR みたいにタイトルに「WIP」とか付けてもらってもいいけど、もっと機械的にフィルタして作業ミスを防ぎたい。というか今の GitHub なら Draft Pull Request とかあるのにね。

ラベル

今さらですが、デフォルトのラベル以外にカンマ区切りで任意のラベルを設定できることに気が付きました...。ラベルを使えばいい感じに整理できそう。

f:id:knt_mr:20200702105709p:plain

運用

feature ブランチを作成したらマージリクエストを投げて in progress ラベルを付ける。in progress ラベルのブランチはマージしない。

実装が完了してレビューするタイミングになったら in progress を外して review ラベルを付ける。レビュワーは review ラベル (とマイルストーン) でフィルタして、必要なブランチだけをレビューしてマージする。


余談ですが、master や開発のメインブランチなど、feature ブランチのマージ先となるブランチは Protected にする。Git に不慣れなメンバーが勝手にマージリクエストを Accept しちゃうので...。このあたり、権限設定とかもう少し細かくできるんだろうか。他の現場ではどうやってコントロールしてるんだろう。