forgejo/.forgejo/workflows/mirror.yml
Earl Warren ba3df01314
[CI] push forgejo branches to the specified destination
(cherry picked from commit 22abd100cb)
(cherry picked from commit 4e2c30cb5b)
(cherry picked from commit 1ddc08747c)
2024-01-22 12:18:31 +00:00

26 lines
782 B
YAML

name: mirror
on:
push:
branches:
- 'forgejo'
- 'v*/forgejo'
jobs:
mirror:
if: ${{ secrets.MIRROR_TOKEN != '' }}
runs-on: docker
container:
image: 'docker.io/node:20-bookworm'
steps:
- name: git push {v*/,}forgejo
run: |
git init --bare .
git remote add origin ${{ env.GITHUB_SERVER_URL }}/${{ env.GITHUB_REPOSITORY }}
git fetch origin refs/heads/forgejo:refs/mirror/forgejo
git ls-remote origin refs/heads/v*/forgejo | while read sha full_ref ; do
ref=${full_ref#refs/heads/}
git fetch origin $full_ref:refs/mirror/$ref
done
git push --force https://any:${{ secrets.MIRROR_TOKEN }}@${{ vars.MIRROR_DESTINATION }} refs/mirror/*:refs/heads/*