【小ネタ】タスク管理ツール移行: 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エンジニア採用情報

  関連記事

監視
Charlesを使ってスマホアプリ(iOS)のUAを調べてみた

はじめに ここ最近のスマホアプリには、Webブラウザの機能を実装したものが少なくありません。 (“スマホアプリ内で立ち上がるブラウザ「アプリ内ブラウザ」”の機能は「WebView」というコンポーネントを用いて実装されています。) 昨今のWebサイト、サービス運営に於いて、「通 …

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

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

index
Android 非同期処理についてまとめてみた

Androidには、UIに影響を与えないよういくつか非同期処理が用意されています。 今回は非同期処理の代表的な ・Service ・IntentService ・HandlerThread について違いを踏まえながらまとめます! 非同期処理について(http://codezine.jp/articl …

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

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

image2
自社サービスのDocker化(前編)

こんにちは。 インフラ開発部の上田です。 普段は自社開発システムのインフラ担当として、日々頑張って仕事をしています。 今回は、近年話題になっているDockerについて、取り上げてみようと思います! なぜDockerなのか・・・? そもそもDockerとは何か・・・?   当社では様々なサー …

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

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

dockerlogo
自社サービスのDocker化(後編)

こんにちは。 インフラ開発部の上田です。 前回、前編としてDockerについて書き、早半年も経ちました。 前編はこちらです 今回は後編として、以下について書いてみたいと思います。 ■複数プロセス起動 前編で書いた通り、通常のOS起動時とは異なり、コンテナ上で個別にプロセスを起動する必要があります。 …

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

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

ie10
modern.IEを使ってMac上でWindows10を動かす

Microsoftが提供している modern.IE というプロジェクトがある。そこで提供されている仮想環境を使って、MacにWindows10をインストールしてみる。ちなみに、このプロジェクトの本来の目的はInternet Explorerの表示確認やデバッグの支援。 VirtualBoxの準備 …

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

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