LoginSignup
1
0

Danger でコードレビューの機械的な指摘を自動化する話

Last updated at Posted at 2023-11-30
1 / 16

はじめに

コードレビューで機械的な指摘をすることがあります。

  • 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")

マージリクエストを作成する

image.png


実用的な例を見てみる


マージリクエストの説明に Issue 番号が無いと警告を出す

Dangerfile
if !gitlab.mr_body.match(/#[0-9]+/)
  warn('MRの説明にIssue番号が含まれていません!')
end

image.png


変更ファイル数が多い時に警告を出す

Dangerfile
if gitlab.mr_json['changes_count'].to_i > 1
  fail('変更ファイル数が多すぎます!')
end

image.png


人間は人間にしか出来ないことをしよう!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0