Tags

📦 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