この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
弊社では、プロジェクトの課題管理にBacklogと呼ばれるサービスを利用しています。
お仕事の関係でbacklogの課題を自動生成する必要があり、せっかくなのでBacklog APIを使って課題の登録を行う方法について調べてみました。
APIキーの発行
Backlogの認証は、APIキーを利用する場合とOAuthを利用する場合の2通りがあります。今回はAPIキーを用いてAPIの操作を行います。
APIキーは、[個人設定]->[API]から、「登録」ボタンを押すことで発行できます。発行後は、下の画面にAPIキーが表示されるので、これを用いてAPIの操作を行います。
課題の登録
課題登録の動作確認用のスクリプトは以下のようになりました。
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から、課題が登録されていることも確認できました。