辞書プロジェクトでは、複数の協力者が異なるツールを使って作業している。一部はGitHubに慣れており、他の人たちはGoogle Driveを使う方が便利だ。そこで、両者を自動的に同期するシステムを構築した。

当初、Zapierを使った簡単な連携を考えていたが、実際には複雑な処理が必要になった。特に、マークダウン形式のログファイルを複数のGoogle Docsに分割して保存し、さらにそれを統合して再びGitHubにプッシュする、という双方向の同期が必要だった。

最終的には、Google Apps Scriptでカスタムスクリプトを作成し、GitHub APIを直接呼び出す方式を採用した。これにより、時間トリガーで自動的にデータが同期されるようになった。

ただし、GitHubの各種APIにはそれぞれ特性がある。コンテンツAPIは更新が速いが、コミットリストAPIには15-60秒の遅延がある。この違いを理解していないと、期待通りの動作にならない。実際、ダッシュボードのバッジ表示がうまく更新されない問題があり、原因究明に時間がかかった。

また、GitHubへのコミット時にはBot用のアカウントを使うことで、誰が更新したかを明確にできる。パーソナルアクセストークン(PAT)の管理には注意が必要だが、適切に設定すれば安全に運用できる。

現在、このシステムは安定稼働しており、作業の継続性が大幅に向上した。複数のプラットフォームをまたいだ協働作業の一つのモデルケースになったのではないかと思う。