dangerでpull requestレビューの指摘事項を減らす
TRANSCRIPT
![Page 1: Dangerでpull requestレビューの指摘事項を減らす](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a6624507f8b9a99198b4a0b/html5/thumbnails/1.jpg)
Copyright © DeNA Co.,Ltd. All Rights Reserved.
DangerでPull Request
レビューの指摘事項を減らす
AKIBA.swiftスーパー勉強会
April 17, 2017
前田隼輔SWETグループ
DeNA Co., Ltd.
![Page 2: Dangerでpull requestレビューの指摘事項を減らす](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a6624507f8b9a99198b4a0b/html5/thumbnails/2.jpg)
Copyright © DeNA Co.,Ltd. All Rights Reserved.
自己紹介
前田隼輔
⁃ 所属
• DeNA システム本部 SWETグループ テスト基盤チーム
⁃ 経歴
• 3月に DeNA SWETグループ に Join
• それまでは SIer でWebアプリ開発
⁃ 普段の業務
• CI/CD環境整備、ツールの検証
• バージョンアップ自動検証システムの開発
2
![Page 3: Dangerでpull requestレビューの指摘事項を減らす](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a6624507f8b9a99198b4a0b/html5/thumbnails/3.jpg)
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Pull Requestでこんなことありませんか?
3
ソースコードいじってるけどビルドは通った?
masterブランチにはマージしないで
ください
対応するチケットのURLを載せてください
ロジックや設計以外での指摘事項が多すぎる
![Page 4: Dangerでpull requestレビューの指摘事項を減らす](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a6624507f8b9a99198b4a0b/html5/thumbnails/4.jpg)
Copyright © DeNA Co.,Ltd. All Rights Reserved.
そこで
4
http://danger.systems/https://github.com/danger/danger
![Page 5: Dangerでpull requestレビューの指摘事項を減らす](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a6624507f8b9a99198b4a0b/html5/thumbnails/5.jpg)
Copyright © DeNA Co.,Ltd. All Rights Reserved.
5
🚫 Stop saying “you forgot to …”
in code review
![Page 6: Dangerでpull requestレビューの指摘事項を減らす](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a6624507f8b9a99198b4a0b/html5/thumbnails/6.jpg)
Copyright © DeNA Co.,Ltd. All Rights Reserved.
今日お話しすること
Dangerとは
Dangerでできること
SWET テスト基盤チームでの事例
6
![Page 7: Dangerでpull requestレビューの指摘事項を減らす](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a6624507f8b9a99198b4a0b/html5/thumbnails/7.jpg)
Copyright © DeNA Co.,Ltd. All Rights Reserved.
今日お話しすること
Dangerとは
Dangerでできること
SWET テスト基盤チームでの事例
7
![Page 8: Dangerでpull requestレビューの指摘事項を減らす](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a6624507f8b9a99198b4a0b/html5/thumbnails/8.jpg)
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Dangerとは
Pull Request時の確認事項を自動化できるツール
Dangerfile を作成し、その中で自由にチェックできる
チェック結果はホスティングサービスに通知し、Pull Request内の commit status に反映できる
GitやGitホスティングサービスから情報を取得している
8
![Page 9: Dangerでpull requestレビューの指摘事項を減らす](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a6624507f8b9a99198b4a0b/html5/thumbnails/9.jpg)
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Dangerとは
Pull Request時の確認事項を自動化できるツール
Dangerfile を作成し、その中で自由にチェックできる
チェック結果はホスティングサービスに通知し、Pull Request内の commit status に反映できる
GitやGitホスティングサービスから情報を取得している
9
Pull Requestの確認を自動化するための基盤の提供
![Page 10: Dangerでpull requestレビューの指摘事項を減らす](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a6624507f8b9a99198b4a0b/html5/thumbnails/10.jpg)
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Dangerとは
10
![Page 11: Dangerでpull requestレビューの指摘事項を減らす](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a6624507f8b9a99198b4a0b/html5/thumbnails/11.jpg)
Copyright © DeNA Co.,Ltd. All Rights Reserved.
今日お話しすること
Dangerとは
Dangerでできること
SWET テスト基盤チームでの事例
11
![Page 12: Dangerでpull requestレビューの指摘事項を減らす](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a6624507f8b9a99198b4a0b/html5/thumbnails/12.jpg)
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Dangerでできること
Dangerfile では Ruby構文 が使える
ホスティングサービスへの通知のためのDSL
⁃ message / warn / fail / markdown
git や github といった変数に情報が含まれている
github.api で OctoKit (GitHub APIの Rubyクライアント)を取得できる
12
![Page 13: Dangerでpull requestレビューの指摘事項を減らす](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a6624507f8b9a99198b4a0b/html5/thumbnails/13.jpg)
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Dangerでできること
Dangerfile では Ruby構文 が使える
ホスティングサービスへの通知のためのDSL
⁃ message / warn / fail / markdown
git や github といった変数に情報が含まれている
github.api で OctoKit (GitHub APIの Rubyクライアント)を取得できる
13
Ruby と GitHub APIの知識があれば(なくてもググれば)
なんでもできる
![Page 14: Dangerでpull requestレビューの指摘事項を減らす](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a6624507f8b9a99198b4a0b/html5/thumbnails/14.jpg)
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Dangerでできること
Dangerfile では Ruby構文 が使える
ホスティングサービスへの通知のためのDSL
⁃ message / warn / fail / markdown
git や github といった変数に情報が含まれている
github.api で OctoKit (GitHub APIの Rubyクライアント)を取得できる
14
目的を見失わないように
🚫 Stop saying “you forgot to …” in code review
![Page 15: Dangerでpull requestレビューの指摘事項を減らす](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a6624507f8b9a99198b4a0b/html5/thumbnails/15.jpg)
Copyright © DeNA Co.,Ltd. All Rights Reserved.
今日お話しすること
Dangerとは
Dangerでできること
SWET テスト基盤チームでの事例
15
![Page 16: Dangerでpull requestレビューの指摘事項を減らす](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a6624507f8b9a99198b4a0b/html5/thumbnails/16.jpg)
Copyright © DeNA Co.,Ltd. All Rights Reserved.
利用しているツールの組み合わせ
Gitホスティングサービス
⁃ GitHub Enterprise
CI / CDツール
⁃ Jenkins
⁃ + GitHub Pull Request Builder
ビルドマネージャ
⁃ fastlane 🚀
16
![Page 17: Dangerでpull requestレビューの指摘事項を減らす](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a6624507f8b9a99198b4a0b/html5/thumbnails/17.jpg)
Copyright © DeNA Co.,Ltd. All Rights Reserved.
GitHub Pull Request Builder + fastlane
GitHub Pull Request Builder
⁃ PRのコメント(Phrase)でビルドを開始できる
fastlane 🚀
⁃ モバイルアプリに便利なビルドマネージャlane名によって処理を振り分けることができる
17
${ghgrpCommentBody}にPhraseが入る
![Page 18: Dangerでpull requestレビューの指摘事項を減らす](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a6624507f8b9a99198b4a0b/html5/thumbnails/18.jpg)
Copyright © DeNA Co.,Ltd. All Rights Reserved.
GitHub Pull Request Builder + fastlane
GitHub Pull Request Builder
⁃ commit status に phrase (= lane名) を指定
18
ContextをPhraseにする
![Page 19: Dangerでpull requestレビューの指摘事項を減らす](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a6624507f8b9a99198b4a0b/html5/thumbnails/19.jpg)
Copyright © DeNA Co.,Ltd. All Rights Reserved.
fastlaneには danger アクションが用意されている
bundle exec fastlane する場合は必ず
use_bundle_exec: false にしましょう19
> fastlane actions danger
![Page 20: Dangerでpull requestレビューの指摘事項を減らす](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a6624507f8b9a99198b4a0b/html5/thumbnails/20.jpg)
Copyright © DeNA Co.,Ltd. All Rights Reserved.
review レーンで Danger を実行
20
![Page 21: Dangerでpull requestレビューの指摘事項を減らす](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a6624507f8b9a99198b4a0b/html5/thumbnails/21.jpg)
Copyright © DeNA Co.,Ltd. All Rights Reserved.
チームで用いているPull Requestルール
21
.storyboard または .xibに変更があった場合、画像が貼り付けられていること
ソースディレクトリ に変更があった場合、ビルド と シミュレータによるテスト が実行されていること
テストディレクトリ に変更があった場合、シミュレータによるテスト が実行されていること
ビルド および テスト が実行されていた場合、最新の結果が 成功 していること
Pull Request本文に PULL_REQUEST_TEMPLATE.md と同じ項目があり、テンプレートから変更されていること
TODO のチェックが埋まっていること
ビルド と テスト はラベルによってスキップ可能
全てOK だった場合に In Review のラベルを追加
![Page 22: Dangerでpull requestレビューの指摘事項を減らす](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a6624507f8b9a99198b4a0b/html5/thumbnails/22.jpg)
Copyright © DeNA Co.,Ltd. All Rights Reserved.
コード化
.storyboard または .xibに変更があった場合、PR本文中に画像が貼り付けられていること
テストディレクトリ以下に変更があった場合、シミュレータによるテスト が実行されていること
ビルド および テスト が実行されていた場合、最新の結果が 成功 していること
![Page 23: Dangerでpull requestレビューの指摘事項を減らす](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a6624507f8b9a99198b4a0b/html5/thumbnails/23.jpg)
Copyright © DeNA Co.,Ltd. All Rights Reserved.
共通なものはプラグイン化
23
Pull Request本文に PULL_REQUEST_TEMPLATE.md と同じ項目があり、テンプレートから変更されていること
TODO のチェックが埋まっていること
プラグインの作成も簡単
> danger plugins create プラグイン名
で作られたプロジェクト(danger-プラグイン名)のlib/プラグイン名/plugin.rbを編集
作成したプラグインの利用Gemfileに追加するだけ
PR本文の形式はプラグインでまとめて検証
![Page 24: Dangerでpull requestレビューの指摘事項を減らす](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a6624507f8b9a99198b4a0b/html5/thumbnails/24.jpg)
Copyright © DeNA Co.,Ltd. All Rights Reserved.
ラベルを自動的に貼る
24
全てOK だった場合に In Review のラベルを追加
ラベルがある場合は安心してレビューできる
![Page 25: Dangerでpull requestレビューの指摘事項を減らす](https://reader034.vdocuments.mx/reader034/viewer/2022050614/5a6624507f8b9a99198b4a0b/html5/thumbnails/25.jpg)
Copyright © DeNA Co.,Ltd. All Rights Reserved.
最後に
25
Danger を使って PRの形式や最低限の条件 をチェックを 自動化
プロジェクトに Dangerfile を用意してPull Request レビュー(前)指摘事項を減らしましょう