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


 

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

Trello と Asana

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

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

さて移行作業

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

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

[shell]# 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"
[/shell]

 

Trello データのエクスポート

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

[js]
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())
[/js]

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

 

Asana タスク登録

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

[shell]
# 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"}]}
 [/shell]

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

[shell]
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"
[/shell]

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

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


DACエンジニア採用情報

  関連記事

Burpの使い方!

こんにちは、第二ソリューション開発部の谷口です。 受託開発の部署で開発を担当してます。 APIを扱う機会が多く、今回は通信内容を確認するためのローカルプロキシツール「Burp」について書かせて頂きます。 Burpとは Webアプリケーション開発時の検証において、Webサーバとブラウザ間の通信内容を確 …

最強のSQLクライアント(GUIツール)「TeamSQL」を使ってみた!

はじめに みなさんこんにちは、プロダクト開発本部の亀梨です。 普段はXmediaOneというメディアプランニング・広告運用管理・トラッキング・マーケティング分析を行う 統合プラットフォームの開発を担当しています。 エンジニアの皆さん、SQLクライアント(GUIツール)って何使ってます? わたくしはこ …

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

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

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

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

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

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

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

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

no image
AWSにRailsアプリをデプロイする(公開編)

次にデプロイするため“aws rails デプロイ”でググってみるとunicorn、nginxというキーワードがでてくるので とりあえずこれを設定していきます。   アプリのsecret_key_baseの設定 [crayon-5bf2c9b432d66451196 …

no image
AWSにRailsアプリをデプロイする(準備編)

今回は、せっかくRailsで開発したアプリをAWS上に公開してみたいので その構築方法をまとめていきたいと思います。 (前回の記事:初心者がRailsで開発 – deviseでユーザー認証設定 ) AWSの設定はすでに社内で使用できるようになっていたので割愛します。 ★やりたいこと Gitlabでコ …

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

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

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

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