name: Mirror main to GitHub (shallow)

on:
  push:
    branches: ["main"]        # nur main triggern
  workflow_dispatch:          # manuell startbar

concurrency:
  group: mirror-main-to-github
  cancel-in-progress: false

jobs:
  mirror:
    runs-on: main
    steps:

      - name: Checkout (shallow, no history)
        uses: actions/checkout@v4
        with:
          fetch-depth: 1       # <— wichtig: keine alte Historie

      - name: Add GitHub remote
        env:
          GH_USER: ${{ secrets.GH_USER }}
          GH_TOKEN: ${{ secrets.GH_TOKEN }}
          GH_OWNER: ${{ secrets.GH_OWNER }}
          GH_REPO: ${{ secrets.GH_REPO }}
        run: |
          set -euo pipefail
          : "${GH_USER?missing}"; : "${GH_TOKEN?missing}"; : "${GH_OWNER?missing}"; : "${GH_REPO?missing}"
          git remote remove mirror 2>/dev/null || true
          git remote add mirror "https://${GH_USER}:${GH_TOKEN}@github.com/${GH_OWNER}/${GH_REPO}.git"

      - name: Push main branch (shallow)
        run: |
          # force ist i. d. R. nicht nötig; nur, wenn du auf GitHub main überschreiben willst
          git push mirror HEAD:refs/heads/main
