---
title: GitHub PR Milestone Check を使ってみた
tags: 
author: [KAWASHIMA Yoshiyuki](https://www.docswell.com/user/ykws)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/LJ3R22ZDE5.jpg?width=480
description: YUMEMI.grow Mobile #17 - connpass https://yumemi.connpass.com/event/331368/
published: October 24, 24
canonical: https://www.docswell.com/s/ykws/Z7REJN-2024-10-24-202940
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/LJ3R22ZDE5.jpg)

GitHub
PR Milestone Check を
使ってみた
KAWASHIMA Yoshiyuki
YUMEMI.grow Mobile #17 2024.10.24


# Page. 2

![Page Image](https://bcdn.docswell.com/page/8JDYZZR2JG.jpg)

今日伝えたいこと
• GitHub PR Milestone Check の導入手順
• GitHub PR Milestone Check を使っても大丈夫？


# Page. 3

![Page Image](https://bcdn.docswell.com/page/VEP6DDWL78.jpg)

GitHub 使ってますか？


# Page. 4

![Page Image](https://bcdn.docswell.com/page/27V31186JQ.jpg)

Milestone 使ってますか？


# Page. 5

![Page Image](https://bcdn.docswell.com/page/5JG32252EL.jpg)

PR の Milestone が設定されていないまま
マージされて困ったことはありますか？


# Page. 6

![Page Image](https://bcdn.docswell.com/page/47Q5PPZ9EP.jpg)



# Page. 7

![Page Image](https://bcdn.docswell.com/page/KE49YYDRJ1.jpg)

• GitHub でリポジトリを新規に作成すると PR Milestone Check
が選択できるようになった


# Page. 8

![Page Image](https://bcdn.docswell.com/page/L71K66ZVEG.jpg)

Pull Request に Milestone が設定
されているかチェックしてくれます


# Page. 9

![Page Image](https://bcdn.docswell.com/page/G7WDWW93E2.jpg)



# Page. 10

![Page Image](https://bcdn.docswell.com/page/4JZG559G73.jpg)



# Page. 11

![Page Image](https://bcdn.docswell.com/page/YE6Y99KQJV.jpg)

PR Milestone Check
• Marketplace で配布されている
• 無料
• ユーザーまたは Organization ごとにインストールが必要
• 無料だが、個人アカウントでクレジット情報が未登録の場合、登
録が必要になる


# Page. 12

![Page Image](https://bcdn.docswell.com/page/GE5GNNP2E4.jpg)

既存のリポジトリへの適用
• Settings
• Third-party Access
• GitHub Apps
• PR Milestone Check
• Con gure
• Repository access
fi
• Only Select repositories


# Page. 13

![Page Image](https://bcdn.docswell.com/page/972Y55617R.jpg)

アプリに必要な Permissions
• Read access to issues, metadata, and pull requests
• Read and write access to commit statuses


# Page. 14

![Page Image](https://bcdn.docswell.com/page/DJYGKK94JM.jpg)

• Milestone が未設定だと Pending に
• この状態だと Pending のままマージができてしまう


# Page. 15

![Page Image](https://bcdn.docswell.com/page/V7NGRRL6E8.jpg)

Milestone 未設定でマージブロック
• Rulesets と組み合わせる
• Require status check to pass
• Add Checks から Milestone Check を追加


# Page. 16

![Page Image](https://bcdn.docswell.com/page/YJ9WMM4RJ3.jpg)



# Page. 17

![Page Image](https://bcdn.docswell.com/page/GJ8NLLQGED.jpg)

• Milestone が未設定だと Pending に
• この状態だと Pending のままではマージできない


# Page. 18

![Page Image](https://bcdn.docswell.com/page/LJLPLLXXER.jpg)



# Page. 19

![Page Image](https://bcdn.docswell.com/page/47M4MML3EW.jpg)

スーパーマサカリゾーン


# Page. 20

![Page Image](https://bcdn.docswell.com/page/P7RWVVKRE9.jpg)



# Page. 21

![Page Image](https://bcdn.docswell.com/page/PJXPZZLYEX.jpg)

実体は？


# Page. 22

![Page Image](https://bcdn.docswell.com/page/3JKD88L47D.jpg)

milestone-check の実体
• https://github.com/scholzj/milestone-check
• Star 9
• Installs 134
• Java
• Quarkus


# Page. 23

![Page Image](https://bcdn.docswell.com/page/LE3R223D75.jpg)

依存関係
pom.xml
• Quarkus Maven Plugin
• Apache Maven Compiler Plugin
• Maven Sure re Plugin
fi
• Maven Failsafe Plugin


# Page. 24

![Page Image](https://bcdn.docswell.com/page/8EDYZZ42EG.jpg)

ソースコードは一つ


# Page. 25

![Page Image](https://bcdn.docswell.com/page/V7P6DDMLJ8.jpg)

• Milestone の変更に対しての Issue イベントのフック
• Issue もこのイベントで上がってくるので、 PR か判定して、handlePullRequest に流す


# Page. 26

![Page Image](https://bcdn.docswell.com/page/2JV31196EQ.jpg)

• Pull Request のプッシュイベントのフック
• PR か来ないのでそのまま、handlePullRequest に流す


# Page. 27

![Page Image](https://bcdn.docswell.com/page/5EG322Z27L.jpg)

• Milestone が設定されているか判定して処理を分岐


# Page. 28

![Page Image](https://bcdn.docswell.com/page/4JQ5PPL97P.jpg)

• PR の Status を更新


# Page. 29

![Page Image](https://bcdn.docswell.com/page/K749YY5RE1.jpg)

• FAILURE_STATE として GHCommitState.PENDING を渡している
ので PR で Pending と表示されている


# Page. 30

![Page Image](https://bcdn.docswell.com/page/LJ1K66WV7G.jpg)

GitHub App として提供している理由
https://github.com/scholzj/milestone-check/issues/7
• トークンの課題を回避できるのでフォークに対応しやすい
• pull_request イベントと issues イベントの両方を扱う必要がある


# Page. 31

![Page Image](https://bcdn.docswell.com/page/GJWDWW6372.jpg)

わかっていないこと
• GitHub App の実行ログは見ることができる？
• GitHub App の実行される実体はどこにある？（インストールさ
れた時点のバージョンが動くのか、常に latest が動くのか、これ
によって脆弱性の混入など不安要素が生じる）


