こんにちは @mallowlabs です。 最近は [ALEXANDROS] の「Sleepless in Brooklyn」というアルバムを聴いています。 「明日、また」という曲がお気に入りです。
Misoca では情報共有ツールとして esa.io をヘビーに使っています。 今回、親会社である弥生の一部のメンバーにも使ってもらい、より情報共有を加速することにしました。 しかし、現在の esa には採用プロジェクトに関する情報など、そのまま共有することができない情報も含まれているため、思い切って Misoca + 弥生のメンバーが見られる esa のチームを作り、そこに共有できる情報をすべて移行することにしました。
ちなみに esa は 複数チームの決済連結 という機能があり、複数チームでもお得に使うことができます。
移行をどうするか
「移行することにしました」と言っても、考えることはたくさんあります。
- 移行対象のページが大量にあり、手動ではとても移行できない。
- 元の esa チームのページ作成者の情報は引き継ぎたい。
- コメントも引き継ぎたい。
- 移行に伴うリンク切れは最小限にしたい。
そこで esa のチームの移行ツールとして wataridori を開発しました。
wataridori には以下の機能があります。
- コピー元のチームの特定のカテゴリ以下のページとコメントをすべて、コピー先のチームにコピーする
- この時に作ったページの ID の対応表を YAML に出力する
- 出力しておいた YAML を使って、コピー先の記事のリンクを修正する
リンクの修正部分は テストを書いて 真面目にやったので、なかなか賢くできています。
移行当日
このツールのおかげで、コピー先のチームにページを短期間で移行することができました。 コピー元のチームの記事は、手動でカテゴリごとアーカイブしました。
移行当日には esa の中の人にお願いして API rate limit を一時的に増やしてもらいました。 esa のサポートにはいつも親切にしていただいているので、この場を借りて感謝の気持ちを伝えさせていただきます。 いつもありがとうございます!
移行後
このツールのおかげで特に混乱もなく…と言いたい所ですが、いくつかの問題が起こりました。
コピー元の esa 記事を参照している外部のツールは手動で書き換える必要がある
当たり前といえば当たり前なのですが、リンクの修正は esa のページのみが対象なので、他のツールに書かれた URL は書き換わりません。 これは見つける度に URL を修正しています。
古い記事を開いて編集してしまった
移行済みの古い記事には一括で DEPRECATED!!!
と追記して、わかりやすくするスクリプトをあとから書きました。
favicon だけではどちらのチームか区別できない
これは他のメンバーにはあまり賛同を得られなかったのですが、favicon だけでどちらのチームを開いているかわからずに困ってしまいました。
そこで favicon に背景色をつける Chrome Extension をでっちあげました。
可愛い感じにできて、個人的には気に入っています。
まとめ
いくつか細かい問題はあったものの、無事 esa のチームを増やすことができました。 また、移行に使ったツールも OSS として公開することができました。 使っているツールで課題があった時に、ちょっとしたツールを作って問題を解決し、それを OSS にする文化はとても良いなと感じています。
採用
Misoca ではちょっとした OSS を作って、開発環境をより良くしていくエンジニアを募集しています!