Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GitHub Projectsにおける チケットの ステータス更新自動化について
Search
NearMeの技術発表資料です
PRO
July 30, 2024
Programming
1
27
GitHub Projectsにおける チケットの ステータス更新自動化について
NearMeの技術発表資料です
PRO
July 30, 2024
Tweet
Share
More Decks by NearMeの技術発表資料です
See All by NearMeの技術発表資料です
Architecture Decision Record (ADR)
nearme_tech
PRO
1
590
遺伝的アルゴリズムを実装する
nearme_tech
PRO
1
17
Fractional Derivative!
nearme_tech
PRO
1
14
2つの曲線を比較する方法ってあるの? 〜フレシェ距離を試してみた〜 with Python
nearme_tech
PRO
1
110
Constrained K-means Clustering (クラスタサイズの制限をしたK-means法) を調べてみた
nearme_tech
PRO
1
46
VRPの近傍操作SWAP*について調べてみた
nearme_tech
PRO
1
77
新人エンジニアが読んでためになった本
nearme_tech
PRO
2
38
Object–relational mapping and query builder battle 1: Intro to Prisma
nearme_tech
PRO
1
46
深層学習モデルの最適化 -Deep Learning Tuning Playbookを読む-
nearme_tech
PRO
1
63
Other Decks in Programming
See All in Programming
いつか使える ObjectSpace / Maybe useful ObjectSpace
euglena1215
2
130
僕が思い描くTypeScriptの未来を勝手に先取りする
yukukotani
7
2.2k
ゲームボーイアドバンスでSwiftを動かそう
k_koheyi
0
540
TextFieldに"2"が入力できなくなったお話.pdf
hisakioomae
0
100
rails_girls_is_my_gate_to_join_the_ruby_commuinty
maimux2x
0
170
長期運用プロダクトの開発速度を維持し続けるためのリファクタリング実践例
wataruss
8
2.6k
【TID2024】模擬講義:プログラマと一緒にゲームをデザインしてみよう!
akatsukigames_tech
0
470
TypeScriptで 負荷テストを書こう 〜k6のシングルバイナリの秘密〜
dora1998
7
2.9k
Prompt Cachingは本当に効果的なのか検証してみた.pdf
ttnyt8701
0
500
The Sequel to a Dream of Ruby Parser's Grammar
ydah
1
200
Regular Expressions, REXML, Automata Learning
makenowjust
0
190
rbs-inlineを導入してYARDからRBSに移行する
euglena1215
1
230
Featured
See All Featured
Embracing the Ebb and Flow
colly
83
4.4k
Imperfection Machines: The Place of Print at Facebook
scottboms
263
13k
Clear Off the Table
cherdarchuk
90
320k
Rebuilding a faster, lazier Slack
samanthasiow
78
8.5k
Web Components: a chance to create the future
zenorocha
308
41k
Rails Girls Zürich Keynote
gr2m
93
13k
Being A Developer After 40
akosma
83
580k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
Speed Design
sergeychernyshev
19
410
GraphQLとの向き合い方2022年版
quramy
43
13k
Robots, Beer and Maslow
schacon
PRO
157
8.1k
The Cult of Friendly URLs
andyhume
76
5.9k
Transcript
0 GitHub Projectsにおける チケットの ステータス更新⾃動化について 2024-07-26 第100回NearMe技術勉強会 YO
1 目次 • Projectsでのチケット管理 • Projectsの機能を使って行える自動化 • Actionsを使わないとできない自動化 • ワークフローを作ってみて
2 要約 • GitHub Projects (V2)で複数のRepositoryのチケットを管理する • チケットのステータス更新を自動化したい • ステータス更新自動化の際、UI上で完結するもの(Projectsの
workflow)と、ワークフローの設定を記述しないといけないもの (GitHub Actions)がある • Personal Access Tokenの設定方法については割愛する
3 Projectsでのチケット管理 理想の運用 • マネージャーから見てチケットのステータス、各人の業務量が分かる状態 • 開発者は事務的な作業を頑張らなくてもよい状態 自動化の背景 • 「どの人がどんなタスクを持っている」のか都度コミュニケーションが発生してしまう
• 開発者がチケットのステータス更新を忘れてしまうことで、マネージャーはリ アルタイムなチケットの進捗が分からない • (今後)チケット更新がリアルタイムで行われないと、チケットを消化するのに 要した実測値が正しくとれない
4 Projectsでのチケット管理 Projectとは? • UserまたはOrganizationに紐づく機能 • 複数のRepositoryのIssueを一覧化したりIssueをボードに並べることが できる(ソート、フィルター、グルーピング) なぜGitHub Projects?
• マネージャーは複数のリポジトリのチケットを一元的に管理したい • 開発者側の既存の運用をなるべく変えたくない(GitHubのIssueで開発 のチケットを管理、チケット管理のためにツールを増やしたくない)
5 Projectsの機能を使って行える自動化 今回の説明で使用するProject • スタータスは以下の5つ ◦ 📪とりあえず ◦ 📚着手前 ◦
⌨開発中 ◦ 👀レビュー中 ◦ ✅マージ済み
6 Projectsの機能を使って行える自動化 トリガー アクション Repositoryに新しいIssueが追加 Projectsに追加する Issueに紐づいたPull Requestが マージされた Issueのステータスを「✅マージ済
み」にする Issueのステータスが「✅マージ済 み」になった Issueをクローズする
7 Actionsを使わないとできない自動化 Actionsとは? • Repositoryに紐づく機能 • Repository内での操作を自動化できる
8 Actionsを使わないとできない自動化 トリガー アクション IssueにDraft PRが追加 Issueのステータスを「⌨開発中」にす る IssueにPRが追加 Issueのステータスを「👀レビュー中」
にする Issueに追加されたDraft PRがPRに変更 された 「⌨開発中」から「👀レビュー中」に移動 する Issueに追加されたPRがDraft PRに変更 された 「👀レビュー中」から「⌨開発中」に移動 する Issueにassigneeが追加 「📪とりあえず」から「📚着手前」に移動 する
9 Actionsを使わないとできない自動化 ①起案 ②棚卸 ③実装はされたが 承認はまだのもの ここの自動化 • 「実装が作られた」を感知 •
Project上でチケットを移動 ④承認
10 Actionsを使わないとできない自動化 1. 開発者がPull Requestを作成する(トリガー 1) 2. GitHub ActionsがPull Requestの説明を読んで、メンションさ
れたIssueに作成されたPull Requestの種類に応じたコメント を書きに行く(トリガー 2) 3. GitHub ActionsがIssueにコメントされたのを感知して、コメン ト内容に応じてProject上でIssueを移動 • Issueにコメントが記載 される • PR作成 • Draft PR作成 • Draft PR→PR • 閉じられてたPR再開 YO YO
11 Actionsを使わないとできない自動化 作成したワークフロー • キーワード ◦ Expressions : ${{ }}を使うことで環境変数などをワークフロー内に埋め込める
機能 ◦ Contexts : トリガーやジョブに関する情報にアクセスするための機能 ◦ GitHub CLI : GitHubを使用するためのコマンドラインツール • 以下のGistのコードで解説 https://gist.github.com/yutaokamoto/1bd9bffc70319fb09db256b7e193658c
12 ワークフローを作ってみて 苦労した点 • GitHub Actionsに慣れること ◦ Expressions ◦ Contexts
◦ GitHub CLI • GitHub Projects (Classic)だとコメントを記載するのが簡単にできるっぽ い • Issueに関するワークフローはメインのブランチにマージされないと実行 されない • Actionが書き込んだコメントに改行が入ってしまう
13 ワークフローを作ってみて 苦労した点 • GitHub上で自動化の実行を行ってみないと分からないことも多く、デ バッグがやりづらかった ◦ debug loggingというログを詳し目に出してくれる機能に途中で気づいた
14 Thank you