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

使用GitHub Actions CLI设置仓库变量RUN_ID遇403权限错误求助

解决GitHub Actions设置仓库变量403权限问题

问题原因

你遇到的HTTP 403: Must have admin rights to Repository错误,核心是默认GITHUB_TOKEN没有修改仓库变量的权限,同时Workflow配置存在几处细节问题需要调整。

具体修复步骤

1. 创建带仓库管理权限的个人访问令牌(PAT)

默认GITHUB_TOKEN即便设置permissions: write-all,也无法修改仓库变量。需生成专用PAT:

  • 进入GitHub个人设置→开发者设置→个人访问令牌→生成新令牌
  • 勾选repo全权限(确保拥有仓库变量修改权限)
  • 将令牌添加到仓库Secrets中,命名为REPO_ADMIN_PAT

2. 修正Workflow配置

以下是调整后的完整代码,关键修改点已标注:

name: test3
on:
    workflow_dispatch:
      inputs:
        runid:
           required: false
           type: number

jobs: 
    Test:
        permissions:
          contents: write # 保留必要权限即可,无需write-all
        runs-on: ubuntu-latest
        environment: TWIST_DEV      
    
        steps:
            - uses: actions/checkout@v3    
                
            - name: Display the input value
              run: |
                echo "${{ inputs.runid }}" # 用inputs引用workflow_dispatch输入参数,而非env

            - name: Update environment file with 'run_id' value
              run: |
                echo "${{ github.run_id }}" > file
                cat file

            - name: Change mode to file
              run: chmod 777 file

            - name: Inputs runid (workflow call)
              if: ${{ inputs.runid != '' }}
              env:
                GH_TOKEN: ${{ secrets.REPO_ADMIN_PAT }} # 用自定义PAT替代默认GITHUB_TOKEN
              run: gh variable set RUN_ID < file

            - name: Set runid variable 
              run: echo "${{ vars.RUN_ID }}" # 变量名与设置的RUN_ID保持大小写一致

3. 关键调整说明

  • 权限替换:默认GITHUB_TOKEN无仓库变量修改权限,必须使用带repo权限的PAT
  • 参数引用修正:workflow_dispatch的输入参数需通过inputs.runid获取,而非env.runid
  • 变量大小写匹配:GitHub变量大小写敏感,读取时需与设置的RUN_ID完全对应

4. 精简优化建议

可省去文件操作步骤,直接通过管道传递值:

echo "${{ github.run_id }}" | gh variable set RUN_ID

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 05:05:05