Open6

Dangerをローカルで試す

ゆつぼゆつぼ

Ruby環境を整える

rbenvを入れる

brew install rbenv

zshrcに初期化を書く

eval "$(/opt/homebrew/bin/rbenv init - zsh)"

rbenvの使い方

# 入っているバージョンの確認
rbenv versions
# デフォルトで使うバージョンの選択
rbenv global 3.1.4
rbenv global system
# セッション中だけにrubyバージョンを適用する
rbenv shell 3.1.4
  • Macの場合、デフォルトはsystemのままの方がベストらしい
    • OSや他のセットアップでRubyが必要な場合にバージョンが違うことによってエラーが起きることが稀にある
    • 入っていたRuby2.6.0はEOLだが、Macのデフォルトの2.6.0はAppleがメンテしているので大丈夫

Dangerに必要なbundlerを入れる

gem install bundler:2.2.22
ゆつぼゆつぼ

Dangerをローカルで実行する

PRを選択して行うことになる。

準備が整っていれば、下記で実行できる。

DANGER_GITHUB_API_TOKEN=<repo 権限つけた GitHub の token> bundle exec danger pr <適当なPRのURL>
ゆつぼゆつぼ

Rubyあれこれ

  • unlessはnot if
  • ログはputs
  • requireがimportみたいな感じ
ゆつぼゆつぼ

#ktlintのチェックスタイルレポートの中から、差分以外を取り除く

target_files = (git.modified_files - git.deleted_files) + git.added_files
checkstyle_format.base_path = Dir.pwd
Dir.glob("reports/ktlint/**/*.xml").each do |file|
    doc = REXML::Document.new(File.open(file))

    REXML::XPath.each(doc, '//file') do |file|
      filename = file.attribute('name').value
      filename = Pathname.new(filename).relative_path_from(Dir.pwd).to_s
      unless target_files.include?(filename)
        file.remove
      end
    end
    Tempfile.create() do |f|
      f.write(doc)
      f.close
      checkstyle_format.report f.path
    end
end
ゆつぼゆつぼ

これでもいけた

cd プロジェクトの場所
rbenv shell 3.1.4
bundle install
DANGER_GITHUB_API_TOKEN...