扫码阅读
手机扫码阅读
GitHub Actions 真香系列之自动同步镜像仓库

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

鲁飞
扫码关注公众号
虽然国内开发者访问GitHub可能会遇到速度慢的问题,但这并没有阻止他们使用该平台。为了方便访问受限的开发者,他们通常会在Gitee或其他托管平台上创建镜像仓库。
然而,自动同步这些镜像仓库是一个难题,尽管Gitee提供了一个同步按钮,但它需要手动点击才能工作,这不够方便。为了解决这个问题,可以使用WebHook来自动推送更新到Gitee,但这需要一台服务器来运行。
更简单的解决方案是使用GitHub Actions来自动同步镜像。为了复制而非fork一个仓库,可以通过特殊的克隆命令来完成,然后将其镜像推送到新仓库。使用HTTPS地址时需要登录认证,因此建议使用SSH方式,将SSH私钥添加到GitHub仓库的设置/秘密中,并修改远程地址为SSH地址。
以下是一个GitHub Actions的工作流程示例,用于实现自动同步:
name: Mirror to Gitee Repo
on: [ push, delete, create ]
jobs:
git-mirror:
runs-on: ubuntu-latest
steps:
- name: Configure Private Key
env:
SSH_PRIVATE_KEY: ${{ secrets.GITEE_PRIVATE_KEY }}
run: |
mkdir -p ~/.ssh
echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
echo "StrictHostKeyChecking no" >> ~/.ssh/config
- name: Push Mirror
env:
SOURCE_REPO: 'https://github.com/sy-records/git-deploy.git'
DESTINATION_REPO: 'git@gitee.com:sy-records/git-deploy.git'
run: |
git clone --mirror "$SOURCE_REPO" && cd `basename "$SOURCE_REPO"`
git remote set-url --push origin "$DESTINATION_REPO"
git fetch -p origin
git for-each-ref --format 'delete %(refname)' refs/pull | git update-ref --stdin
git push --mirror
注意,需要修改上述代码中的仓库地址以匹配个人的GitHub和Gitee仓库。GitHub Actions提供了一个简便的方式来维护镜像仓库的自动同步,而不需要手动操作。
想要了解更多内容?

鲁飞
扫码关注公众号
鲁飞的其他文章
怎么分别给公司和个人项目设置 Git User?
从第一天使用 Git 开始,每个人都逃不过这个配置
张嘴吃安利之 PhpStorm 中的 HTTP 客户端
安利一下 PhpStorm 中的 HTTP 客户端
JavaScript 如何实现在搜索中忽略变音符号
变音符号是指添加在字母上面的符号,以更改字母的发音或者以区分拼写相似词语。
Nginx目录浏览并进行美化
Nginx 作为一个高性能的 HTTP 和反向代理 web 服务器,默认不允许列出站点的整个目录,如果需要开启,可以通过配置打开此功能。
GitHub Actions 真香系列之文档自动简繁体转换
GitHub Actions 是 GitHub 推出的 CI\x5cCD 服务,正式版推出后也没有尝试过,最近体验了一下。
加入社区微信群
与行业大咖零距离交流学习


PMO实践白皮书
白皮书上线
白皮书上线