esa のチームを増やした話

こんにちは @mallowlabs です。 最近は [ALEXANDROS] の「Sleepless in Brooklyn」というアルバムを聴いています。 「明日、また」という曲がお気に入りです。

Misoca では情報共有ツールとして esa.io をヘビーに使っています。 今回、親会社である弥生の一部のメンバーにも使ってもらい、より情報共有を加速することにしました。 しかし、現在の esa には採用プロジェクトに関する情報など、そのまま共有することができない情報も含まれているため、思い切って Misoca + 弥生のメンバーが見られる esa のチームを作り、そこに共有できる情報をすべて移行することにしました。

ちなみに esa は 複数チームの決済連結 という機能があり、複数チームでもお得に使うことができます。

移行をどうするか

「移行することにしました」と言っても、考えることはたくさんあります。

  • 移行対象のページが大量にあり、手動ではとても移行できない。
  • 元の esa チームのページ作成者の情報は引き継ぎたい。
  • コメントも引き継ぎたい。
  • 移行に伴うリンク切れは最小限にしたい。

そこで esa のチームの移行ツールとして wataridori を開発しました。

github.com

wataridori には以下の機能があります。

  • コピー元のチームの特定のカテゴリ以下のページとコメントをすべて、コピー先のチームにコピーする
  • この時に作ったページの ID の対応表を YAML に出力する
  • 出力しておいた YAML を使って、コピー先の記事のリンクを修正する

リンクの修正部分は テストを書いて 真面目にやったので、なかなか賢くできています。

移行当日

このツールのおかげで、コピー先のチームにページを短期間で移行することができました。 コピー元のチームの記事は、手動でカテゴリごとアーカイブしました。

移行当日には esa の中の人にお願いして API rate limit を一時的に増やしてもらいました。 esa のサポートにはいつも親切にしていただいているので、この場を借りて感謝の気持ちを伝えさせていただきます。 いつもありがとうございます!

移行後

このツールのおかげで特に混乱もなく…と言いたい所ですが、いくつかの問題が起こりました。

コピー元の esa 記事を参照している外部のツールは手動で書き換える必要がある

当たり前といえば当たり前なのですが、リンクの修正は esa のページのみが対象なので、他のツールに書かれた URL は書き換わりません。 これは見つける度に URL を修正しています。

古い記事を開いて編集してしまった

移行済みの古い記事には一括で DEPRECATED!!! と追記して、わかりやすくするスクリプトをあとから書きました。

favicon だけではどちらのチームか区別できない

これは他のメンバーにはあまり賛同を得られなかったのですが、favicon だけでどちらのチームを開いているかわからずに困ってしまいました。

そこで favicon に背景色をつける Chrome Extension をでっちあげました。

github.com

f:id:mallowlabs:20181218123711p:plain
before

f:id:mallowlabs:20181218123725p:plain
after

可愛い感じにできて、個人的には気に入っています。

まとめ

いくつか細かい問題はあったものの、無事 esa のチームを増やすことができました。 また、移行に使ったツールも OSS として公開することができました。 使っているツールで課題があった時に、ちょっとしたツールを作って問題を解決し、それを OSS にする文化はとても良いなと感じています。

採用

Misoca ではちょっとした OSS を作って、開発環境をより良くしていくエンジニアを募集しています!

www.wantedly.com