簡體   English   中英

如何使用 python 訪問 GitHub 操作機密?

[英]How to access GitHub action secrets with python?

我在 Python GitHub 行動項目中設置了環境機密:

在此處輸入圖像描述

我可以從操作文件中訪問機密,因為以下內容:

jobs:
  log-the-inputs:
    runs-on: ubuntu-latest
    steps:
      - run: |
          echo "Log level: $LEVEL"
          echo "Tags: $TAGS"
          echo "Environment: $ENVIRONMENT"
          echo ${{ secrets.EMAIL_USER }}

將 output

Run echo "Log level: $LEVEL"
Log level: warning
Tags: false
Environment: novi
***

我希望可以從環境變量中獲得秘密,但是當我使用os.environ時,EMAIL_USER 和 EMAIL_PASSWORD 不在那里。

如何從 python 腳本訪問機密?

當您使用像${{ secrets.EMAIL_USER }}這樣的表達式時,您沒有引用環境變量。 在您的腳本運行之前,該值由工作流引擎替換。

如果您希望機密可用作環境變量,則需要使用步驟或工作流的env部分顯式設置這些環境變量。 例如:

name: Workflow with secrets

on:
  workflow_dispatch:

jobs:
  show-secrets:
    runs-on: ubuntu-latest
    env:
      EMAIL_USER: ${{ secrets.EMAIL_USER }}
      EMAIL_PASSWORD: ${{ secrets.EMAIL_PASSWORD }}
    steps:
      - name: Setup Python
        uses: actions/setup-python@v2
        with:
          python-version: '^3.9'

      - name: Show environment
        run: |
          env | grep EMAIL

      - name: Create python script
        run: |
          cat > showenv.py <<'EOF'
          import os

          print(f'Email username is {os.environ.get("EMAIL_USER", "<unknown")}')
          print(f'Email password is {os.environ.get("EMAIL_PASSWORD", "<unknown")}')
          EOF

      - name: Run python script
        run: |
          python showenv.py

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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