最近看了innei大佬的文章,跨仓库全自动构建项目并部署到服务器对我很有启发
我使用 vercel 构建 innei 大佬的 Shiro,自从有了闭源版本后,有很大痛点就是仓库不能 fork,导致无法方便同步 commit,只能从本地 fetch 再 push,之前有考虑过使用 GitHub 的 action 自动化操作,但是当时试了试总是失败
后来也是自己手动同步,但是我看了文章之后问了一下 GPT,才明白怎么一回事
流程#
- 检查源码仓库是否有变更
- 定时进行
- 如有变更,进行自动 rebase 和 push 操作
参考配置(GPT 所写)#
name: Sync with upstream repo
on:
schedule:
- cron: '0 */6 * * *' # 6 hous
workflow_dispatch:
jobs:
sync:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v2
with:
repository: 'Sync-Repo'
token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
fetch-depth: 0
- name: Sync with upstream
run: |
git config user.name 'Username'
git config user.email 'Useremail'
git remote add upstream 'https://github.com/username/source-repo'
git fetch upstream
git checkout main
git rebase upstream/main
git push origin main -f
注意要在本仓库添加一个名为PERSONAL_ACCESS_TOKEN的 Secrets
访问权限 Token#
如何获取具有私有仓库访问权限的令牌呢?
首先要去 Setting ->> Developer setting ->> Personal access tokens (classic) ->> Generate new token (classic)
repo一定要选上,workflow 我不确定
之后去到你要同步的仓库里面
添加即可
此文由 Mix Space 同步更新至 xLog
原始链接为 https://www.ssstttar.com/posts/programming/auto-sync-repo