LoginSignup
70
69

More than 5 years have passed since last update.

Trello APIを利用してスクリプトからタスクを管理する

Last updated at Posted at 2014-08-06

「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にログインした状態でブラウザから上記のリンクに飛ぶとアプリケーションキーとシークレットトークンが発行される。

1.png

3. アプリケーショントークンを取得する

上記のURLにブラウザでアクセスすると期限付のアプリケーショントークンが発行される。
上記は1日だが30日にすることも可能。
その場合は「30day」でなく「30days」になるので注意

2.png

うまくいくとこんな画面になる。

30日期限の場合はこんな画面になる。

2s.png

「Allow」ボタンを押すとアプリケーショントークンが発行される。

3.png

今までの作業で手に入れた以下の3つのキーで今回はtrello APIを利用する(認証方式はいくつかある)
* application_key
* application_secret_key
* application_access_token

4 Ruby trelloモジュールのインストール

bundlerを入れてGemfileを書いてbundle install

Gemfile
source "https://rubygems.org"

gem "ruby-trello"

5 trello APIを利用してボードを作成する

create_board.rb
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"

4.png

6 trello APIを利用してカードを作成する

create_board.rb
#認証ロジックは上記と一緒なので略

#ここから個別実装
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 リストに「とりあえず書く」カードが作成されました。

5.png

「scrum for trello」というブラウザの拡張機能をインストールするとタスクのポイントがふれます。
その場合はカード名の先頭にポイントの数字を入れてカッコでくくります。

bundle exec ruby create_card.rb "trello api" "To Do" "(8) むずいUT"

このコマンドをうつと
ポイントが8ふられたカードが作成されました。

6.png

上記のスクリプトを利用しカスタマイズすればCSVからいっきにカードを作ったり、赤や緑のプロジェクト管理ツールからの移行も楽にできるでしょう。

Let’s trello!

70
69
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
70
69