summaryrefslogtreecommitdiffstats
path: root/.forgejo/workflows/mirror.yml
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--.forgejo/workflows/mirror.yml27
1 files changed, 27 insertions, 0 deletions
diff --git a/.forgejo/workflows/mirror.yml b/.forgejo/workflows/mirror.yml
new file mode 100644
index 0000000..fd22211
--- /dev/null
+++ b/.forgejo/workflows/mirror.yml
@@ -0,0 +1,27 @@
+name: mirror
+
+on:
+ workflow_dispatch:
+
+ schedule:
+ - cron: '@daily'
+
+jobs:
+ mirror:
+ if: ${{ secrets.MIRROR_TOKEN != '' }}
+ runs-on: docker
+ container:
+ image: 'code.forgejo.org/oci/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/}
+ echo git fetch origin $full_ref:refs/mirror/$ref
+ git fetch origin $full_ref:refs/mirror/$ref
+ done
+ echo git push --force https://${{ vars.MIRROR_DESTINATION }} refs/mirror/*:refs/heads/*
+ git push --force https://any:${{ secrets.MIRROR_TOKEN }}@${{ vars.MIRROR_DESTINATION }} refs/mirror/*:refs/heads/*