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