跳至主要内容

对 GitHub API 进行身份验证

了解如何对 GitHub API 进行身份验证,以将 Actions 运行器控制器与 GitHub.com 一起使用。

法律声明

概述

您可以使用 GitHub 应用或个人访问令牌(经典)将 Actions Runner Controller (ARC) 认证到 GitHub API。

注意:您无法使用 GitHub 应用为企业级别的运行器进行认证。有关更多信息,请参阅“使用组管理对自托管运行器的访问权限”。

使用 GitHub 应用认证 ARC

  1. 创建一个由组织拥有的 GitHub 应用。有关更多信息,请参阅“注册 GitHub 应用”。按如下方式配置 GitHub 应用。

    1. 对于“主页 URL”,请输入 https://github.com/actions/actions-runner-controller

    2. 在“权限”下,单击存储库权限。然后使用下拉菜单选择以下访问权限。

      • 管理:读写

        注意管理:读写仅在将 Actions Runner Controller 配置为在存储库范围内注册时才需要。在组织范围内注册不需要此权限。

      • 元数据:只读

    3. 在“权限”下,单击组织权限。然后使用下拉菜单选择以下访问权限。

      • 自托管运行器:读写
  2. 创建 GitHub 应用后,在 GitHub 应用页面上,记下“应用 ID”的值。您将在稍后使用此值。

  3. 在“私钥”下,单击生成私钥,并保存 .pem 文件。您将在稍后使用此密钥。

  4. 在页面左上角的菜单中,单击安装应用,然后在您的组织旁边,单击安装以在您的组织上安装该应用。

  5. 确认您在组织上的安装权限后,记下应用安装 ID。您将在稍后使用它。您可以在应用安装页面上找到应用安装 ID,该页面的 URL 格式如下

    https://github.com/organizations/ORGANIZATION/settings/installations/INSTALLATION_ID

  6. 将上一步中注册的应用 ID、安装 ID 和下载的 .pem 私钥文件作为密钥注册到 Kubernetes。

    要使用 GitHub 应用的值创建 Kubernetes 密钥,请运行以下命令。

    注意:在安装 gha-runner-scale-set 图表的相同命名空间中创建密钥。在本例中,命名空间为 arc-runners,与快速入门文档匹配。有关更多信息,请参阅“Actions Runner Controller 快速入门”。

    Bash
    kubectl create secret generic pre-defined-secret \
       --namespace=arc-runners \
       --from-literal=github_app_id=123456 \
       --from-literal=github_app_installation_id=654321 \
       --from-literal=github_app_private_key='-----BEGIN RSA PRIVATE KEY-----********'
    

    然后,在您复制的 values.yaml 文件中使用 githubConfigSecret 属性,将密钥名称作为引用传递。

    githubConfigSecret: pre-defined-secret
    

有关其他 Helm 配置选项,请参阅 ARC 存储库中的 values.yaml

使用个人访问令牌(经典)对 ARC 进行身份验证

ARC 可以使用个人访问令牌(经典)注册自托管运行器。

  1. 使用所需的范围创建一个个人访问令牌(经典)。所需的范围取决于您是在存储库级别还是组织级别注册运行器。有关如何创建个人访问令牌(经典)的更多信息,请参阅“管理您的个人访问令牌”。

    以下是 ARC 运行器所需的个人访问令牌范围列表。

    • 存储库运行器:repo
    • 组织运行器:admin:org
  2. 要使用个人访问令牌(经典)的值创建 Kubernetes 密钥,请使用以下命令。

    注意:在安装 gha-runner-scale-set 图表的相同命名空间中创建密钥。在本例中,命名空间为 arc-runners,与快速入门文档匹配。有关更多信息,请参阅“Actions Runner Controller 快速入门”。

    Bash
    kubectl create secret generic pre-defined-secret \
       --namespace=arc-runners \
       --from-literal=github_token='YOUR-PAT'
    
  3. 在您复制的 values.yaml 文件中,将密钥名称作为引用传递。

    githubConfigSecret: pre-defined-secret
    

    有关其他 Helm 配置选项,请参阅 ARC 存储库中的 values.yaml

部分内容改编自 https://github.com/actions/actions-runner-controller/,根据 Apache-2.0 许可证发布

Copyright 2019 Moto Ishizawa

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.