Skip to content

Instantly share code, notes, and snippets.

@edvakf edvakf/slide.md
Last active Aug 29, 2015

Embed
What would you like to do?

gitlab bot を使って
コードレビューを
ラクにする話

自己紹介

  • 名前:高山
  • twitter:@edvakf
  • お仕事:
  • pixivのGrowthに関する開発
  • MySQLのクエリのレビュー
  • 開発プロセス効率化

自己紹介2

趣味ではWebGLでMikuMikuDanceビューワーを作ったりしました

http://d.hatena.ne.jp/edvakf/20111101/1320127019

みなさん

コードレビューしてますか?

コードレビューの嫌なところ

  • タブ vs スペース
  • 2スペース vs 4スペース
  • 行末のスペース

コーディングスタイル

  • いちいち指摘するのも面倒
  • エディタで目立つようにしてない人は何度も繰り返す
  • 宗教戦争になることがある
  • 別にどれが優れているとかではなくて、どれかに統一されてれば十分
  • 人間が気をつける必要ない(機械的に直ってくれれば良い)

PHP-CS-Fixer

PHP-CS-Fixer バージョン1

  • PHP-CS-Fixerというコーディングスタイル自動修正ツールを使用
  • いきなり55万行の .php 全部にかけるのは怖かった
  • Merge Request を作った段階でコーディングスタイル修正コミットを付けてくれるようにした
  • 最初 Ruby で作ったが、gitlab APIのgemよりPHPのライブラリのほうが出来が良かったので作り直し

gitlab APIの制約

  • 開いている Merge Request だけを取得することが出来ない(githubはできる)
  • コミットを作れるが、1ファイルしか編集できない(githubでも同じ)
  • 1コミットのdiffは取れるがブランチ間のdiffなどは取れない(githubはできる)

→ gitlab API縛りで開発していたが、つらすぎたので生のgitコマンドを呼び出すようにした

PHP-CS-Fixer バージョン2

問答無用でコーディングスタイル修正コミットを付けられるとうざかったので、Merge Requestを作った人に対してコーディングスタイルを修正したコミットをMerge Requestしてくれるように変更

PHP-CS-Fixer バージョン2

Merge Requestにコミットが伸びた場合でも、常に最新のコミットに対して1コミットだけを追加してforce pushするように

まとめ

  • Merge Requestをくれるgitlab botを作った
  • gitlab APIはけっこう足りてない
  • github APIのはgitlab APIに比べると大分強力
  • ただし今回のbot程度のものでも結局gitを生で使うことになりそう

今後の展望

  • require漏れとか教えてくれるといいかも?

謝辞

ネタをくれた@onkさん、ありがとうございました

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.