えー久々の更新です^^;
業務でBacklogを使っているのですが、どうも課題をたくさん追加したいときにめんどくささがありました。
BacklogはAPIを公開してくれていますので、それを使いガツガツ登録するスクリプトを書いてみました。とても単純なもので、課題名、詳細、予定工数のみを登録します。
登録する方法はCSVで登録内容を書いてそれを読み込んでAPIを叩くといった感じです。
使ったAPIはbacklog.createIssueとbacklog.getUserのみです。
# -*- coding: utf-8 -*-o import xmlrpclib import sys import csv USER_ID = "" PASS = "" SPACE_ID = "" PROJECT_ID = "" class PyBacklog(object): def __init__(self): server = xmlrpclib.ServerProxy('https://'+USER_ID+':'+PASS+'@'+SPACE_ID+'/XML-RPC') user = server.backlog.getUser(USER_ID) self.s = server self.projectId = PROJECT_ID self.user_id = user["id"] def createIssue(self,param): ''' 課題の追加 ''' if self.s.backlog.createIssue(param): return True return False def getUser(self,user_id): ''' ユーザの取得 ''' user = self.s.backlog.getUser(user_id) if user: return user return False if __name__ == '__main__': issue_dic = { "projectId":'', #プロジェクトID 'summary':'', #課題名 'description':'', #詳細 'estimated_hours':'', #予定工数 'assignerId':'' #担当者 } issue_list = [] bl= PyBacklog() f = open(sys.argv[1],'rU') try: reader = csv.reader(f) for row in reader: issue_dic["projectId"] = bl.projectId issue_dic["summary"] = row[0] issue_dic["description"] = row[1] issue_dic["estimated_hours"] = row[2] issue_dic["assignerId"] = bl.user_id print '=======Preview========' print "課題:",issue_dic["summary"] print "詳細:",issue_dic["description"] print "予定工数:",issue_dic["estimated_hours"] print '=====================' issue_list.append(issue_dic) print "登録する場合は'commit'を入力してください" ans = raw_input() if ans == 'commit': for val in issue_list: bl.createIssue(val) except Exception as e: print 'type' + str(type(e)) print 'args' + str(e.args) print 'message' + e.message print 'e' + str(e) f.close() print '終了'
USER_ID、PASS、SPACE_ID、PROJECT_IDはBacklog登録時に記載されていると思います(たぶん)
とりあえずGithubに。 https://github.com/maaaato/pybacklog
BacklogはXML-RPCというのでAPIを公開しているようです。XMLで結果を返却するみたい。APIはJSONのイメージが強かったのですが、こういうのもあるんですねー