连接到 GitLab 主机

本页面介绍了如何将 GitLab 主机连接到 Cloud Build。

准备工作

  • 启用 Cloud Build and Secret Manager API。

    启用 API

连接到 GitLab 主机

在为 GitLab 实例创建主机连接之前,您必须完成以下步骤,在 GitLab 中创建个人访问令牌:

  1. 登录您的 GitLab Enterprise Edition 实例。

  2. 在您的实例的 GitLab Enterprise Edition 页面上,点击右上角的头像。

  3. 点击修改个人资料

  4. 在左侧边栏中,选择访问令牌

    您将看到 Personal Access Tokens(个人访问令牌)页面。

  5. 创建具有 api 范围的访问令牌,用于与代码库建立连接和断开连接。

  6. 创建具有 read_api 范围的访问令牌,以确保 Cloud Build 代码库可以访问代码库中的源代码。

控制台

如需将 GitLab 主机连接到 Cloud Build,请执行以下操作:

  1. 打开 Google Cloud 控制台中的制品库页面。

    打开“代码库”页面

    您会看到代码库页面。

  2. 在页面顶部,选择第 2 代标签页。

  3. 在顶部栏的项目选择器中,选择您的 Google Cloud 项目。

  4. 点击创建主机连接,将新主机连接到 Cloud Build。

  5. 在左侧面板中,选择 GitLab 作为来源提供商。

  6. 配置连接部分中,输入以下信息:

    1. 区域:选择连接的区域。

    2. 名称:输入连接的名称。

  7. 主机详细信息部分,选择或输入以下信息:

    1. GitLab 提供商:选择 GitLab.com 作为您的提供商。
  8. 个人访问令牌部分中,输入以下信息:

    1. API 访问令牌:输入具有 api 范围访问权限的令牌。此令牌用于与代码库建立连接和断开连接。

    2. 读取 API 访问令牌:输入具有 read_api 范围访问权限的令牌。Cloud Build 触发器使用此令牌访问代码库中的源代码。

  9. 点击连接

    点击连接按钮后,您的个人访问令牌安全地存储在 Secret Manager 中。主机连接之后,Cloud Build 还会代表您创建网络钩子密钥。您可以在 Secret Manager 页面上查看和管理您的 Secret。

现在,您已成功创建 GitLab 连接。

gcloud

在将 GitLab 主机连接到 Cloud Build 之前,请完成以下步骤以存储您的凭据:

  1. 将令牌存储在 Secret Manager 中

  2. 运行以下命令,在 Secret Manager 中创建 webhook Secret

     cat /proc/sys/kernel/random/uuid | tr -d '\n' | gcloud secrets create my-gle-webhook-secret --data-file=-
    
  3. 如果将密钥存储在您计划用于创建主机连接的 Google Cloud 项目以外的 Google Cloud 项目中,请输入以下命令,向您的项目授予对 Cloud Build 服务代理的访问权限:

    PN=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)")
    CLOUD_BUILD_SERVICE_AGENT="service-${PN}@gcp-sa-cloudbuild.iam.gserviceaccount.com"
    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="serviceAccount:CLOUD_BUILD_SERVICE_AGENT \
      --role="roles/secretmanager.admin"
    

    其中:

    • PROJECT_ID 是您的 Google Cloud 项目 ID。
    • CLOUD_BUILD_SERVICE_AGENT是你的

您现在可以继续将 GitLab 主机连接到 Cloud Build。

请完成以下步骤:

如需将 GitLab 主机连接到 Cloud Build,请执行以下操作:

  1. 输入以下命令以创建 GitLab 连接:

    gcloud builds connections create gitlab CONNECTION_NAME \
      --host-uri=HOST_URI \
      --project=PROJECT_ID \
      --region=REGION \
      --authorizer-token-secret-version=projects/PROJECT_ID/secrets/API_TOKEN/versions/SECRET_VERSION \
      --read-authorizer-token-secret-version=projects/PROJECT_ID/secrets/READ_TOKEN/versions/SECRET_VERSION \
      --webhook-secret-secret-version=projects/PROJECT_ID/secrets/WEBHOOK_SECRET/versions/SECRET_VERSION
    

    其中:

    • CONNECTION_NAME 是您的连接的名称。
    • HOST_URI 是 GitLab 实例的 URI。例如 https://my-gle-server.net
    • PROJECT_ID 是您的 Google Cloud 项目 ID。
    • REGION 是您的连接所在的区域
    • API_TOKEN 是范围为 api 的令牌的名称。
    • READ_TOKEN 是范围为 read_api 的令牌的名称。
    • SECRET_VERSION 是您的密钥版本。
    • WEBHOOK_SECRET 是您的网络钩子密钥。

现在,您已成功创建 GitLab 连接。

后续步骤