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

本地用act运行GitHub Pages部署时遇ACTIONS_ID_TOKEN_REQUEST_URL缺失错误

解决act本地运行时无法获取ACTIONS_ID_TOKEN_REQUEST_URL的问题

问题原因

act作为本地GitHub Actions模拟器,默认不会模拟GitHub官方的OIDC令牌服务。线上环境自动生成的ACTIONS_ID_TOKEN_REQUEST_URL、ACTIONS_ID_TOKEN_REQUEST_TOKEN等核心环境变量,在本地act环境中不会自动生成——哪怕你已经配置了id-token: write权限和GITHUB_TOKEN,也无法触发这些变量的创建。

解决方案

1. 手动注入OIDC相关环境变量

从GitHub线上Workflow的运行日志中提取真实的OIDC变量值,添加到本地环境或act命令中:

  • 先在GitHub线上运行一次你的deploy workflow,在任意步骤中加入run: env | grep ACTIONS_ID_TOKEN命令,获取ACTIONS_ID_TOKEN_REQUEST_URL和ACTIONS_ID_TOKEN_REQUEST_TOKEN的具体值
  • 将这两个变量添加到你的.env文件,或者直接在act命令中通过--env参数传入:
    act -j build-and-deploy -W .github/workflows/deploy_frontend.yml --secret-file /home/noams/src/personal_website/frontend/.secrets_frontend --env-file /home/noams/src/personal_website/frontend/.env --env ACTIONS_ID_TOKEN_REQUEST_URL="你的线上URL值" --env ACTIONS_ID_TOKEN_REQUEST_TOKEN="你的线上TOKEN值" --artifact-server-path /tmp/artifacts
    

注意:这类变量有效期有限,过期后需要重新从线上日志获取。

2. 使用act的OIDC模拟插件(适合测试场景)

如果不需要真实令牌,仅做功能测试,可借助社区维护的本地OIDC模拟服务:

  • 启动本地OIDC模拟容器:
    docker run -p 8080:8080 ghcr.io/nektos/act-oidc-provider:latest
    
  • 在act命令中添加指向该服务的参数:
    act -j build-and-deploy -W .github/workflows/deploy_frontend.yml --secret-file /home/noams/src/personal_website/frontend/.secrets_frontend --env-file /home/noams/src/personal_website/frontend/.env --oidc-provider http://localhost:8080 --artifact-server-path /tmp/artifacts
    

该方式会生成模拟的OIDC令牌,满足本地流程测试需求。

3. 升级act到最新版本

旧版本act对id-token: write权限的支持存在缺陷,执行以下命令更新:

# 查看当前版本
act --version
# Homebrew安装的用户执行升级
brew upgrade act
# 其他安装方式请参考act官方文档更新

4. 验证GITHUB_TOKEN权限

确认.secrets_frontend中的GITHUB_TOKEN确实拥有id-token: write权限,可通过简单命令验证:

curl -H "Authorization: token 你的GITHUB_TOKEN值" https://api.github.com/user

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 01:42:43