1.5K Views
October 24, 24
スライド概要
YUMEMI.grow Mobile #17 - connpass
https://yumemi.connpass.com/event/331368/
Mobile Application Programmer
GitHub PR Milestone Check を 使ってみた KAWASHIMA Yoshiyuki YUMEMI.grow Mobile #17 2024.10.24
今日伝えたいこと • GitHub PR Milestone Check の導入手順 • GitHub PR Milestone Check を使っても大丈夫?
GitHub 使ってますか?
Milestone 使ってますか?
PR の Milestone が設定されていないまま マージされて困ったことはありますか?
• GitHub でリポジトリを新規に作成すると PR Milestone Check が選択できるようになった
Pull Request に Milestone が設定 されているかチェックしてくれます
PR Milestone Check • Marketplace で配布されている • 無料 • ユーザーまたは Organization ごとにインストールが必要 • 無料だが、個人アカウントでクレジット情報が未登録の場合、登 録が必要になる
既存のリポジトリへの適用 • Settings • Third-party Access • GitHub Apps • PR Milestone Check • Con gure • Repository access fi • Only Select repositories
アプリに必要な Permissions • Read access to issues, metadata, and pull requests • Read and write access to commit statuses
• Milestone が未設定だと Pending に • この状態だと Pending のままマージができてしまう
Milestone 未設定でマージブロック • Rulesets と組み合わせる • Require status check to pass • Add Checks から Milestone Check を追加
• Milestone が未設定だと Pending に • この状態だと Pending のままではマージできない
スーパーマサカリゾーン
実体は?
milestone-check の実体 • https://github.com/scholzj/milestone-check • Star 9 • Installs 134 • Java • Quarkus
依存関係 pom.xml • Quarkus Maven Plugin • Apache Maven Compiler Plugin • Maven Sure re Plugin fi • Maven Failsafe Plugin
ソースコードは一つ
• Milestone の変更に対しての Issue イベントのフック • Issue もこのイベントで上がってくるので、 PR か判定して、handlePullRequest に流す
• Pull Request のプッシュイベントのフック • PR か来ないのでそのまま、handlePullRequest に流す
• Milestone が設定されているか判定して処理を分岐
• PR の Status を更新
• FAILURE_STATE として GHCommitState.PENDING を渡している ので PR で Pending と表示されている
GitHub App として提供している理由 https://github.com/scholzj/milestone-check/issues/7 • トークンの課題を回避できるのでフォークに対応しやすい • pull_request イベントと issues イベントの両方を扱う必要がある
わかっていないこと • GitHub App の実行ログは見ることができる? • GitHub App の実行される実体はどこにある?(インストールさ れた時点のバージョンが動くのか、常に latest が動くのか、これ によって脆弱性の混入など不安要素が生じる)