chore: push-wiki — авторизация по токену или логину
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+34
-20
@@ -1,7 +1,13 @@
|
||||
#!/bin/bash
|
||||
# Публикация wiki/ в Gitea Wiki
|
||||
# Использование:
|
||||
# export GITEA_TOKEN=токен # или настройте git credentials
|
||||
#
|
||||
# Способ 1 — токен (рекомендуется):
|
||||
# export GITEA_TOKEN=ваш_токен
|
||||
#
|
||||
# Способ 2 — логин и пароль (не передавайте в чат, только в терминале):
|
||||
# export GITEA_USER=логин
|
||||
# export GITEA_PASSWORD=пароль
|
||||
#
|
||||
# bash scripts/push-wiki.sh
|
||||
set -euo pipefail
|
||||
|
||||
@@ -15,31 +21,39 @@ if [ ! -d "$WIKI_SRC" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "${GITEA_TOKEN:-}" ] && { [ -z "${GITEA_USER:-}" ] || [ -z "${GITEA_PASSWORD:-}" ]; }; then
|
||||
echo "Задайте GITEA_TOKEN или пару GITEA_USER + GITEA_PASSWORD"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cleanup() { rm -rf "$TMPDIR"; }
|
||||
trap cleanup EXIT
|
||||
|
||||
HOST_PATH="${GITEA_WIKI_URL#https://}"
|
||||
HOST_PATH="${HOST_PATH#http://}"
|
||||
|
||||
if [ -n "${GITEA_TOKEN:-}" ]; then
|
||||
CLONE_URL="https://${GITEA_TOKEN}@${GITEA_WIKI_URL#https://}"
|
||||
CLONE_URL="https://${GITEA_TOKEN}@${HOST_PATH}"
|
||||
else
|
||||
CLONE_URL="$GITEA_WIKI_URL"
|
||||
# URL-encode не делаем — пароль без спецсимволов; иначе используйте токен
|
||||
CLONE_URL="https://${GITEA_USER}:${GITEA_PASSWORD}@${HOST_PATH}"
|
||||
fi
|
||||
|
||||
if git clone "$CLONE_URL" "$TMPDIR" 2>/dev/null; then
|
||||
:
|
||||
else
|
||||
echo "Клонирование wiki (первый раз)..."
|
||||
mkdir -p "$TMPDIR"
|
||||
cd "$TMPDIR"
|
||||
git init
|
||||
git remote add origin "$CLONE_URL"
|
||||
cd -
|
||||
fi
|
||||
|
||||
rsync -a --delete "${WIKI_SRC}/" "${TMPDIR}/"
|
||||
|
||||
mkdir -p "$TMPDIR"
|
||||
cd "$TMPDIR"
|
||||
|
||||
if git clone "$CLONE_URL" . 2>/dev/null; then
|
||||
echo "Wiki репозиторий склонирован."
|
||||
else
|
||||
echo "Инициализация нового wiki репозитория..."
|
||||
git init -b main
|
||||
git remote add origin "$CLONE_URL"
|
||||
fi
|
||||
|
||||
rsync -a --delete "${WIKI_SRC}/" ./
|
||||
|
||||
git add -A
|
||||
if git diff --staged --quiet; then
|
||||
if git diff --staged --quiet 2>/dev/null; then
|
||||
echo "Wiki без изменений."
|
||||
exit 0
|
||||
fi
|
||||
@@ -47,7 +61,7 @@ fi
|
||||
git config user.email "wiki@shop.local"
|
||||
git config user.name "Shop Wiki"
|
||||
git commit -m "docs: установка Docker и без Docker (v0.10.0)"
|
||||
git branch -M main 2>/dev/null || true
|
||||
git push -u origin main
|
||||
|
||||
echo "Wiki опубликована: https://git.evilfox.cc/test/shop10/wiki"
|
||||
echo ""
|
||||
echo "Готово: https://git.evilfox.cc/test/shop10/wiki"
|
||||
|
||||
Reference in New Issue
Block a user