GoogleSpreadSheet (GSS) でGithub Issueを簡単に管理するシートを作ってみた
はじめに
皆さん、お久しぶりです。
私です。
こちらの記事ご覧になった方、
ありがとうございます。 m(_ _)m
ブログを書き始めて改めて思ったことなのですが、
私のブログ、毎回毎回長すぎじゃね?
というわけで、今回は短く、GoogleSpreadSheet(GSS)で簡単なIssue管理をするListのサンプルとその作り方を簡単に共有します。
ネタじゃないブログ画像
やりたいこと
- Issueの番号をIDとして表示(Issueへのリンクを付ける)
- 依存関係のあるIssueが登録できる
- 依存関係のあるIssueが解決されているかどうか分かる
作り方
Issueの番号をIDとして表示(Issueへのリンクを付ける)
これは簡単ですね。
基本的にB列をIssueのURLを入れるところにしています。
[A1] =ARRAYFORMULA( ←全部の行に対して適応 IFS( ROW(B:B)=1,"#", ←1行目は"#"を表示 ISBLANK(B:B),"", ←B列が空の場合は何も表示しない NOT(ISBLANK(B:B)), ←上記以外の場合は ↓B列の数値部分だけ取り出して、"#<<取り出した数値>>" を生成、リンクを付与 HYPERLINK(B:B, "#"®EXEXTRACT(B:B,"[0-9]+")) ) ) ) おまけ [B2:B (各行にコピー)] =IF( ISBLANK(B:B),"", ←B列が空の場合は何も表示しない IMPORTXML(B2,"//*[@id='partial-discussion-header']/div[1]/div/h1/span[1]") ↑Github IssueからIssueタイトルを取得(B2セルに書く場合)
依存関係のあるIssueが登録できる
これは記録できる列を作るだけなのでパス
依存関係のあるIssueが解決されているかどうか分かる
1. Issue がCloseになっているかどうかのパイププラインを作成
2. 依存Issueの数をカウント
[J2:J (各行にコピー)] =COUNTA(D2:G2) ←J2に書く時の場合
3. CloseになっているIssueをカウント
[K2:K (各行にコピー)] =IF( ← K2に書く場合 ISBLANK(D2),0, ← 空白のときは0 COUNTIFS(A:A,"="&D2,I:I,"=Close")) + ← 対象のIssueでCloseになっているものをカウント ↓以下、繰り返し(THE力技) IF(ISBLANK(E2),0,COUNTIFS(A:A,"="&E2,I:I,"=Close")) + IF(ISBLANK(F2),0,COUNTIFS(A:A,"="&F2,I:I,"=Close")) + IF(ISBLANK(G2),0,COUNTIFS(A:A,"="&G2,I:I,"=Close"))
4. SPARKLINE を使ってわかりやすくする
依存Issueのうち何件終わっているかがわかるようにSPARKLINEのBarChart使います
[H2:H (各行にコピー)] =IF( ←H2に書く場合 ISBLANK(B2),"", SPARKLINE(K2, ← CloseされたIssueの数 {"charttype","bar"; ← BarChart指定 "max",J2; ← 依存Issueの数 "color1","#191970" ← BarChartの色 }) )
完成
さいごに
何箇所か回りくどい記述が多いのでもっとスマートな記述をしていきたいこころ