![](/img/trans.png)
[英]Is it safe to pass GitHub Secrets as an argument to a python code?
[英]How to pass secrets from GitHub Actions to python environ variables?
要在 GitHub 操作中運行pytest
,我必須為運行環境的 Python 傳遞一些secrets
。 例如,
- name: Test env vars for python
run: python -c 'import os;print(os.environ)'
env:
TEST_ENV: 'hello world'
TEST_SECRET: ${{ secrets.MY_TOKEN }}
但是,output如下,
environ({
'TEST_ENV': 'hello world',
'TEST_SECRET':'',
...})
由於GitHub 的修訂,它似乎不起作用。
根據@raspiduino 的回答,我對導入環境變量的兩個選項進行了更多探索。
name: python
on: push
jobs:
test_env:
runs-on: ubuntu-latest
steps:
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: Test env vars for python
run: python -c 'import os;print(os.environ)'
env:
ENV_SECRET: ${{ secrets.ENV_SECRET }}
REPO_SECRET: ${{ secrets.REPO_SECRET }}
- name: Test inline env vars for python
run: ENV_SECRET=${{ secrets.ENV_SECRET }} REPO_SECRET=${{ secrets.REPO_SECRET }} python -c 'import os;print(os.environ)'
基本上,這兩個步驟都在相同的輸出中。 REPO_SECRET
可以通過,但不能通過ENV_SECRET
。
GitHub Actions 中有三種類型的機密。
要訪問環境機密,您必須在工作中引用環境。 (感謝@riQQ)
name: python
on: push
jobs:
test_env:
environment: TEST_SECRET
runs-on: ubuntu-latest
steps:
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: Test env vars for python
run: python -c 'import os;print(os.environ)'
env:
ENV_SECRET: ${{ secrets.ENV_SECRET }}
REPO_SECRET: ${{ secrets.REPO_SECRET }}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.