LoginSignup
4
2

More than 1 year has passed since last update.

GitHub CLIでチーム週報を生成する

Last updated at Posted at 2022-06-04

週報の自動生成

毎週の振り返り時に、今取り組んでいるGitHubのIssueや、今週CloseしたIssueが一覧できると進捗確認に便利です。

ということで、自分は毎週チームメンバーのための週報を生成しています。(といいうか前任の方がスクリプトでやっていたので真似しているだけですが・・)

今回はこの週報の生成方法を少し改良したので、その方法を紹介します。

今までのやり方

週報は素朴なシェルスクリプトで実装しており、GitHubへのアクセスはcurlで頑張って実行し、jqでMarkdownに整形していました。
認証にはGitHubのパーソナルアクセストークンを利用していました。

MEMBERS="inajob hogehoge fugafuga" # チームメンバーを列挙する
TOKEN=XXXXX
GHUSER=ZZZZ
REPO=YYYYY
CLOSED_DATE="2022-03-25"

echo "# 今週閉じたIssue"
echo

for m in $MEMBERS
do
  echo "- $m"
  curl --silent -u $GHUSER:$TOKEN "https://api.github.com/search/issues?q=repo%3A${REPO}+assignee%3A${m}+is%3Aclosed+closed%3A%3E${CLOSED_DATE}" | \
    jq -r '.items[]| "    - [" + .title + "](" + .html_url + ")"'
  echo
done

echo "# 取り組み中のIssue"
echo

for m in $MEMBERS
do
  echo "- $m"
  curl --silent -u $GHUSER:$TOKEN "https://api.github.com/search/issues?q=repo%3A${REPO}+assignee%3A${m}+is%3Aopen" | \
    jq -r '.items[]| "    - [" + .title + "](" + .html_url + ")"'
  echo
done

まぁこれはこれで便利でしたが、curlのところがどうにも不恰好だったので、GitHub CLIを使うようにしてみました。

GitHub CLI を使った方法

事前にgh auth loginが必要です、またこのスクリプトは対象となるリポジトリをcloneしたディレクトリ配下で実行する必要があります。

APIの引数部分がコマンドライン引数になりスッキリしました。またghコマンドにjqが内蔵されているので、後続のjqコマンドも不要となりました。

echo "# 今週閉じたIssue"
echo

for m in $MEMBERS
do
  echo "- $m"
  gh issue list --assignee ${m}  --search "is:closed closed:>${CLOSED_DATE}" --json 'title,url' --jq '.[]|"  - [" + .title + "](" + .url + ")"'
  echo
done

echo "# 取り組み中のIssue"
echo

for m in $MEMBERS
do
  echo "- $m"
  gh issue list --assignee ${m} --json 'title,url' --jq '.[]|"  - [" + .title + "](" + .url + ")"'
  echo
done

まとめ

GitHub中心にタスクを管理している場合は、このようにスクリプトを使って、週報を作ることができて便利です。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2