You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GitHub Actions push事件中获取PR编号解决镜像报错问题

解决方案

方案1:调整工作流触发事件

github.event.number 仅在 pull_request 系列事件中可用,你可以直接将需要获取PR编号的工作流触发规则改为监听PR合并事件,PR合并时触发的逻辑和原push到目标分支的逻辑完全一致,配置示例如下:

# 工作流触发配置
on:
  pull_request:
    types: [closed]
    branches:
      - main # 替换为你需要监听的目标分支名

jobs:
  push-to-jfrog:
    # 仅当PR被合并时执行任务
    if: github.event.pull_request.merged == true
    runs-on: ubuntu-latest
    steps:
      # 后续步骤直接使用 ${{ github.event.number }} 即可获取PR编号
      ...

方案2:push事件中通过GitHub API查询关联PR编号

如果必须保留push触发的逻辑,可以在工作流中调用GitHub官方CLI查询当前提交关联的PR编号,步骤如下:

  • 首先为工作流默认的 GITHUB_TOKEN 配置PR读权限:
permissions:
  pull-requests: read
  • 新增步骤查询PR编号并存为环境变量:
- name: Get associated PR number
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  run: |
    PR_NUMBER=$(gh pr list --head ${{ github.ref_name }} --state merged --json number --jq '.[0].number')
    echo "PR_NUMBER=$PR_NUMBER" >> $GITHUB_ENV

后续步骤直接使用 ${{ env.PR_NUMBER }} 即可获取到正确的PR编号。

方案3:调整镜像标签规则

如果镜像标签不强制要求绑定PR编号,可直接改用push事件原生支持的字段作为标签,从根源上消除PR编号的获取需求。常用的可选字段包括:

  • 提交SHA:${{ github.sha }}(可取前7位缩短使用)
  • 发布标签:${{ github.ref_name }}(如果是tag push事件可直接用标签名)

你遇到的manifest不存在报错,本质是github.event.number获取为空后拼接出了非法的镜像标签,导致拉取镜像时找不到对应资源,修正标签的取值逻辑后报错会自然解决。

内容的提问来源于stack exchange,提问作者ProjectLuo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 10:06:03