Pivotal TrackerのAPIで、PBIのTASKを追加する

Pivotal TrackerにあるたくさんのPBIにタスクを追加します。
2023.08.01

スクラムのプロジェクト管理に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を確認する(タスクの様子)

Pivotal TrackerのPBIのタスクの様子

Pivotal Trackerの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のタスクが追加された

Pivotal TrackerのPBIのタスクが追加された

さいごに

Pivotal Trackerで、既存のPBIにタスクを追加する場合に役に立つと思います。参考になれば幸いです。

参考