name: Mirror to GitHub

on:
  push:
    branches: ['**']
    tags: ['**']

jobs:
  mirror:
    runs-on: [self-hosted, hestia]
    steps:
      - name: Mirror to GitHub
        run: |
          set -euo pipefail
          git clone --mirror "https://git.breadway.dev/${GITHUB_REPOSITORY}.git" repo.git
          cd repo.git
          # Mirror only branches and tags (not refs/pull/*, which GitHub rejects);
          # --prune deletes GitHub refs that no longer exist on Forgejo.
          git push --prune \
            "https://x-access-token:${{ secrets.MIRROR_TOKEN }}@github.com/Breadway/bos.git" \
            '+refs/heads/*:refs/heads/*' '+refs/tags/*:refs/tags/*'
