やぬてつです。
この記事は 完全に理解したTalk Advent Calendar 2020 の12日目の記事です。GitHub CLI を何に使ったら良いか迷っている方の一助になればと思い書きました。
みなさん GitHub CLI ご存知ですか?CLI好きにはたまらない機能ですよね。
でもですよ。正直言ってWebでもいいですよね。操作慣れてますし。
そんなことを考えていたら結局WebでIssueを大量作成するPM作業が日々続いていました。
私のプロジェクトでは一つの課題につき3つのIssueを作成しています。メインである課題、テストレビュー、テストの3つです。これをスプリントごと7課題〜10課題、つまり多い時で30Issue作成します。
1つの課題につき3つ作るだけでも面倒くさいし、定型文章も多いので、マウスによるコピペが大量に発生します。テンプレートを利用していてもめんどくさいです。これは自動化したいですね。
そこでCLIですよ。
早速使ってみる
今回はIssueを作成するコマンドを作成します。
Issueを作成するコマンドは以下です。
(///ᴗㆁ✿) < gh issue create
タイトルを追加します。
(///ᴗㆁ✿) < gh issue create --title "タイトル完全に理解した"
本文を追加します。
(///ᴗㆁ✿) < gh issue create --title "タイトル完全に理解した" --body "本文完全に理解した"
ラベルを追加します。
(///ᴗㆁ✿) < gh issue create --title "タイトル完全に理解した" --body "本文完全に理解した" --label complete
プロジェクトを追加します。
(///ᴗㆁ✿) < gh issue create --title "タイトル完全に理解した" --body "本文完全に理解した" --label complete --projects understand
マイルストーンを追加します。
(///ᴗㆁ✿) < gh issue create --title "タイトル完全に理解した" --body "本文完全に理解した" --label complete --projects understand --milestone asap
3種類を並べてみる
私のプロジェクトでは3つを同時に作成するので、タイトルと本文、タグを変更して作成します。
作成してまとめたものが以下になります。
(///ᴗㆁ✿) < gh issue create --title "タイトル完全に理解した" --body "本文完全に理解した" --label complete --projects understand --milestone asap
(///ᴗㆁ✿) < gh issue create --title "テストレビュー_タイトル完全に理解した" --body "テストレビュー完全に理解した" --label test_review --projects understand --milestone asap
(///ᴗㆁ✿) < gh issue create --title "テスト_タイトル完全に理解した" --body "テスト完全に理解した" --label test --projects understand --milestone asap
シェルスクリプトでいい感じにする
これを実行しただけではコピペがまだ必要な状態でミスが発生してしまいます。
シェルスクリプトでゴニョゴニョしていい感じにしましょう。
出来上がったのがこちら。
project=understand
milestone=asap
title=$1;
main_body=$2;
main_title="${main_body##*/}_${title}"
log=`gh issue create --title $main_title --body $main_body --label enhancement --project $project --milestone $milestone`
review_title="テストレビュー_${main_title}"
review_body="テストレビュー完全に理解した #${log##*/}" # メインIssue番号を取得
gh issue create --title $review_title --body $review_body --label test --project $project --milestone $milestone
test_title="テスト_${main_title}"
test_body="テスト完全に理解した #${log##*/}" # メインIssue番号を取得
gh issue create --title $test_title --body $test_body --label test --project $project --milestone $milestone
タイトルと簡単な本文だけで、定形文付きで3つのIssueを作成することができます。
(///ᴗㆁ✿) < zsh complete_unserstand_github_cli.sh "GitHub CLI 完全に理解したタイトル" "GitHub CLI 完全に理解した本文"
CLIの無限の可能性を感じますね。
大量のIssue作成にぜひ GitHub CLI を利用してみてください。
まとめ
GitHub CLI (issue create) の使い道完全に理解した!