仓库镜像设置
仓库镜像
可以设置一个从 GitHub 到 CODE CHINA 的仓库镜像,具体的可参考 从远程仓库拉取镜像
这种镜像的频率是每天触发一次同步更新;
GitHub Actions
如果需要做到实时的同步更新,建议使用 GitHub 的 Actions 功能,在 GitHub 的 Repo 中设置为向 CODE CHINA 推送代码,具体的方法为:
1. 生成 SSH KEY
通过 SSH 生成一组本地的 KEY,也可以使用本地现有的公钥和私钥
ssh-keygen -t rsa -C "user@email.com"
2. 将公钥添加到 CODE CHINA
进入到 【设置-SSH 密钥】,将生成的公钥添加到账号中
3. 将私钥添加到 GitHub 的 Repo 中
在 GitHub 中找到需要进行实时推送的仓库,进入到【settings-secrets】菜单下,并单击【New repository secret】,创建并添加私钥
4. 取消 CODE CHINA 仓库中默认分支的保护
由于 CODE CHINA 对默认分支设置了保护,导致无法对默认分支强行推送代码,因此需要去 CODE CHINA 对应仓库中取消默认分支的保护,需要跳转到【项目设置-仓库-保护分支】
5. 在仓库中配置 GitHub Actions
在 bash 中进入到仓库的根目录,并通过 bash 命令创建 github actions 文件:
mkdir -p .github/workflows && touch .github/workflows/mirror.yml
编辑 mirror.yml
文件,并添加如下内容:
name: 'GitHub Actions Mirror'
on: [push, delete]
jobs:
mirror_to_CODECHINA:
runs-on: ubuntu-latest
steps:
- name: 'Checkout'
uses: actions/checkout@v1
- name: 'Mirror to CODE CHINA'
uses: pixta-dev/repository-mirroring-action@v1
with:
target_repo_url:
git@codechina.csdn.net:rcore-os/xxxx.git
ssh_private_key:
${{ secrets.CODECHINA }}
在该 mirror 的 yml 中,我们使用了 repository-mirroring-action,定义了一个将代码推送到 CODE CHINA 的 job,其中:
-
target_repo_url
指明目标仓库的 ssh 地址 - ssh_private_key 指明 GitHub 仓库中 Secrets 存放的目标仓库的 ssh 私钥(即第3步中设置的私钥)
配置完成后,向 GitHub 仓库 push 时就会自动推送到 CODE CHINA 中对应的仓库了
更详细的可参考:https://blog.csdn.net/sculpta/article/details/104897320