Backlog を API で操作して、課題追加した結果 URL を取得するまで
Backlog を API 経由で操作してみました。
ライブラリ:BacklogKit(0.18.0)を Ruby で使うのですが、基本的には Qiita に書いてあるやり方を参考にすれば簡単なんでしょうけれども、非プログラマーにとってはドキュメントを見ただけではどう実現すれば良いのかわからない・・・w
参考:RubyでBacklogを操作する – Qiita
ということで、色々と試して出来たことをメモしておきます。
ドメインによっては環境設定が必要
バックログのスペースを開設したタイミングによって、ドメインが異なります。
2017年9月上旬より、Backlogの日本語版および英語版ウェブサイトのドメインを「 backlog.com 」に変更・統一いたします。
これまで、日本国内ではbacklog.jp、海外ではbacklogtool.comという2つのドメインでサービスを提供してきましたが、今後は段階的に、国内も海外も「 backlog.com 」ドメインに統合していきます。
Backlogはサービスのドメインを.comドメインに変更します!(API開発者様へ重要なお願い) | Backlogブログ
BacklogKit v0.18.0 では、「.com」ドメインを対象としているようなので、JP ドメインのスペースを操作するには、Client Config で指定する必要があります。(いきなり躓きました
ENV['BACKLOG_TOP_LEVEL_DOMAIN'] = 'jp'
セッションの作成
# encoding: utf-8
require 'backlog_kit' # 0.18.0
# ドメイン設定
ENV['BACKLOG_TOP_LEVEL_DOMAIN'] = 'jp'
# セッション作成
client = BacklogKit::Client.new(
space_id: '{スペース ID}',
api_key: '{API KEY}'
)
セッションを作成してから色々と操作をする感じ。
注意.スペース ID
https://{スペース ID}.backlog.com/dashboard
「スペース名」ではないので注意。
課題の追加
client.create_issue("{件名}",{
projectId: '{ID}',
priorityId: '{ID}',
issueTypeId: '{ID}'
})
この3つの ID が課題の追加には必須のようです。(厳密に言えば「件名」も必須なので、4項目が必須)
参考:課題の追加 | Backlog Developer API | Nulab
必須1.プロジェクト ID
「プロジェクト名」とか「プロジェクトキー」ではないので注意。私は課題一覧の URL から確認しました。
https://{スペース ID}.backlog.com/find/{プロジェクトキー}?condition.projectId={プロジェクト ID}&condition.statusId=(以降省略)
必須2.優先度 ID
- 5,4・・高
- 3・・・中
- 2,1・・低
だったかと思います、多分。
必須3.種別 ID
種別の編集ページの URL を見に行かないと分かりませんでした。
https://{スペース ID}.backlog.com/EditIssueType.action?issueType.id={種別 ID}&issueType.projectId={プロジェクト ID}
API で各一覧を取得すればそれぞれの ID が分かるんでしょうけれども、ね、そもそもその方法がわからないので。
追加した課題の URL を取得する
# 課題追加
result = client.create_issue("{件名}",{
projectId: '{ID}',
priorityId: '{ID}',
issueTypeId: '{ID}'
})
# 課題追加した結果URLを取得
p issue_url = result.headers.location
まとめ
# encoding: utf-8
require 'backlog_kit' # 0.18.0
# ドメイン設定
ENV['BACKLOG_TOP_LEVEL_DOMAIN'] = 'jp'
client = BacklogKit::Client.new(
space_id: '{スペース ID}',
api_key: '{API KEY}'
)
result = client.create_issue("APIから",{
projectId: '{ID}',
priorityId: '3',
issueTypeId: '{ID}',
description: 'Backlog を API で操作して、課題追加した結果 URL を取得するまで'
})
p issue_url = result.headers.location
を実行すると、
yuichon-MBP:backlog_kit yuichon$ bundle exec ruby APITEST.rb
"https://{スペース ID}.backlog.com/view/APITEST-10"
こんな感じで URL が戻ってきました。