Don't Repeat Yourself

Don't Repeat Yourself (DRY) is a principle of software development aimed at reducing repetition of all kinds. -- wikipedia

Servo の開発に出てくる highfive について

小ネタもうひとつ.

Servo の開発をするとお世話になるのが highfive という bot です.新規コントリビュータの人が参加しやすいように作られた bot だそうです.アイコンかわいい.

github.com

お世話になる場面は下記の2つです.

  • Issue を自身に割り当てる
  • PR のラベル管理

Issue を自身に割り当てる

Servo はまだまだ新機能の開発ややり残したタスクなどが Issue としてたくさん上がっています.これはすべてのデベロッパーに開放されており,やろうと思えばいつでも Issue に取り組むことができます.その最初のタッチポイントとして highfive が登場します.

自身が担当したい Issue に次のようなコメントを残すと,自身にその Issue がアサインされます.

@highfive assign me

するとこんな感じで,Issue にラベルがつけられて自身に Issue がアサインされます.

f:id:yuk1tyd:20190303235858p:plain

f:id:yuk1tyd:20190303235912p:plain

PR のラベルの管理

Servo では,S-awaiting-review (レビュー待ち) といったラベルで PR の状況を管理しています.ラベル管理はほぼすべて highfive が行っていますね.できる子…!

余談ですが,最初に PR を投げるとまず自動的に S-awaiting-review というラベルが付与されます.その後,もしコードの修正が必要なようであれば,S-needs-code-changes というラベルが付与されます.さらにテストが落ちていたりすると,highfive が S-test-failed というラベルが付与されます.落ちたテストが修正コミットにより再び通ると highfive が S-awaiting-review を付与し,S-test-failed のラベルを取り除きます.

このあたり,人力でやると運用がカオスになってしまいがちなので,こういった bot に自動化させておくというのは非常に正しいなと思いました.

highfive 自身

ちなみに Highfive はソースコードが公開されています.

github.com

上小ネタでした.