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

如何在GitHub Workflow中设置并访问Python代码输出的变量供后续步骤使用

解决方案

核心问题原因

  • Python代码仅引用了access_token值,没有通过print()输出,导致命令替换捕获的结果为空
  • 使用的::set-env是已被官方弃用的废弃语法,无法正常生效,且不需要开启不安全的ACTIONS_ALLOW_UNSECURE_COMMANDS配置

正确配置方式

方案1:写入全局环境变量(所有后续步骤都可直接调用)

- name: setup python
  uses: actions/setup-python@v2
  with:
    python-version: '3.9.0'

- name: Get Token
  run: |
    python -m pip install --upgrade pip
    pip install requests-oauthlib Authlib
    # 必须print输出token才能被捕获
    access_token=$(python -c 'from authlib.integrations.requests_client import OAuth2Session;
    session = OAuth2Session("${{ env.CLIENT_ID }}", "${{ env.CLIENT_SECRET }}")
    session.fetch_token("${{ env.TOKEN_ENDPOINT }}")
    print(session.token["access_token"])')
    # 可选:标记token为敏感值,避免日志泄露
    echo "::add-mask::$access_token"
    # 写入环境变量文件,后续步骤可直接读取
    echo "ACCESS_TOKEN=$access_token" >> $GITHUB_ENV

- name: Create Container Web
  run: |
    echo "token is ${{ env.ACCESS_TOKEN }}"
    AUTH_HEADER="Authorization: token ${{ env.ACCESS_TOKEN }}"
    # 后续使用AUTH_HEADER的逻辑写在此处

方案2:写入步骤输出(仅指定步骤按需调用)

- name: setup python
  uses: actions/setup-python@v2
  with:
    python-version: '3.9.0'

- name: Get Token
  id: get_token
  run: |
    python -m pip install --upgrade pip
    pip install requests-oauthlib Authlib
    access_token=$(python -c 'from authlib.integrations.requests_client import OAuth2Session;
    session = OAuth2Session("${{ env.CLIENT_ID }}", "${{ env.CLIENT_SECRET }}")
    session.fetch_token("${{ env.TOKEN_ENDPOINT }}")
    print(session.token["access_token"])')
    echo "::add-mask::$access_token"
    # 写入当前步骤的输出变量
    echo "access_token=$access_token" >> $GITHUB_OUTPUT

- name: Create Container Web
  run: |
    echo "token is ${{ steps.get_token.outputs.access_token }}"
    AUTH_HEADER="Authorization: token ${{ steps.get_token.outputs.access_token }}"
    # 后续使用AUTH_HEADER的逻辑写在此处

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:27:01