「Joel on Software」の著書のJoel氏が立ち上げたFog Creek社のタスク管理ツールtrello。
スクラムのかんばんを視覚的に再現しつつ、WEBインターフェースで快適に動作する優れたツールです。
「便利とは聞いたことあるけど、既存のプロジェクト管理ツールから移行するのが面倒。」
「物理的に時間的に既存のRedmineやBacklogのチケットをtrelloに移行するのが無理。」
そういう人達のために開発用APIが公開されているためそれを利用すればいっきに赤い管理ツールからの移行もできます。
公開されているのはREST APIなので基本はどの言語でも利用できますが今回はRubyからtrello APIを利用する方法を紹介します。
APIドキュメントは以下
https://trello.com/docs/
#1. trelloのアカウントを取得
ここは説明不要なのでSKIP
#2. trelloの開発者用のアカウントを取得
https://trello.com/1/appKey/generate
trelloにログインした状態でブラウザから上記のリンクに飛ぶとアプリケーションキーとシークレットトークンが発行される。
#3. アプリケーショントークンを取得する
上記のURLにブラウザでアクセスすると期限付のアプリケーショントークンが発行される。
上記は1日だが30日にすることも可能。
その場合は「30day」でなく「30days」になるので注意
うまくいくとこんな画面になる。
30日期限の場合はこんな画面になる。
「Allow」ボタンを押すとアプリケーショントークンが発行される。
今までの作業で手に入れた以下の3つのキーで今回はtrello APIを利用する(認証方式はいくつかある)
- application_key
- application_secret_key
- application_access_token
#4 Ruby trelloモジュールのインストール
bundlerを入れてGemfileを書いてbundle install
source "https://rubygems.org"
gem "ruby-trello"
#5 trello APIを利用してボードを作成する
require 'trello'
include Trello
include Trello::Authorization
#認証用の共通ロジック開始
application_key = ""
application_secret = ""
application_token = ""
Trello::Authorization.const_set :AuthPolicy, OAuthPolicy
OAuthPolicy.consumer_credential = OAuthCredential.new application_key, application_secret
OAuthPolicy.token = OAuthCredential.new application_token, nil
me = Trello::Member.find("me")
#認証用の共通ロジック終わり
#ここから個別実装
if ARGV.length < 1
puts "usage"
puts "./create_board [board_name]"
exit
end
board = Board.create(:name => ARGV[0]);
以下のコマンドで「trello api」というボードを作る
bundle exec ruby create_board.rb "trello api"
#6 trello APIを利用してカードを作成する
#認証ロジックは上記と一緒なので略
#ここから個別実装
if ARGV.length < 3
puts "usage"
puts "./create_card [board_name] [list_name] [card_name]"
exit
end
target_board_name = ARGV[0]
target_list_name = ARGV[1]
card_name = ARGV[2]
board_id = nil
list_id = nil
me.boards.each do |board|
if board.name == target_board_name
board_id = board.id
break
end
end
puts board_id
unless board_id
puts "ボードが見つかりません"
exit
end
Board.find(board_id).lists.each do |list|
if list.name == target_list_name
list_id = list.id
break
end
end
puts list_id
unless list_id
puts "リストが見つかりません"
exit
end
Card.create(:name => card_name, :list_id => list_id)
trelloは大きいドメイン順に ボード->リスト->カード となるため
カードを作るためには**「どのボードのどのリストにカードを作るか?」**の指定が必要になる。
以下のコマンドで「trello apiボードのTo Doリストに**"とりあえず書く"**」カードを作成する
bundle exec ruby create_card.rb "trello api" "To Do" "とりあえず書く"
To Do リストに「とりあえず書く」カードが作成されました。
「scrum for trello」というブラウザの拡張機能をインストールするとタスクのポイントがふれます。
その場合はカード名の先頭にポイントの数字を入れてカッコでくくります。
bundle exec ruby create_card.rb "trello api" "To Do" "(8) むずいUT"
このコマンドをうつと
ポイントが8ふられたカードが作成されました。
上記のスクリプトを利用しカスタマイズすればCSVからいっきにカードを作ったり、赤や緑のプロジェクト管理ツールからの移行も楽にできるでしょう。
Let’s trello!