fix: deploy hook git pull without writable global config

Use git -c safe.directory instead of git config --global in the
container; set HOME=/tmp for deploy-hook.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Frank Schwenk
2026-07-05 16:26:38 +02:00
parent 864c51e281
commit 3b182a0798
2 changed files with 8 additions and 4 deletions
+7 -4
View File
@@ -3,21 +3,24 @@ set -euo pipefail
REPO_DIR="/repo"
BRANCH="${DEPLOY_BRANCH:-main}"
REMOTE_URL="${DEPLOY_GIT_URL:-https://gitea.schwenk.online/froxxxy/playground.git}"
if [ ! -d "${REPO_DIR}/.git" ]; then
echo "Error: ${REPO_DIR} is not a git repository"
exit 1
fi
git config --global --add safe.directory "${REPO_DIR}"
cd "${REPO_DIR}"
# Container has no writable $HOME — avoid git config --global (//.gitconfig)
git_cmd() {
git -c "safe.directory=${REPO_DIR}" "$@"
}
if [ -n "${DEPLOY_GIT_TOKEN:-}" ]; then
auth_url="https://oauth2:${DEPLOY_GIT_TOKEN}@gitea.schwenk.online/froxxxy/playground.git"
git pull "${auth_url}" "${BRANCH}"
git_cmd pull "${auth_url}" "${BRANCH}"
else
git pull origin "${BRANCH}"
git_cmd pull origin "${BRANCH}"
fi
echo "Deploy pull completed for ${BRANCH}"