RetroShare/.github/workflows/mirror-to-gitlab.yml
Gioacchino Mazzurco 086184ad21
Fix GitLab mirror failing on GitHub PR refs
The mirror workflow cloned with --mirror and pushed all refs, including
GitHub's refs/pull/* and upstream/pr/*, which GitLab rejects as hidden
refs ("deny updating a hidden ref" on upstream/pr/3213), failing the
whole push. Clone --bare and push only refs/heads/* and refs/tags/*
with --prune, keeping deletion sync while never touching PR refs.
2026-07-23 18:10:46 +02:00

31 lines
775 B
YAML

name: Mirror to GitLab
on:
push:
branches:
- '**'
tags:
- '**'
workflow_dispatch:
jobs:
mirror:
runs-on: ubuntu-latest
steps:
- name: Install GitLab deploy key
uses: webfactory/ssh-agent@v0.9.0
with:
ssh-private-key: ${{ secrets.RETROSHARE_GITLAB_MIRROR_SSH_KEY }}
- name: Trust GitLab host key
run: |
ssh-keyscan gitlab.com >> ~/.ssh/known_hosts
- name: Mirror repository to GitLab
run: |
git clone --bare "https://github.com/${GITHUB_REPOSITORY}.git" repo.git
cd repo.git
git remote set-url --push origin git@gitlab.com:RetroShare/RetroShare.git
git push --prune origin 'refs/heads/*:refs/heads/*' 'refs/tags/*:refs/tags/*'