[追記あり]Backlogで特定ユーザーが担当者の未完了課題一覧を取得するシェル


未完了のBacklogの課題を一覧したいとき、担当者が自分のものであればダッシュボードで確認できますが、他メンバーの課題を プロジェクト跨いで画面から確認できなかったので 、APIを用いて抽出しました。

追記:プロジェクトを跨いで検索できました。
画面上部右上の ... から

ただ削除済みのメンバーは選択できず。urlのcondition.assignerId=で直接指定すればいけるかも(未検証)

課題の引き継ぎ漏れがないかなどをプロジェクト横断してチェックするのに使えます。 異動などで無効化したユーザーが担当者のままの課題 も検索できました。

シェルでcurl打ってるだけですが共有します。

未完了課題一覧の取得

インプット

スペースID、APIキー、対象ユーザーIDがわかれば利用できます。

  • スペースID = スペースIDとは?
  • APIキー = APIの設定
  • ユーザーID = 10XXXXXXXX みたいな数字のやつ。ユーザ情報から見れる「tarou」のようなIDではない。

ユーザーIDは、ちょっとややこしいので 別の記事 にしました

スクリプト

Backlog API:課題一覧の取得 を叩くだけです。

issue_list_by_user.sh
#!/usr/bin/env bash

# parameter
if [ $# -ne 3 ]; then
    CMDNAME=`basename $0`
    echo "Usage: $CMDNAME <space> <api-key> <user_id>" 1>&2
    exit 1
fi
SPACE=$1
API_KEY=$2
USER_ID=$3

# execute
url="https://${SPACE}.backlog.jp/api/v2/issues?apiKey=${API_KEY}&assigneeId[]=${USER_ID}&statusId[0]=1&statusId[1]=2&statusId[2]=3"
curl --globoff ${url}

exit 0

assigneeId[]=${USER_ID}

これで指定ユーザーが担当者の課題のみを抽出しています。

statusId[0]=1&statusId[1]=2&statusId[2]=3

これで未完了(未処理、処理中、処理済み)の課題のみを抽出しています。

呼び出し

「スペースID」「APIキー」「ユーザーID」を指定して実行

$ sh issue_list_by_user.sh xxx ffffffffffffffff 10xxxxxxxxxx

実行するとレスポンスがjson形式でドバッと出ます。
いったんファイルに保存するなりjq使うなりで整形すると確認しやすいです。

$ sh issue_list_by_user.sh xxx ffffffffffffffff 10xxxxxxxxxx | jq '.[] | {issueKey, summary, updated, status }'

上記のjqを通した場合の出力例

{
  "issueKey": "TEST_PJ-10",
  "summary": "追加機能Aについて",
  "updated": "2019-05-01T10:00:000",
  "status": {
    "id": 2,
    "name": "処理中"
  }
}
{
  "issueKey": "TEST_PJ-11",
  "summary": "追加機能Bについて",
  "updated": "2019-05-10T10:00:000",
  "status": {
    "id": 1,
    "name": "未対応"
  }
}
{
  "issueKey": "XXX-21",
  "summary": "打ち合わせ",
  "updated": "2019-03-01T10:00:000",
  "status": {
    "id": 3,
    "name": "処理済み"
  }
}

留意点

検索できる課題は、APIキーを発行したユーザーが参加しているプロジェクトのみ。