簡體   English   中英

運行工作流時如何屏蔽在 Github 中創建的環境變量?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM