如何在 github 工作流程的下一步中设置和访问 python 代码的响应
How to set and access response of python code in next step in github workflow
如何设置和访问 python 代码对 github 工作流中变量的响应。我必须使用 Auth_Header
中创建容器 Web 步骤中的 python 代码生成的令牌
- 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
pip install Authlib
python -c 'from authlib.integrations.requests_client import OAuth2Session;
session = OAuth2Session("${{ env.CLIENT_ID }}", "${{ env.CLIENT_SECRET }}")
session.fetch_token("${{ env.TOKEN_ENDPOINT }}")
session.token["access_token"]'
- name: Create Container Web
#if: steps.pr-label.outputs.result == 'true'
run: |
AUTH_HEADER="Authorization: token $access_token"
到目前为止,我已经尝试过以下方法,但仍然无法正常工作
- name: Get Token
env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true'
run: |
python -m pip install --upgrade pip
pip install requests-oauthlib
pip install Authlib
echo ::set-env name=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 }}")
session.token["access_token"]')
id: token
- name: Create Container Web
#if: steps.pr-label.outputs.result == 'true'
run: |
echo token is ${{ env.ACCESS_TOKEN }}
AUTH_HEADER="Authorization: token ${{ env.ACCESS_TOKEN }}"
您可以使用 ::set-output
设置输出,然后在下一步中使用 steps.[id].outputs.ACCESS_TOKEN
:
取回此输出
name: Token
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Get Token
env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true'
run: |
python -m pip install --upgrade pip
pip install requests-oauthlib
pip install Authlib
echo ::set-output name=ACCESS_TOKEN::$(python '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"])')
id: token
- name: Create Container Web
run: |
echo token is ${{ steps.token.outputs.ACCESS_TOKEN }}
AUTH_HEADER="Authorization: token ${{ steps.token.outputs.ACCESS_TOKEN }}"
如何设置和访问 python 代码对 github 工作流中变量的响应。我必须使用 Auth_Header
中创建容器 Web 步骤中的 python 代码生成的令牌- 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
pip install Authlib
python -c 'from authlib.integrations.requests_client import OAuth2Session;
session = OAuth2Session("${{ env.CLIENT_ID }}", "${{ env.CLIENT_SECRET }}")
session.fetch_token("${{ env.TOKEN_ENDPOINT }}")
session.token["access_token"]'
- name: Create Container Web
#if: steps.pr-label.outputs.result == 'true'
run: |
AUTH_HEADER="Authorization: token $access_token"
到目前为止,我已经尝试过以下方法,但仍然无法正常工作
- name: Get Token
env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true'
run: |
python -m pip install --upgrade pip
pip install requests-oauthlib
pip install Authlib
echo ::set-env name=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 }}")
session.token["access_token"]')
id: token
- name: Create Container Web
#if: steps.pr-label.outputs.result == 'true'
run: |
echo token is ${{ env.ACCESS_TOKEN }}
AUTH_HEADER="Authorization: token ${{ env.ACCESS_TOKEN }}"
您可以使用 ::set-output
设置输出,然后在下一步中使用 steps.[id].outputs.ACCESS_TOKEN
:
name: Token
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Get Token
env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true'
run: |
python -m pip install --upgrade pip
pip install requests-oauthlib
pip install Authlib
echo ::set-output name=ACCESS_TOKEN::$(python '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"])')
id: token
- name: Create Container Web
run: |
echo token is ${{ steps.token.outputs.ACCESS_TOKEN }}
AUTH_HEADER="Authorization: token ${{ steps.token.outputs.ACCESS_TOKEN }}"