Glitchとは
簡単にWebサービスを立ち上げて公開出来て、Web上のエディタで多人数編集も出来る便利サービス。
今回はこのサービスを使って多人数編集もしつつ、GitHubでソースも管理したいと思ったのでメモ。
やったこと
- masterブランチが更新されたらCI経由でGlitchへデプロイ
- Glitch上のコードをダウンロードしてきてローカルリポジトリへ反映
サンプルリポジトリ: https://github.com/sisisin-sandbox/try-glitch
前置き
GlitchはAPIが叩けますが、ドキュメンテーションされてません
使い方は開発者ツールを開いて、GlitchのUIから各種ボタンを押したときに発生してる通信をもとに調べる、といったことをやっているのでいつ壊れてもおかしくないと思います
やったこと解説
masterブランチが更新されたらCI経由でGlitchへデプロイ
ここらへん: https://github.com/sisisin-sandbox/try-glitch/blob/master/.circleci/config.yml#L34
/project/githubImport
というエンドポイントを、authorization
, projectId
, repo
というクエリパラメータと共にPOSTで叩けば repo
のソースコードをそのまま projectId
のプロジェクトへインポートします。そのまんまですね。
.glitchignore
みたいな設定ファイル作ってインポート時に特定のファイルは除外、みたいなことが出来るかどうかはちゃんと調べてません
Glitch上のコードをダウンロードしてきてローカルリポジトリへ反映
ここらへん: https://github.com/sisisin-sandbox/try-glitch/blob/master/dl.sh#L3
/project/download/
というエンドポイントを、 authorization
, projectId
というクエリパラメータと共にGETで叩けばgzファイルが落ちてきます。
これを解凍すると、 app/
ディレクトリ以下にGlitchのプロジェクト内のファイルが全て配置されているので、このファイル群をリポジトリに cp
で移動する、という泥臭い感じのことをやってます。。
実際に運用してないので多分問題出る気はしてますが、まあ一旦実現出来たからいいかなと。