hello-github-actions
v1.13.0
Published
hack github actions
Downloads
12
Readme
hackga
npm
Read Publishing packages to the npm registry first.
GitHub Actions 支持多種類型的 secrets,主要包括:
Repository Secrets: 這些 secrets 設置在特定倉庫的層級,只對該倉庫內的 GitHub Actions 工作流程有效。這些 secrets 適合儲存特定於該倉庫的敏感資料,如 API 密鑰、環境變數等。
範例:設置一個名為
API_KEY
的 Repository Secret 用於存取第三方服務。env: SOME_API_KEY: ${{ secrets.API_KEY }}
Organization Secrets: 這些 secrets 設置在組織層級,可以在組織內的多個倉庫之間共享。這些 secrets 適合儲存對於整個組織而言是通用的敏感資訊,例如用於跨多個項目的訪問令牌。
範例:在組織層級設置一個名為
ORG_LEVEL_SECRET
的 secret。env: GLOBAL_TOKEN: ${{ secrets.ORG_LEVEL_SECRET }}
Environment Secrets: 這些 secrets 是與特定環境(例如 'production'、'development'、'staging')相關聯。當工作流程運行在指定環境時,這些 secrets 才會被使用。這些 secrets 適合用於儲存特定於環境的敏感資料。
範例:在 'production' 環境中設置一個名為
PROD_DB_PASSWORD
的 secret。jobs: deploy: runs-on: ubuntu-latest environment: production steps: - run: echo "Deploying to production" env: DB_PASSWORD: ${{ secrets.PROD_DB_PASSWORD }}
Dependabot Secrets:這些是專門為 Dependabot 設置的 secrets,用於在自動合併請求時訪問私有依賴項或其他需要認證的資源。
範例:設置一個名為
DEPENDABOT_SECRET
的 secret,供 Dependabot 使用以訪問私有倉庫。# 通常在 Dependabot 的配置文件中指定 registries: npm-registry: type: npm-registry url: https://registry.npmjs.org token: ${{ secrets.DEPENDABOT_SECRET }}
每種 secret 都用於不同的情境,選擇哪一種取決於你需要保護的資料的性質和範圍。在使用這些 secrets 時,應始終謹慎,確保只有必要的工作流程或角色可以訪問相關的敏感資訊。
在 GitHub Actions 中,如果相同的變數名稱出現在不同類型的 secrets(如 Repository Secrets、Organization Secrets、Environment Secrets)中,則它們的生效優先順序如下:
- Environment Secrets: 最高優先級。如果一個變數在環境級別設置了 secret,則該值將被使用。
- Repository Secrets: 若在環境級別沒有找到該 secret,則會檢查倉庫級別的 secrets。
- Organization Secrets: 如果在環境級別和倉庫級別都沒有找到,則會使用組織級別的 secret。
這意味著,如果相同的變數名稱在多個層級定義了不同的值,GitHub Actions 將根據上述的優先順序選擇使用哪一個值。通常情況下,更具體(如環境級別)的設置會覆蓋更廣泛(如組織級別)的設置。