第 1 章 启用 GitHub 仓库发现


考虑配置 Developer Hub 来自动发现和模拟您的 GitHub 存储库。如果存储库包含 catalog-info.yaml 文件,Developer Hub 会将存储库作为组件放入目录中。

先决条件

流程

  1. 要允许 Developer Hub 访问 GitHub API,请创建一个 GitHub 应用程序。选择 GitHub 应用程序而不是使用精细的权限,可以更好地控制应用程序可访问的存储库,并使用简短令牌。

    1. 使用以下配置注册 GitHub 应用程序:

      GitHub 应用程序名称
      输入用于标识 GitHub 应用程序的唯一名称,如 integration -with-rhdh- <GUID&gt;。
      主页 URL
      输入您的 Developer Hub URL: https:// <my_developer_hub_domain>
      授权回调 URL
      输入您的 Developer Hub 身份验证后端 URL: https:// <my_developer_hub_domain&gt; /api/auth/github/handler/frame
      Webhook
      清除 "Active",因为身份验证和目录供应商不需要这样做。
      应用程序权限

      选择权限来为应用程序定义访问权限级别。根据您的需要调整权限:

      读取软件组件
      内容
      只读
      提交状态
      只读
      读取机构数据
      成员
      只读
      发布软件模板

      如果您打算为软件模板使用相同的 GitHub 应用程序,请设置权限。

      管理
      读写 (用于创建软件仓库)
      内容
      读取和写入
      元数据
      只读
      Pull requests
      读取和写入
      问题
      读取和写入
      工作流
      读取和写入 (如果模板包含 GitHub 工作流)
      变量
      读取和写入 (如果模板包含 GitHub Action 存储库变量)
      Secrets
      读取和写入 (如果模板包含 GitHub Action Repository Secrets)
      环境
      读取和写入 (如果模板包含 GitHub 环境)
      机构权限
      成员
      只读
      在哪里可以安装此 GitHub 应用程序?
      仅在此帐户上选择
    2. General Clients secrets 部分中,点 Generate a new client secret
    3. General Private key 部分中,点 Generate a private key
    4. Install App 选项卡中,选择要安装 GitHub App 的帐户。
    5. 为下一步保存以下值:

      • App ID
      • 客户端 ID
      • 客户端 secret
      • 私钥
  2. 要将 GitHub 凭证添加到 Developer Hub,请将以下键/值对添加到 Developer Hub secret 中。您可以使用其相应的环境变量名称在 Developer Hub 配置文件中使用这些 secret。

    GITHUB_INTEGRATION_APP_ID
    输入保存 的应用程序 ID
    GITHUB_INTEGRATION_CLIENT_ID
    输入保存 的客户端 ID
    GITHUB_INTEGRATION_CLIENT_SECRET
    输入保存 的客户端 Secret
    GITHUB_INTEGRATION_HOST_DOMAIN
    输入 GitHub 主机域: github.com
    GITHUB_INTEGRATION_ORGANIZATION
    输入您的 GitHub 机构名称,如 ' <your_github_organization_name>'。
    GITHUB_INTEGRATION_PRIVATE_KEY_FILE
    输入保存 的私钥
  3. dynamic-plugins.yaml 文件中启用 plugin-catalog-backend-module-github 插件。

    此插件通过在 GitHub 机构中扫描 catalog-info.yaml 文件的存储库来发现目录实体。它提供通过 catalog.locations 手动注册组件的自动替代方案。当存储库包含 catalog-info.yaml 文件时,实体会作为组件放在目录中。

    dynamic-plugins.yaml 文件片段

    plugins:
      - package: './dynamic-plugins/dist/backstage-plugin-catalog-backend-module-github'
        disabled: false

  4. 通过在自定义 Developer Hub app-config.yaml 配置文件中添加 catalog.providers.githubintegrations.github 部分来配置 GitHub 集成:

    app-config.yaml 文件片段与强制字段启用 GitHub 集成

    catalog:
      providers:
        github:
          providerId:
            organization: "${GITHUB_INTEGRATION_ORGANIZATION}"
            schedule:
              frequency:
                minutes: 30
              initialDelay:
                seconds: 15
              timeout:
                minutes: 15
    integrations:
      github:
        - host: ${GITHUB_INTEGRATION_HOST_DOMAIN}
          apps:
            - appId: ${GITHUB_INTEGRATION_APP_ID}
              clientId: ${GITHUB_INTEGRATION_CLIENT_ID}
              clientSecret: ${GITHUB_INTEGRATION_CLIENT_SECRET}
              privateKey: |
                ${GITHUB_INTEGRATION_PRIVATE_KEY_FILE}

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部