在工作流程中使用密碼
執行工作流程時,不會自動將密碼傳遞至執行器。 若要讓秘密可供動作使用,您必須將秘密設定為工作流程檔案中的輸入或環境變數。 若要達成此目的,您可以使用秘密內容,如下列範例所示:
steps:
- name: Test Database Connectivity
with:
db_username: ${{ secrets.DBUserName }}
db_password: ${{ secrets.DBPassword }}
從命令列參考秘密
從命令列參考秘密時,您可以將它們視為殼層環境變數,如下列範例所示:
steps:
- shell: pwsh
env:
DB_PASSWORD: ${{ secrets.DBPassword }}
run: |
db_test "$env:DB_PASSWORD"
請務必遵循這種方法,以將意外暴露的風險降到最低。 可以使用 PowerShell 命令檢視從命令列在流程之間傳遞的秘密,並在安全性稽核記錄中擷取。
在 IF:條件中使用秘密
由於秘密不能在 IF:條件中直接參考,作爲因應措施,請考慮將秘密設定為作業層級環境變數,然後參考環境變數以有條件地在作業中執行步驟,如下列範例所示:
name: Run a step if a secret has been set
on: push
jobs:
samplejob:
runs-on: ubuntu-latest
env:
job_secret: ${{ secrets.JobSecret }}
steps:
- if: ${{ env.job_secret != '' }}
run: echo 'the secret has a value set.'
- if: ${{ env.job_secret == '' }}
run: echo ' the secret does not have a value set.'
限制
工作流程最多可使用 100 個秘密,不論其位置為何。 秘密的大小限制為 48 KB。 若要使用大於 48 KB 的秘密,您可以使用因應措施將秘密儲存在存放庫中,並將解密複雜密碼儲存為 GitHub 上的秘密。 如需此流程的詳細資料,請參閱 GitHub 文件中 儲存大型秘密 主題。
請注意,除了 GITHUB_TOKEN 之外,從分支存放庫觸發工作流程時,不會將秘密傳遞至執行器。