Backlogに毎月のルーチンワーク等を登録するためのスクリプト例です。
Backloglibを試してみましたが、DueDateの値渡しがうまくいかない、Backlog API v1(XML-RPC)のラッパーのためユーザ/パスワードの設定が必要そう、というところでHTTPライブラリを利用して書いてみました。HTTPライブラリとしてRequestsを利用しています。
認証についてはリクエスト毎にAPI Keyを飛ばす方式を利用、API Keyの発行方法についてはBackLog APIの設定を参照。
各リクエストパラメータについてはこちらを参照。リクエストパラメータの一部(priorityIdなど)の取りうる値についてはこちらを参照。
projectIdはプロジェクト設定画面のURL https://(yourspace).backlog.jp/EditProject.action?project.id=123456789
のproject.idから、
categoryId[]はプロジェクト設定画面のURL https://(yourspace).backlog.jp/EditComponent.action?component.id=123456789
のcomponent.idから拾えます。
Python 2.7.10, requests 2.5.0で動作確認済。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests
import datetime
from time import sleep
def addIssue(summary,due_date):
# Set the API endpoint
# Backlog API v2
url = "https://(yourspace).backlog.jp/api/v2/issues"
payload = {
'apiKey': 'your api key',
'issueTypeId': 1,
'projectId': (your project ID),
'summary': summary,
'priorityId': 3,
'description': u'スクリプトによる自動投稿です。',
'categoryId[]':(your category ID),
'dueDate': due_date,
}
r = requests.post(url, params=payload)
print(r.text)
# example: batch addition using for loop
for iterator_month in range(5,10):
# create summary and due_date
cursor_date = datetime.date(2016,iterator_month,1)
summary = u'サンプルタスク(' + cursor_date.strftime("%Y/%m") + u'用)'
due_date = cursor_date.strftime("%Y-%m-%d")
# add issue
addIssue(summary,due_date)
# just in case
sleep(1)