跳至主要内容

对 GitHub API 进行身份验证

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

法律声明

概述

您可以使用 GitHub 应用或使用个人访问令牌(传统方式)对 Actions 运行器控制器 (ARC) 到 GitHub API 进行身份验证。

注意

您无法对企业级运行器使用 GitHub 应用进行身份验证。有关详细信息,请参阅“使用组管理对自托管运行器的访问权限”。

使用 GitHub App 认证 ARC

  1. 创建一个由组织拥有的 GitHub App。有关更多信息,请参阅“注册 GitHub App”。按照以下步骤配置 GitHub App。

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

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

      • 管理:读写

        注意

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

      • 元数据:只读

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

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

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

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

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

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

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

    要使用 GitHub App 的值创建 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

部分内容已根据 Apache-2.0 许可证从 https://github.com/actions/actions-runner-controller/ 改编

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.