サイト用ファイルをGitHubにpushできるツールになった。
ブツ
インストール&実行
NAME='Electron.MyLog.20220903102841'
git clone https://github.com/ytyaru/$NAME
cd $NAME
npm install
npm start
準備
- GitHubアカウントを作成する
repoスコープ権限をもったアクセストークンを作成する- インストール&実行してアプリ終了する
db/setting.jsonファイルが自動作成される
db/setting.jsonに以下をセットしファイル保存するusername:任意のGitHubユーザ名email:任意のGitHubメールアドレスtoken:repoスコープ権限を持ったトークンrepo:任意リポジトリ名(mytestrepo等)address:任意モナコイン用アドレス(MEHCqJbgiNERCH3bRAtNSSD9uxPViEX1nu等)
dst/mytestrepo/.gitが存在しないことを確認する(あればdstごと削除する)- GitHub上に同名リモートリポジトリが存在しないことを確認する(あれば削除する)
実行
npm startで起動またはアプリでCtrl+Shift+Rキーを押す(リロードする)- テキストエリアに任意のテキストを入力する
つぶやくボタンを押すrepo/リポジトリ名ディレクトリが作成され、その配下に.gitディレクトリが作成される- createRepo実行後、リモートリポジトリが作成される
GitHub Pages デプロイ
アップロードされたファイルからサイトを作成する。
- アップロードしたユーザのリポジトリページにアクセスする(
https://github.com/ユーザ名/リポジトリ名) - 設定ページにアクセスする(
https://github.com/ユーザ名/リポジトリ名/settings) Pagesページにアクセスする(https://github.com/ユーザ名/リポジトリ名/settings/pages)SourceのコンボボックスがDeploy from a branchになっていることを確認するBranchをmasterにし、ディレクトリを/(root)にし、Saveボタンを押す- F5キーでリロードし、そのページに
https://ytyaru.github.io/リポジトリ名/のリンクが表示されるまでくりかえす(数分かかる) https://ytyaru.github.io/リポジトリ名/のリンクを参照する(デプロイ完了してないと404エラー)
すべて完了したリポジトリとそのサイトが以下。
投げモナボタンも表示されてる。よしよし。

今回やったこと
git.js
- git pushに必要なデータの
- 存在確認(非null判定のみ(GitHubのほうに存在するか判定する方法は不明))
- バリデーション(やらない。リポジトリ名の仕様などが明記されていない等の理由。問題あればGitHubAPIリクエスト時にHTTP4xxエラーになると思われる)
- git config --localで値セットするために
cdした #postボタン押下時にgit pushする
git config --globalでやらないとエラーになると思っていたが、その理由は.gitのあるルートディレクトリにcdしていなかったせいだと気づいたので修正した。
バリデーションについてはちゃんとやろうとするとGitHubの仕様に合致するか確認せねばならない。けれどそれを公式により保障された手段がない。たとえばリポジトリ名の妥当性チェックAPIといったものはない。せいぜいcreateRepoのとき4xxエラーとして返されるだけ。
やってない
例外時のテストをやりたいが未実施。そもそもネットワークAPIであるelectron-fetchが例外時にどう動くのかも把握していない。もしエンドユーザが不正なリポジトリ名をセットしたらどうなるのか。それを確認し、ユーザに問題箇所と原因と修正方法を示すようにしたい。
画面UIをワークフローにあわせた
つぶやくボタンでgit init,git pushする- setting.jsonファイルの状態に応じてエラーダイアログを表示する
削除ボタンでgit pushする
SQLite3まわりのバグ修正
window.myApi.insert呼び出しのawait忘れwindow.myApi.exportDb呼び出しされずファイル保存されてなかったinsert,deleteで呼び出す
const r = await window.myApi.insert({content:content, created:now});
ファイル保存されていなかったのは致命的だった。
HTML出力のバグ修正
site-maker.jsの#mpurseSendButtonCode()で以下修正。
code = code.replace(/\'\.\/src\/asset\/image\/monacoin\/\'/g, `'./asset/image/monacoin/'`)
投げモナボタンが表示されなかったバグ修正。
所感
やっとつぶやきサイトのファイルをGitHubにpushできるツールになった。長かった……。
ここまでは最低限必要な技術の調査・動作確認でしかない。
ここからはちゃんとしたアプリにするための作業になるかな? コードの見直し、リファクタリング、テスト、ドキュメント整備など。
本当は機能追加したいんだけど、そのための技術調査から必要で大変そう。気分次第で適当にやろうっと。