The VLBI-cwl repository is mirrored to GitHub to ease community-driven development efforts. This section contains information on how to properly set up repository mirroring. The "standard" way (`Settings | Repository | Mirroring repositories`) doesn't work if you want to use an SSH key pair generated by GitLab. For some stupid reason GitLab uses deprecated SHA-1 for the generated SSH key pair, which is refused by GitHub for security reasons. And there is no way to tell GitLab to generate a different type of SSH key pair. The recommended way, described below, uses a Personal Access Token.
### On the GitHub side
On GitHub, go to your account (click your avatar in the top right) and select `Settings`. In the left-pane of the newly opened page select `Developer settings` (at the bottom), and then `Personal access tokens | Fine-grained tokens`. Or use this direct link: https://github.com/settings/personal-access-tokens
Click on `Generate new token`. This will open a new page. A number of fields are mandatory, like the **Token name**, and **Expiration** (choose wisely). Under **Resource owner**, select `LOFAR-VLBI`. Under **Repository access**, click on **Only select repositories** and then select the desired repository from the pull-down menu `Select repositories`. Under **Permissions**, click on **Repository permissions**, scroll down to **Contents**, click the `Access` button on the right and select **Read and write** access level. Scroll all the way to the bottom of the page and click the green `Generate token` button. Copy the personal access token now, because you won't be able to see it again!
### On the GitLab side
On GitLab, go to your project page (https://git.astron.nl/RD/VLBI-cwl), and then select `Settings | Repository`. Select **Mirroring repostories** and click on the `Add new` button. This will open a **Add new mirror repository** pane. In the **Git repository URL** field, fill in the name of the mirror repository on GitHub (https://github.com/LOFAR-VLBI/VLBI-cwl.git). As **Mirror direction** select `Push`. As **Authentication method** select `Username and Password`. For **Username**, fill in your GitHub username; for **Password**, paste the copied personal access token. Enable `Keep divergent refs`. You probably want to mirror all branches, so there's no need to change anything here. Scroll down a bit until you see a blue `Mirror repository` button, and click on it.
Try if mirroring works by clicking the `Update now` button (the two curved arrows). The page should now show a banner telling you that the remote repository is being updated. This will take a while.