如何创建GitHub Action:推送分叉仓库主分支后向父仓库发起PR
实现分叉仓库推送到main分支自动向父仓库发PR的GitHub Action配置步骤
1. 生成并配置Personal Access Token(PAT)
- 登录GitHub账号,进入Settings -> Developer settings -> Personal access tokens -> Tokens (classic)
- 生成新token,勾选
repo权限(操作仓库PR的必要权限),复制保存好这个token(仅显示一次) - 打开你的分叉仓库,进入Settings -> Secrets and variables -> Actions -> New repository secret
- 粘贴刚才的token,命名为
PARENT_REPO_TOKEN
2. 创建GitHub Action配置文件
- 在分叉仓库根目录创建
.github/workflows文件夹(无则新建) - 在该文件夹内新建
auto-pr.yml文件,写入以下内容:
name: Auto Create PR to Parent Repo # 触发条件:推送到main分支时执行 on: push: branches: [ main ] jobs: create-pr: runs-on: ubuntu-latest steps: # 检出当前分叉仓库代码 - name: Checkout code uses: actions/checkout@v4 with: fetch-depth: 0 # 拉取全量历史提交,方便对比 # 配置Git用户信息(PR作者信息) - name: Configure Git run: | git config --global user.name "你的GitHub用户名" git config --global user.email "你的GitHub绑定邮箱" # 添加父仓库为远程仓库 - name: Add parent repository as remote run: | git remote add upstream https://github.com/父仓库用户名/父仓库名.git # 拉取父仓库main分支最新代码(可选,提前规避冲突) - name: Fetch upstream main run: | git fetch upstream main # 使用GitHub CLI创建PR - name: Create Pull Request to Parent Repo env: GITHUB_TOKEN: ${{ secrets.PARENT_REPO_TOKEN }} run: | gh pr create \ --repo 父仓库用户名/父仓库名 \ --base main \ --head 你的分叉仓库用户名:main \ --title "Auto PR: 分支更新 $(date +'%Y-%m-%d')" \ --body "自动提交的PR,来自分叉仓库main分支的推送更新"
3. 关键参数替换说明
- 将配置里的
你的GitHub用户名、你的GitHub绑定邮箱、父仓库用户名、父仓库名替换为实际信息 --title和--body可根据需求修改,比如加入本次提交的核心改动描述- 若无需提前拉取父仓库代码,可删除
Fetch upstream main步骤,但建议保留以提前发现冲突
4. 测试验证
- 向分叉仓库main分支推送一次代码,然后进入父仓库的Pull Requests页面,查看是否自动生成PR
- 若失败,进入分叉仓库的Actions页面,查看对应工作流的日志排查问题(常见问题:PAT权限不足、仓库地址写错、用户名拼写错误)
注意事项:
- 确保你的GitHub账号对父仓库有提交PR的权限(公开仓库默认允许,私有仓库需被添加为协作者)
- PAT需妥善保管,一旦泄露立即撤销并重新生成
内容的提问来源于stack exchange,提问作者DavidS
相关产品推荐
相关产品推荐

