📦 Gitea Pull & Push Workflow
⚡ Schnellstart
mkdir -p ~/scripts && \
curl -L https://gitea.bubuit.net/oib/at2-workstation-scripts/raw/branch/main/gitea_push.sh \
-o ~/scripts/gitea_push.sh && \
chmod +x ~/scripts/gitea_push.sh && \
echo "[INFO] gitea_push.sh ready in ~/scripts"➡️ Lädt die aktuelle Version direkt von Gitea, macht sie ausführbar und gibt eine Info aus.
✅ Ziel
Synchronisation von lokalen Verzeichnissen (z. B. /etc, ~/scripts) mit dem eigenen Gitea-Server (https://gitea.bubuit.net), inkl. Auto-Repo-Erstellung via API.
🛠️ Voraussetzungen
- Gitea-Benutzer mit Zugriff auf gewünschte Repos
.netrcmit Login (für Git-Zugriff).gitea_tokenmit Personal Access Token (für API-Zugriff)gitea_push.shim Pfad (z. B.~/scripts/gitea_push.sh)
# ~/.netrc Beispiel
machine gitea.bubuit.net login oib password "<dein_git_passwort>"
# ~/.gitea_token
<dein_token>🔄 Push-Befehl
cd /etc # oder ~/scripts oder ein beliebiger Ordner
~/scripts/gitea_push.sh workstation➡️ erzeugt z. B. das Repo: at1-workstation-etc.git
🧠 Benennungsschema
<hostname>-<gruppe>-<ordnername>Beispiel:
- Hostname:
at1 - Gruppe (Argument):
server - Ordner:
scripts➡️ ergibt:at1-server-scripts
🐛 Fehlerbehandlung
Falls .git noch nicht existiert:
- wird automatisch initialisiert
- Branch
mainwird gesetzt - erster Commit wird erzeugt
Falls Remote-Repo fehlt:
- wird via API erzeugt (sofern Token gesetzt)
🔍 Debug
~/scripts/gitea_push.sh --debug server
Zeigt zusätzlich:
- genutzte URL/Token
- HTTP-Status
- Commit-Erkennung
🚫 Sicherheitscheck
Verhindert versehentlichen Push aus:
/$HOME
🚀 Features
- Auto-Repo-Create via API (nur bei gesetztem Token)
- Self-updating: erkennt eigene Änderung und pusht sie mit
- Unterstützt
.gitignore - Automatischer Commit mit Zeitstempel
📥 Pull-Skript (optional)
Falls du Repos auch regelmäßig aktualisieren willst, kannst du zusätzlich ein einfaches gitea_pull.sh verwenden:
#!/bin/bash
cd "$1" && git pull --rebase && echo "[INFO] Pulled latest changes into $1"
➡️ Speichern als ~/scripts/gitea_pull.sh, ausführbar machen, z. B.:
chmod +x ~/scripts/gitea_pull.sh
Aufruf:
~/scripts/gitea_pull.sh ~/scripts