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

如何在GitHub Actions工作流中修改仓库设置的环境变量?

解决GitHub Actions修改仓库环境变量的问题

首先明确:你不能通过${{ vars.LASTRUNID = "My-new-value" }}这种表达式语法修改环境变量,vars上下文在GitHub Actions里是只读的,只能用来读取值,无法直接赋值。

要修改仓库设置里的环境变量,必须通过GitHub API来实现,下面是解决你遇到的权限和404问题的具体步骤:

1. 生成正确权限的Personal Access Token(PAT)

默认的GITHUB_TOKEN没有修改环境变量的权限,哪怕你设置了工作流的读写权限也不行——因为环境变量属于仓库设置资源,不在默认token的权限范围内。你需要生成一个PAT:

  • 登录GitHub,进入「Settings」→「Developer settings」→「Personal access tokens」→「Tokens (classic)」
  • 生成新token,勾选**repo权限**(私有仓库必须选这个,公开仓库可选public_repo,但建议直接选repo确保权限足够)
  • 复制生成的token,添加到你的仓库Secrets里(仓库「Settings」→「Secrets and variables」→「Actions」→「New repository secret」),比如命名为REPO_PAT

2. 修正API调用的端点和参数(解决404问题)

你遇到的404错误大概率是API端点拼写错误或者参数大小写不匹配:

  • GitHub修改环境变量的正确API端点是:PATCH /repos/{owner}/{repo}/environments/{environment_name}/vars/{variable_name}
  • 注意:环境名、变量名都是大小写敏感的,必须和你在仓库设置里创建的完全一致(比如你创建的是Development环境和LastRunId变量,就不能写成小写)
  • 确保owner是仓库所属的用户名/组织名,repo是仓库的名称,这些可以通过GitHub上下文变量自动获取

3. 工作流示例代码

以下是可以直接使用的工作流片段,用来更新Development环境下的LastRunId变量:

jobs:
  update-environment-variable:
    runs-on: ubuntu-latest
    environment: Development # 指定运行环境,避免权限歧义
    steps:
      - name: Update LastRunId variable
        env:
          REPO_OWNER: ${{ github.repository_owner }}
          REPO_NAME: ${{ github.event.repository.name }}
          ENVIRONMENT_NAME: Development
          VARIABLE_NAME: LastRunId
          NEW_VARIABLE_VALUE: "My-new-value"
          PAT_TOKEN: ${{ secrets.REPO_PAT }}
        run: |
          curl -X PATCH \
            -H "Authorization: Bearer $PAT_TOKEN" \
            -H "Accept: application/vnd.github+json" \
            "https://api.github.com/repos/$REPO_OWNER/$REPO_NAME/environments/$ENVIRONMENT_NAME/vars/$VARIABLE_NAME" \
            -d '{"value":"'"$NEW_VARIABLE_VALUE"'"}'

关键注意事项

  • 不要使用token <GITHUB_TOKEN>的授权方式,GitHub API只接受Bearer <TOKEN>的格式
  • 如果使用第三方action(比如你提到的action-pack里的action),需要在调用时传入你自己的PAT作为参数,而不是用默认的GITHUB_TOKEN
  • 确认PAT没有过期,并且仓库Secrets里的token和你生成的一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 16:28:40