📦 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
.netrc
mit Login (für Git-Zugriff).gitea_token
mit Personal Access Token (für API-Zugriff)gitea_push.sh
im 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
main
wird 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