スクラムのプロジェクト管理にPivotal Trackerを使っています。 本記事では、Pivotal Trackerが提供するAPIを使って、PBIを検索してみました。
おすすめの方
- Pivotal TrackerのAPIを使いたい方
- Pivotal TrackerのAPIでPBIを検索したい方
Pivotal Trackerの状態を確認する
実験用のPivotal Trackerのプロジェクトには、次のPBIがあります。
Pivotal TrackerのAPIトークンを取得する
下記を参考にしてAPIトークンを取得します。
Pivotal TrackerのAPIで検索する
次のAPIを利用します。
利用できるキーワードは下記です。複数のキーワードを指定する場合は、半角空白で結合します(しばらく分からなかった)。
本記事ではPythonでAPIアクセスします。次の条件で検索します。
- PBIの種類: feature, bug, chore
- PBIの状態: unscheduled, unstarted(未着手、または、iceboxにあるPBI)
app.py
import json
import urllib.parse
import requests
API_ENDPOINT = 'https://www.pivotaltracker.com/services/v5'
TOKEN = 'you_token'
PROJECT_ID = 'xxx'
headers = {
'X-TrackerToken': TOKEN
}
def main():
result = search()
# print(json.dumps(result, indent=2))
for item in result['stories']['stories']:
print(item['name'])
print('------')
print(result['stories']['total_hits'])
def search():
# わかりやすさ優先でListで書いてみる
query = [
'type:feature,bug,chore',
'state:unscheduled,unstarted',
]
url_query = {
# キーワードの区切りは半角空白
'query': ' '.join(query),
}
parameter = urllib.parse.urlencode(url_query)
resp = requests.get(f'{API_ENDPOINT}/projects/{PROJECT_ID}/search?{parameter}', headers=headers)
return resp.json()
if __name__ == '__main__':
main()
検索してみる
python app.py
次の結果になりました。バッチリですね。
警備員は、xxxの異常を電話で知りたい。なぜならすぐに駆けつけて解決したいからだ。(持ち越し用)
買い物客は、商品一覧ページに1秒未満で遷移したい。なぜなら検索が遅いと購入する気が無くなるからだ。
Lambdaで使っているPythonを3.6から3.8にしたい
hogeしたとき、次の画面に進めなくなる
CI/CDパイプラインを見直して改善する
管理者は、昨日のxxxの異常をメールで一覧で知りたい。なぜなら……
[TB 1h*2] zzzの動作検証をする
買い物客は、やっほーしたい
Webアプリの「foo」ボタンを連打しまくると、LambdaでErrorが発生する
------
9
さいごに
プロジェクトIDを変えて実験してみたところ、330件のPBIが取得できました。 API仕様にも最大取得件数や次ページなどの指定が無いので、全件取得できそうです。