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

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

シェルで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キーを発行したユーザーが参加しているプロジェクトのみ。

元記事はこちら

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