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

Github工作流中跨Job传递JWT令牌失败问题排查

解决Github Actions跨Job传递JWT令牌为空的问题

问题根源

你遇到的情况是因为JWT令牌包含.、=这类特殊字符,直接用echo -n "API_TOKEN=$API_TOKEN"输出到GITHUB_OUTPUT时,shell的字符串解析会出现异常,导致输出内容被截断或无法正确识别,最终下游Job获取到空值。而测试用的"test"没有特殊字符,所以能正常传递。

解决方案

修改生成令牌的步骤,使用printf代替echo来输出到GITHUB_OUTPUT,同时用双引号包裹变量,确保特殊字符被正确保留:

jobs:
  get-auth-token:
    runs-on: ubuntu-latest
    outputs:
      API_TOKEN: ${{ steps.getauthtoken.outputs.API_TOKEN }}
    steps:
      - name: Get Token
        id: getauthtoken
        run: |
          API_TOKEN="<真实JWT令牌>"
          # 用printf稳定处理特殊字符,确保输出格式正确
          printf 'API_TOKEN=%s\n' "$API_TOKEN" >> "$GITHUB_OUTPUT"

额外检查点

  1. 确认你的JWT令牌是纯单行字符串,如果生成过程中带有换行符,先用tr -d '\n'去除:
    API_TOKEN=$(command_to_fetch_jwt | tr -d '\n')
    
  2. 不要在输出时使用-n参数,GITHUB_OUTPUT要求每行一个键值对,printf的\n会自动添加正确的换行。

验证修改

修改后重新运行Workflow,下游Job的auth_token参数应该能正确获取到JWT令牌,同时Github会继续对令牌内容进行混淆显示(日志中显示为***)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 16:55:14