利用Github Actions自动同步Fork
虽然Github自带一个Sync Fork的按钮,但是每次都自己点总是麻烦的,所以有人搞了个Github Action来做这件事,https://github.com/tgymnich/fork-sync
创建workflow
创建新的workflow后在sync.yml
输入里面的内容:
官方:
1 | name: Sync Fork |
注释:
1 | name: Sync Fork |
最终sync.yml
1 | name: Sync Fork |
* */24 * * *
改成* */48 * * *
每两天运行一次
PS:ChatGPT有时给出的答案可能是错误的,需要验证:crontab guru
创建github访问token
参考:管理个人访问令牌
1.在任何页面的右上角,单击个人资料照片,然后单击“设置”。
2.在左侧边栏中,单击“ 开发人员设置”。
3.请在左侧边栏的“ Personal access token”下,单击“细粒度令牌” 。
4.单击“生成新令牌”。
5.在“令牌名称”下,输入令牌的名称。
6.在“过期时间”下,选择令牌的过期时间(永不过期)。
7.然后权限要开启repo和workflow的权限
8.创建完成后复制token内容
添加环境变量secret
在settings/secrets(Secrets and variables)/actions
里把Github的Token设置上,比如workflow写的是secrets.PERSONAL_TOKEN,所以添加的时候Name填写PERSONAL_TOKEN,Secret里填写上一步创建Token内容。
如果部署完成之后,运行显示错误是:
repo-sync
Failed to create or merge pull request: HttpError: Validation Failed: {“resource”:”PullRequest”,”code”:”custom”,”message”:”No commits between knight000:master and ngosang:master”}
就证明初步成功了,因为你部署了workflow所以比原仓库新,等原仓库更新后点Re-run jobs
就可以测试是否正确部署了。
自动提交修改到Gitee(未测试)
以下action文件来自https://juejin.cn/post/6894928345830522887
把GITEE_PRIVATE_KEY、GITEE_TOKEN、GITEE_USER都添加到secrets里,然后Gitee内从URL导入仓库,创建同名仓库即可同步。
1 | # 通过 Github actions, 在 Github 仓库的每一次 commit 后自动同步到 Gitee 上 |
因为有if: env.dst_key && env.dst_token && env.gitee_user
这一句所以信息不足的情况下是会跳过执行,显示执行成功而不是显示错误,请注意。