このサイトもこれに近い思想で作っている(ここ数ヶ月完全にサボっていたが)。

crontab を用いて自動で push するよう設定すれば管理が楽。

auto-commit.sh
#!/bin/bash
 
REPO_PATH="/Users/username/DigitalGarden"
TARGET_PATH="./content/notes"
DATE=$(date '+%Y-%m-%d')
 
echo "=== Auto commit script started at $DATETIME ==="
 
cd "$REPO_PATH" || exit 1
 
# format
npm run format
 
# content/notes の更新のみを毎日検知
if [[ -n $(git status -s "$TARGET_PATH") ]]; then
    echo "Changes detected in $TARGET_PATH"
    git add "$TARGET_PATH"
    git commit -m "Daily auto commit: $DATE"
    git push origin main
    echo "Successfully pushed changes to remote at $DATE"
else
    echo "No changes detected in $TARGET_PATH at $DATE"
fi
# ターミナル上で crontab を開く。
crontab -e
 
# 毎日午前3時に実行するために、以下のように書き込んで保存する。睡眠中など編集するはずがない時間を設定する。
55 23 * * * /Users/username/digital_garden/auto-commit.sh >> /Users/username/digital_garden/logs/auto-commit.log