Backlog APIを使ってBacklogに課題を登録する

2017.02.20

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

弊社では、プロジェクトの課題管理にBacklogと呼ばれるサービスを利用しています。

お仕事の関係でbacklogの課題を自動生成する必要があり、せっかくなのでBacklog APIを使って課題の登録を行う方法について調べてみました。

APIキーの発行

Backlogの認証は、APIキーを利用する場合とOAuthを利用する場合の2通りがあります。今回はAPIキーを用いてAPIの操作を行います。

APIキーは、[個人設定]->[API]から、「登録」ボタンを押すことで発行できます。発行後は、下の画面にAPIキーが表示されるので、これを用いてAPIの操作を行います。

hog

課題の登録

課題登録の動作確認用のスクリプトは以下のようになりました。

space_key, project_id, issue_type_idなどの情報は別途APIから確認しました。

import requests

BASE_URL = 'https://{space_key}.backlog.jp/api/v2/{api}'

api_key       = 'xxxxxxxxxxxxxxxxx'
space_key     = 'hogehoge' # スペースの名前

def add_issue(_project_key, _issue_type_id, _priority_id, _summary, _description):
    api = 'issues'
    url = BASE_URL.format(space_key=space_key, api=api)
    payload={
        'projectId': _project_key,
        'issueTypeId': _issue_type_id,
        'priorityId': _priority_id,
        'summary': _summary,
        'description': _description
    }

    params = {
        'apiKey': api_key,
    }

    r = requests.post(url, params=params, data=payload)
    r.raise_for_status()
    return r

project_id    = '1234567890' # 課題を登録するプロジェクトのID
issue_type_id = '1234567890' # 課題の種別ID
priority_id   = '3'          # 優先度のID(3は中)
summary       = 'test'

description = '''
test
テスト
|てすと|テスト|h
|1|2|
|3|4|
'''

r = add_issue(project_id, issue_type_id, priority_id, summary, description)

実行してみると、こんな感じでresponseが返ってきていることがわかります。

In [24]: %run add_issue.py
In [25]: import json
In [26]: json.loads(r.text)
Out[26]:
{'actualHours': None,
 'assignee': None,
 'attachments': [],
 'category': [],
 'created': '2017-02-20T08:33:02Z',
 'createdUser': {'id': xxxxxxxxx,
 ...

backlogから、課題が登録されていることも確認できました。

hoge

参考