Gitlab/GitHub: Difference between revisions
Line 7: | Line 7: | ||
=== Creating a new repository === | === Creating a new repository === | ||
To mirror the repository to GitHub | To setup a mirror from an upstream repository to Gitlab: | ||
#Create the new repository on https://gitlab.com/qemu-project | |||
#Click Settings->Repository | |||
#Expand "Mirroring repositories" | |||
#When creating the Pull mirroring rule, choose "Keep divergent refs" | |||
To mirror the repository to GitHub, you will need admin access on Gitlab and GitHub. | |||
#Create the new repository on https://github.com/qemu | #Create the new repository on https://github.com/qemu | ||
#Do not close GitHub, open the source repo https://gitlab.com/qemu-project/projectname | #Do not close GitHub, open the source repo https://gitlab.com/qemu-project/projectname | ||
#Click Setting-> | #Click Setting->Repository | ||
#Expand "Mirroring repositories" | #Expand "Mirroring repositories" | ||
#Set "Git repository URL" to ssh://git@github.com/qemu/projectname.git | #Set "Git repository URL" to ssh://git@github.com/qemu/projectname.git | ||
Line 29: | Line 34: | ||
#On Gitlab click the retry icon | #On Gitlab click the retry icon | ||
To mirror the GitLab repository from qemu.org: | To mirror the GitLab repository from qemu.org, you will need root access on qemu.org: | ||
<pre> | <pre> | ||
REPONAME=repo.git | REPONAME=repo.git |
Revision as of 11:30, 19 January 2021
Gitlab project
Deploying from Gitlab CI/CD to qemu.org
There is a user qemu-deploy on qemu.org for CI/CD jobs that need to deploy to the qemu.org web root. The private key is stored into a file variable SSH_PRIVATE_KEY_FILE of the qemu and qemu-web GitLab repositories. If you need it for any reason (you shouldn't), please ask the owners for the GitLab organization.
Creating a new repository
To setup a mirror from an upstream repository to Gitlab:
- Create the new repository on https://gitlab.com/qemu-project
- Click Settings->Repository
- Expand "Mirroring repositories"
- When creating the Pull mirroring rule, choose "Keep divergent refs"
To mirror the repository to GitHub, you will need admin access on Gitlab and GitHub.
- Create the new repository on https://github.com/qemu
- Do not close GitHub, open the source repo https://gitlab.com/qemu-project/projectname
- Click Setting->Repository
- Expand "Mirroring repositories"
- Set "Git repository URL" to ssh://git@github.com/qemu/projectname.git
- Set "Mirror direction" to Push
- Click "Detect host keys"
- Set "Authentication method" to "SSH public key"
- Click "Mirror repository"
- Click the suitcase icon ("Copy SSH public key")
- Go back to GitHub, do not close Gitlab
- Click Settings (on the top bar with Code, Issues, etc.)
- Click Deploy keys (on the left column)
- Click "Add deploy key"
- Type whatever you want for Title ("gitlab mirroring"), paste into key
- Click "Allow write access"
- Click "Add key"
- On Gitlab click the retry icon
To mirror the GitLab repository from qemu.org, you will need root access on qemu.org:
REPONAME=repo.git cd /srv/git git init --bare $REPONAME mv hooks/post-update.sample hooks/post-update git remote add --mirror=fetch gitlab https://gitlab.com/qemu-project/$REPONAME git config remote.gitlab.mirror true echo $REPONAME >> ~gituser/repos