スクラムのプロジェクト管理にPivotal Trackerを使っています。 PBIのタスクにいろいろと書いているのですが、新しいタスクを追加することになりました。
このとき、バックログにある既存PBIすべてにタスクを追加したいです。 手動で更新するのは大変なので、Pivotal TrackerのAPIを使ってみました。
おすすめの方
- Pivotal TrackerのAPIを使いたい方
- Pivotal TrackerのAPIでPBIを検索したい方
- Pivotal TrackerのAPIでPBIにタスクを追加したい方
Pivotal TrackerのAPIトークンを取得する
下記を参考にしてAPIトークンを取得します。
Pivotal TrackerのAPIで、PBIにタスクを追加する
いまのPBIを確認する(タスクの様子)
PBIの一覧を取得して、タスクを追加するスクリプト
次のAPIを利用します。
本記事ではPythonで書いてみました。 PBIの一覧を取得する方法の詳細は、次をご覧ください。
app.py
import json
import urllib.parse
import requests
from time import sleep
API_ENDPOINT = 'https://www.pivotaltracker.com/services/v5'
TOKEN = 'your_token'
PROJECT_ID = 'xxx'
def main():
result = search()
for item in result['stories']['stories']:
print(f"{item.get('id')} {item.get('name')}")
add_task(item.get('id'), 'アレをコレしてソレする')
sleep(0.1)
print('------')
print(result['stories']['total_hits'])
def search():
headers = {
'X-TrackerToken': TOKEN,
}
# わかりやすさ優先でListで書いてみる
query = [
'type:feature,bug,chore',
'state:unscheduled,unstarted,started',
]
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()
def add_task(story_id: int, description: str):
headers = {
'X-TrackerToken': TOKEN,
'Content-Type': 'application/json',
}
payload = {
'description': description,
}
requests.post(
f'{API_ENDPOINT}/projects/{PROJECT_ID}/stories/{story_id}/tasks',
headers=headers,
data=json.dumps(payload)
)
if __name__ == '__main__':
main()
実行する
python app.py
結果を確認する
タスクが追加されました。
さいごに
Pivotal Trackerで、既存のPBIにタスクを追加する場合に役に立つと思います。参考になれば幸いです。