Danger JS で「変更行数」を取得する方法

Danger JS とは

danger.systems

結論

;(async () => {
  const changedNumberOfLines = await danger.git.linesOfCode()

  // ここに処理を書く
})()

背景

1. Ruby版の lines_of_code メソッドは使えない

undefined が返ってくる。

gyazo.com

2. 検索しまくって Issue でその点に触れたものが見つかる

github.com

3. Issue をもとに実装された Pull Request が見つかる

すでにマージされている。

github.com

4. linesOfCode というメソッドで実装されていることが分かる

さっそく danger.git.linesOfCode で取得しようとしたらエラーになった。

gyazo.com

5. linesOfCode() で取得するようにしたら Promise が返ってきた

danger.git.linesOfCode() で取得しなければいけなかったので、そのように直したところ、Promise が返ってきた。

gyazo.com

6. async await を用いて期待通りの値を取得できた

;(async () => {
  const changedNumberOfLines = await danger.git.linesOfCode()

  console.log(changedNumberOfLines) // 期待どおりに出力される
})()

gyazo.com

感想

  • めちゃくちゃハマった
  • Danger の公式サイト、とても見づらく欲しい情報にたどり着けないのでつらい
Powered by はてなブログ