跳到主要内容

教程:在 GitHub Actions 中认证 kmpkg 基于 Git 的注册表

使用 kmpkg 访问私有注册表时,需要提供访问凭据,以认证 kmpkg 内部执行的 Git 操作。

本教程将指导你配置 GitHub Actions 工作流,完成私有 Git 仓库的认证。

前提条件

  • GitHub 账户
  • 托管在 GitHub 上的私有 kmpkg Git 注册表
  • kmpkg

1 - 为私有仓库创建个人访问令牌

按照 GitHub 官方指引生成细粒度个人访问令牌(PAT),并为该令牌授予访问托管 kmpkg Git 注册表的私有仓库的权限。

2 - 创建用于工作流的 GitHub Actions 密钥

信息

切勿将 GitHub 个人访问令牌存储在仓库文件中

下一步,请按照 GitHub 官方指引将 PAT 存储为 GitHub Actions 工作流可用的密钥

3 - 在工作流中认证私有 Git 仓库

现在需要在工作流中添加认证步骤,请在工作流的 YAML 文件中使用以下模板。将 PRIVATE_REPO_URL 替换为你的私有仓库 URL(例如:https://github.com/Microsoft/secret-kmpkg-registry);将 PRIVATE_REGISTRY_PAT 替换为上一步创建的密钥变量名称。

此工作流步骤必须在所有调用 kmpkg 的步骤之前执行。

  - name: Authenticate private registries
shell: bash
run: git config --global credential.PRIVATE_REPO_URL.helper '!f() { echo username=unused; echo password=${{secrets.PRIVATE_REGISTRY_PAT }}; }; f'

多私有仓库认证示例

以下示例展示如何使用 credential.<url>.helper 模式为多个私有仓库提供 Git 凭据:

    - name: Authenticate private registries
shell: bash
run: |
git config --global credential.https://github.com/kmpkg/private_registry.helper '!f() { echo username=unused; echo password=${{secrets.private_registry_pat}}; }; f'
git config --global credential.https://github.com/kmpkg/secret_registry.helper '!f() { echo username=unused; echo password=${{secrets.secret_registry_pat}}; }; f'