はじめに
コードレビューで機械的な指摘をすることがあります。
- MR には Issue 番号を書いてください
- MR にこのラベルを付けてください
- 変更ファイル数が大きすぎます
こんな不毛な指摘は機械化しましょう!
Danger
Github の説明から引用
Stop saying "you forgot to …" in code review
つまり、簡単な指摘はDangerに任せよう!
まずはミニマムな構成を作ります
ディレクトリ構成
.
├── .gitlab-ci.yml
├── Dangerfile
└── Gemfile
Gemfile
Gemfile
source "https://rubygems.org"
gem 'danger-gitlab'
.gitlab-ci.yml
.gitlab-ci.yml
danger_review:
image: ruby:3.0.2
before_script:
- bundle install
script:
- bundle exec danger
Dangerfile
Dangerfile
message("Hello, this worked")
マージリクエストを作成する
実用的な例を見てみる
マージリクエストの説明に Issue 番号が無いと警告を出す
Dangerfile
if !gitlab.mr_body.match(/#[0-9]+/)
warn('MRの説明にIssue番号が含まれていません!')
end
変更ファイル数が多い時に警告を出す
Dangerfile
if gitlab.mr_json['changes_count'].to_i > 1
fail('変更ファイル数が多すぎます!')
end