本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
用于从当前分支创建 Pull Request 的 GitHub Action。
可与另一个 Action devops-infra/action-commit-push 结合使用,实现提交推送后的自动 Pull Request 流程。
source_branch 指定的分支向 target_branch 创建 Pull Requesttitle 和 body 参数自定义 Pull Request 的标题和正文assignee(负责人)、reviewer(审阅者)、一个或多个 label(标签)、milestone(里程碑),或标记为 draft(草稿)old_string 为 new_string,或使用提交信息主题替换 old_stringget_diff 设为 true 时,会在 Pull Request 模板中用提交列表替换 <!-- Diff commits -->,用修改文件列表替换 <!-- Diff files -->allow_no_diff 设为 true 时,即使分支间无差异(如仅含合并提交),仍会继续执行并创建 Pull Requestamd64 和 arm64 架构适用于需要自动化 Pull Request 创建的 CI/CD 流程,例如:
devops-infra/action-commit-push),实现代码提交后自动触发 Pull Request
- name: 运行 Action uses: devops-infra/action-pull-request@v1.0.0 with: github_token: ${{ secrets.GITHUB_TOKEN }} source_branch: development target_branch: master title: 我的 Pull Request template: .github/PULL_REQUEST_TEMPLATE.md body: "**自动化 Pull Request**" reviewer: octocat assignee: octocat label: enhancement milestone: 我的里程碑 draft: true old_string: "<!-- 在此添加描述 -->" new_string: "**自动化 Pull Request**" get_diff: true ignore_users: "dependabot" allow_no_diff: false
| 输入变量 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|
github_token | 是 | "" | GitHub 令牌,通常使用 ${{ secrets.GITHUB_TOKEN }} |
source_branch | 否 | 当前分支 | 源分支名称 |
target_branch | 否 | master | 目标分支名称,若使用 main 作为主分支需修改此值 |
title | 否 | 首个提交的主题 | Pull Request 标题 |
template | 否 | "" | 模板文件路径(如 .github/PULL_REQUEST_TEMPLATE.md) |
body | 否 | 提交列表 | Pull Request 正文 |
reviewer | 否 | "" | 审阅者用户名 |
assignee | 否 | "" | 负责人用户名(多个用逗号分隔) |
label | 否 | "" | 标签(多个用逗号分隔) |
milestone | 否 | "" | 里程碑名称 |
draft | 否 | false | 是否标记为草稿 |
old_string | 否 | "" | 模板中需替换的旧字符串 |
new_string | 否 | "" | 替换后的新字符串;若仅指定 old_string 未指定此值,则自动收集提交主题作为替换内容 |
get_diff | 否 | false | 是否在模板中替换预定义注释块以显示分支差异(详见下方“get_diff 工作原理”) |
ignore_users | 否 | "dependabot" | 忽略的用户列表(多个用逗号分隔) |
allow_no_diff | 否 | false | 是否允许在分支无差异(如仅含合并提交)时继续创建 Pull Request |
| 输出变量 | 描述 |
|---|---|
url | Pull Request 的 URL |
pr_number | GitHub Pull Request 编号 |
在旧版本中,模板中的 <!-- Diff commits --> 和 <!-- Diff files --> 注释会被替换为提交列表和修改文件列表。当前版本则要求使用以下三种注释块(位于 START 和 END 注释之间的内容会被替换),尤其适用于 Pull Request 更新时动态刷新差异信息:
<!-- Diff summary - START --> 和 <!-- Diff summary - END -->:显示 Pull Request 中每个提交的第一行(摘要)<!-- Diff commits - START --> 和 <!-- Diff commits - END -->:显示提交图谱,包含作者信息和时间<!-- Diff files - START --> 和 <!-- Diff files - END -->:显示修改文件列表若模板中使用旧版注释字符串,创建 Pull Request 时会自动将其调整为新版格式(仅修改 PR 正文,不修改模板文件)。
注意:使用 get_diff 时,需确保 actions/checkout Action 的 fetch-depth 设为 0(而非默认值),以获取完整的提交历史,示例如下:
非主分支推送时自动创建指向主分支的 Pull Request:
name: 运行 Action on: push: branches-ignore: master # 主分支推送时不触发 jobs: action-pull-request: runs-on: ubuntu-latest steps: - name: 检出代码 uses: actions/checkout@v5 - name: 创建 Pull Request uses: devops-infra/action-pull-request@v1.0.0 with: github_token: ${{ secrets.GITHUB_TOKEN }} title: 自动化 Pull Request
使用首个提交的主题作为标题和正文部分内容,根据分支名添加标签,并在模板中包含差异信息:
name: 运行 Action on: push: branches-ignore: master # 主分支推送时不触发 jobs: action-pull-request: runs-on: ubuntu-latest steps: - name: 检出代码(完整历史) uses: actions/checkout@v5 with: fetch-depth: 0 # 必须设为 0 以获取完整提交历史,确保 get_diff 正常工作 - name: 运行 Action if: startsWith(github.ref, 'refs/heads/feature') # 仅 feature 分支触发 uses: devops-infra/action-pull-request@v1.0.0 with: github_token: ${{ secrets.GITHUB_TOKEN }} title: ${{ github.event.commits[0].message }} # 使用首个提交的主题作为标题 assignee: ${{ github.actor }} # 负责人设为当前提交者 label: enhancement,automated # 添加标签 template: .github/PULL_REQUEST_TEMPLATE.md # 使用自定义模板 old_string: "<!-- 在此添加描述 -->" # 替换模板中的占位符 new_string: ${{ github.event.commits[0].message }} # 用提交主题替换占位符 get_diff: true # 启用差异信息展示
使用特定版本的 Action(推荐固定版本以确保稳定性):
name: 运行 Action on: push: branches-ignore: master jobs: action-pull-request: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - uses: devops-infra/action-pull-request@v1.0.0 # 固定补丁版本 id: 固定补丁版本 - uses: devops-infra/action-pull-request@v1.0 # 固定次要版本 id: 固定次要版本 - uses: devops-infra/action-pull-request@v1 # 固定主要版本 id: 固定主要版本
欢迎贡献!详见 CONTRIBUTING。
本项目采用 MIT 许可证 - 详见 LICENSE 文件。
如有问题或需要帮助,请:

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429