【ワンライナー】GitHub IssueをCSVに一覧する【gh | jq】
こんにちは。kaztoです。
TL;DR
gh issue list -L 1000 --json "number,title,createdAt,state,labels" | jq -r '.[] | [.state, .createdAt, .number, .title, ([.labels[].name] | join("/")) ] | @csv'
以下詳細
経緯
GitHub上で開発していると、大抵の場合Issueを使います。(よね?)
そして、Issueはどんどん溜まっていきます。
GitHubのUIでは、何度もページ遷移して一覧性がイマイチですよね。
そこで、GitHub CLI と jq を使って、見やすいデータに加工したいと思いました。
事前準備(gh、jqコマンドのインストール)
$ brew install gh jq
GitHubにログインします。
$ gh auth login
詳細は https://cli.github.com/manual/gh_auth_login をご覧ください。
gh issue list
gh issue list
コマンドでは、以下のような情報を取得できます。
Available fields:
assignees
author
body
closed
closedAt
comments
createdAt
id
labels
milestone
number
projectCards
reactionGroups
state
title
updatedAt
url
idとIssue Numberが別物であることに注意してください。
適宜欲しいやつを列挙します。
jq
-r
(--raw-output
) オプションをつけることで、出力を(雑な)CSV形式にすることができます。
GitHubのラベルは1Issueに対して複数つけることができますので、配列にしてjoinで連結するなどしています。
欲しい情報をクエリして、最後に @csv 関数を通すと、ちゃんとしたCSV形式に整形してくれます。
いかがでしたでしょうか
jq を使いこなすと、いろいろはかどりますね。