[英]How to mask environment variables created in Github when running a workflow?
我創建了一個 Github 工作流,它運行一個帶有 cron 計划的 python 腳本。 在每次運行工作流時都會生成一個 access_token,這是下一次運行所必需的。
為了保存令牌,python 腳本將令牌寫入GITHUB_ENV
文件。 在下一步中,我使用hmanzur/actions-set-secret@v2.0.0
操作將令牌保存到 Github 密鑰中。 一切正常。
我唯一的問題是,令牌作為環境變量顯示在第二步的日志中。
這是工作流文件的最小版本:
name: Tests
on:
schedule:
- cron: "0 1 * * *"
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
python: ['3.9']
steps:
- uses: actions/checkout@v1
- uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python }}
- name: Install dependencies
run: pip install -r requirements.txt
- name: Run tests
working-directory: ./src
run: python -m unittest
env:
ACCESS_TOKEN: ${{secrets.ACCESS_TOKEN}}
- uses: hmanzur/actions-set-secret@v2.0.0
with:
name: 'ACCESS_TOKEN'
value: ${{env.ACCESS_TOKEN}}
repository: Me/MyRepository
token: ${{ secrets.REPO_ACCESS_TOKEN }}
我嘗試應用::add-mask::
。 添加echo "ACCESS_TOKEN=::add-mask::$ACCESS_TOKEN" >> $GITHUB_ENV
僅將::add-mask::
到字符串中。
有沒有辦法屏蔽我可以在第一步應用的GITHUB_ENV
文件中的所有環境變量? 我可以在寫入 python 中的GITHUB_ENV
文件時對變量應用掩碼嗎? 或者有沒有辦法在工作流程中禁用環境變量的顯示?
我的解決方案,如果有人遇到同樣的問題。
似乎沒有直接的解決方案。 作為一種解決方法,我使用密碼庫對cryptocode
腳本中的訪問令牌進行編碼和解碼。 只有加密的令牌被發送到工作流環境並保存在 repos secret 中。
您對“::add-mask::”的使用是錯誤的(不是您的錯,我討厭 GHA 文檔)。
你需要做的是:
echo "::add-mask::$ACCESS_TOKEN"
echo "ACCESS_TOKEN=$ACCESS_TOKEN" >> $GITHUB_ENV
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.