Backlog APIを使ってBacklogに課題を登録する
弊社では、プロジェクトの課題管理に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から、課題が登録されていることも確認できました。