【小ネタ】タスク管理ツール移行: Trello から Asana


 

プロジェクトチームのタスク管理ツールを Trello から Asana に変えることになり、
タスクの移行が意外と簡単にできた、というお話です。

Trello と Asana

もともと使っていたのは Trello(トレロ)です。
プロジェクト > タスクグループ > タスク を、ボード > リスト > カード として管理します。
使いづらさを感じたのは、カードの階層管理ができない点でした。(カード > チェックリストはありますが)trello

一方 Asana(アサナ)は、ワークスペース(組織) > チーム > プロジェクト > タスク という管理です。
「セクション」でタスクグループが設定できたり、タスク内でサブタスクの追加できたり、と柔軟性があります。asana

さて移行作業

Trello は2ヵ月ほど使っており、60以上のカードがありました。
Asana に手動で登録し直すのは面倒、、と思ったところ、Asana API が!。
Asana のプロジェクトに、API で Trello のタスクを登録すれば良いですね。

Asana へのタスク登録は、tasks API を使います。今回は、タスクのタイトル name と説明 notes のみ移行対象とします。

# Request
curl -u <api_key>: https://app.asana.com/api/1.0/tasks \
-d "assignee=1235" \
-d "followers[0]=5678" \
-d "name=Hello, world%21" \
-d "notes=How are you today%3F" \
-d "projects=14641" \
-d "workspace=14916"

 

Trello データのエクスポート

まず、Trello のデータをJSONでエクスポートします。(Trello: Menu > More > Print and Export > Export JSON)
JSONから、タスクのタイトル cards.name と説明 cards.desc を取出して、ファイル出力します。
ブラウザ(Chrome)のコンソールで、このようなことをしました。

var trello = (エクスポートされたJSON);

// タスクのタイトルと説明を取出す
var tasks = function() {
  var arr = "";
    for(i=0;i<trello.cards.length;i++){
    arr += "name=" + trello.cards[i].name + ", notes=" + trello.cards[i].desc;
    arr += "\r\n";
  }
  return arr;
}

// ファイルとしてダウンロード
var downloadAsFile = function(fileName, content) {
  var a = document.createElement('a');
  a.download = fileName;
  a.href = 'data:application/octet-stream,'+content;
  a.click();
};

// 実行!
downloadAsFile("tasks.txt", tasks())

以下のような内容のファイルがダウンロードされます。

 

Asana タスク登録

Asana のAPIキーを取得します。(Asana: My Profile Settings > APPS > API Key)
workspaces APIprojects API でワークスペースID、プロジェクトIDを取得します。

# workspace id
curl -u XXXXX: https://app.asana.com/api/1.0/workspaces</pre>
<pre>{"data":[{"id":12345,"name":"dac.co.jp"},{"id":67890,"name":"Personal Projects"}]}

# project id
curl -u XXXXX: https://app.asana.com/api/1.0/workspaces/12345/projects
{"data":[{"id":11111,"name":"sample"},{"id":22222,"name":"sample2"}]}
 

あとは、先ほどのファイルの中身を Asana API 用に整形して、curl で実行します。

curl -u XXXXX: https://app.asana.com/api/1.0/tasks \
-d "name=Task 1-1" \
-d "notes=this is the very first task" \
-d "projects=11111" \
-d "workspace=12345"

移行後の Asana プロジェクトは、最初のキャプチャの通りです。

残念だったのは、Trello のコメントが移行できなかった(エクスポートされたデータに入っていなかった)点です。
Trello と Asana のユーザやステータスも、マッピングすれば合わせて移行できそうでしたが、、今回は見送りました。


DACエンジニア採用情報

  関連記事

gnu
いまさらですが… GNU screen チートシート

最近はローカル環境で開発するようになってきたので、screen コマンドを使う機会も少なくなって来たような気がします。で、使ってないと忘れてしまうので、チートシートを作ってみました。 参照サイト GNU screen [quick_reference] 起動 コマンド 動作 screen -S &l …

13629408
kubernetes の全ノード上で同じコンテナを動かす

今回は、kubernetes上で同一コンテナを全ノードで動かす方法を紹介したいと思います。kubernetes自体の起動方法はここでは割愛します。 はじめに 以前、CoreOSのFleet上でmackerel-agentを動かすということを行いました。今回は、kubernetes上で同じようにクラス …

l_077
fastavroとjqでAVRO形式のファイルからデータを取得しよう

AVRO形式のファイルを取り扱いたい AVROとはApacheプロジェクトのひとつとして開発されているデータ交換形式です。 コンパクトなバイナリで高速なシリアライズ・デシリアライズが行えるため、サーバーログなどに利用されています。 弊社内での一部システムのログデータにも利用されているのですが、専用の …

スクリーンショット 2015-05-29 6.49.13
Vagrantの機能を使って開発環境の効率をあげてみた。

プラットフォーム・ワンのシステムの運用・保守担当のエンジニアです。 保守の仕事に関わると、 ユーザからのお問い合わせだったり、監視アラートによる検知から システムを調査することがあります。 ログとソースコードを見て、不具合を特定し改修する。 すぐできればカッコいいですが、 「本番環境に反映して別のエ …

rails
初心者がRailsで開発 – deviseでユーザー認証設定 -

こんにちは、2年目のYukaです。 開発部所属でありながら実は、、 実際に自分で手を動かして開発する機会がなかなかありませんでした。。 しかしついに、、、 開発初心者がRailsでWebアプリの開発に挑戦します!! 今回のゴールは社内でも使用しているGoogleアカウントで簡単にログインができるよう …

sd
x-callback-urlを使ってみた

x-callback-urlとは? iOSのアプリ間連携の仕様の一つみたいです。簡単に言うと、ディープリンクを行うためにカスタムURLスキームを利用するが、アプリ毎にバラバラな規則でURLスキームを設定するとアプリ間連携をスムーズに行うことができないため、どのような規則でURLスキームを設定するかを …

https---www.pakutaso.com-assets_c-2015-06-GREEN_YO20140125-thumb-1000xauto-16638
クラウド電話API “Twilio”で起こされてみた

どうも、開発部のクラヴマガです。 弊社サービスも最近はAWSの様なクラウド環境でサービスを構築することが多くなりました。 そこで問題になるのが、障害などによる深夜対応・・・。 データセンターに物理サーバをおいていた頃は、データセンターから障害発生時に 電話連絡をもらっていたのですが、クラウド環境では …

Libra
【HTML5】4ツール出力ファイルサイズ比較

こんにちは、近江です。 前回もHTML5のSwiffyについて書かせて頂きましたが、まだまだHTML5について調査しています。 今回はSwiffyを含めた4つのHTML5系ツールで、同じ素材で同じアニメーションを作成した時のファイルサイズを比較したいと思います。 何故ファイルサイズの比較をするかと言 …

logomono-tableau-software-mono
Tableauを利用してMySQLとRedshiftのクロスDBジョインを実現する

はじめに RedshiftやTreasureDataなどのデータマート用のDBにはID単位の解析結果が格納され、ローカルのMySQLにはIDに紐づいた名称マスタが管理されている構成の場合、データマートのクロス集計結果に対してIDに紐づいた名称を付与したいことがあります。 データマート用に用意したDB …

全ファイルを検索
意外と知らないかも? Chrome DevTools の機能10選

みんな使っている Chrome DevTools。 Web開発やトラブルシューティングには必須ですが、便利な機能を知らないで使っている人がいたり、Web で使い方を調べても古い情報だったりすることがあるので、部内で Chrome DevTools についての勉強会を開催しました。 ここでは、その中か …