连接到 GitLab Enterprise

本页面介绍了如何创建与 GitLab Enterprise 的连接,以及如何创建与 GitLab Enterprise 代码库的链接。 您可以使用 Google Cloud 控制台 或 Google Cloud CLI 完成这些任务。

以下说明适用于希望将 GitLab Enterprise 源代码库与 Google 搭配使用的应用开发者、平台管理员和安全经理。 具体来说,您可以将 GitLab Enterprise 代码库与 Gemini Code Assist搭配使用。

如需详细了解 Developer Connect,请参阅 Developer Connect 概览

准备工作

  1. 登录您的 Google 账号。

    如果您还没有 Google 账号,请 注册新账号

  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Developer Connect API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Developer Connect API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  8. 启用 Developer Connect 还会启用 Secret Manager API

  9. 确保您有权访问 GitLab Enterprise 上的账号。

    为了确保团队工作的安全性,我们建议您使用 本指南中的服务账号或团队共享的账号(而非 个人账号)完成任务。

  10. 确保您拥有 GitLab Enterprise 代码库,或者对共享代码库拥有管理员级权限。
  11. 可选:创建客户管理的 加密密钥 (CMEK),用于加密 Developer Connect 创建的身份验证 Secret。
  12. 可选:如需使用本指南中的命令行说明,请完成以下步骤:
    1. 安装 Google Cloud CLI。如果您之前安装过 gcloud CLI,请运行 gcloud components update 以确保您拥有最新版本。
    2. 通过运行以下命令创建 Developer Connect 服务账号 ,其中 PROJECT_ID 是您的 Google Cloud 项目 ID
              gcloud beta services identity create \
                  --service=developerconnect.googleapis.com \
                  --project=PROJECT_ID
              

主机要求

如果您尚未安装 GitLab Enterprise Edition Server 实例,请参阅 GitLab Enterprise Edition 的安装指南 了解相关说明。

按照说明安装 GitLab Enterprise Edition Server 实例时,请注意以下事项:

  • 必须 将主机配置为处理 HTTPS 协议。不支持使用 HTTP 协议配置的主机。

  • 您必须使用与从 访问主机时所用的网址相同的网址来配置主机 Google Cloud。如需了解详情,请参阅 GitLab 文档,了解如何 配置外部网址

所需的角色

如需获得创建连接和链接所需的权限,请让您的管理员为您授予以下 IAM 角色:

  • 如果您不是项目所有者: Developer Connect Admin (roles/developerconnect.admin) 角色。
  • 如果您计划使用 CMEK 加密 Developer Connect 创建的 Secret:Cloud KMS CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter) 角色位于 Secret Manager 服务账号上。
  • 如果您计划使用 gcloud CLI 完成本指南中的步骤:Secret Manager Admin 角色 (roles/secretmanager.admin) on the Developer Connect Service Account.
  • 如果您计划使用 Google Cloud 控制台完成本指南中的步骤:用户账号的Project IAM Admin (roles/resourcemanager.projectIamAdmin) 角色。

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

您也可以通过自定义 角色或其他预定义 角色来获取所需的权限。

创建访问令牌

如需在 GitLab 中创建访问令牌,请完成以下步骤:

  1. 登录 GitLab

  2. 按照 GitLab 文档中的说明创建具有以下权限的 个人访问令牌群组访问令牌项目访问令牌

    • 一个具有 api 范围的令牌,用于连接和断开与代码库的连接。
    • 一个具有 read_api 范围的令牌,用于允许 Developer Connect 读取代码库中的源代码。
    • 对于群组访问令牌和项目访问令牌,令牌必须具有维护者或更高级别的角色。

创建连接

本部分介绍了如何在 Developer Connect 和 GitLab Enterprise 之间创建连接。如果您使用的是 Google Cloud 控制台,则还可以在完成连接设置后开始 添加与代码库的链接。

如需创建新的 GitLab Enterprise 连接,请选择以下选项之一:

控制台

如需启动连接,请完成以下步骤:

  1. 在 Google Cloud 控制台中,打开 Developer Connect

    前往 Developer Connect

    Developer Connect 会显示 Git 代码库 页面。

    • 如果您看到源代码管理提供方列表 :选择一个源代码管理提供方,开始配置您的第一个连接。点击 GitLab Enterprise 卡片上的连接
    • 如果您看到列出现有连接的表格:依次点击创建连接 > GitLab Enterprise ,设置源代码管理提供商。

      创建连接 页面随即打开。

  2. 对于区域,请为连接资源选择一个区域

    1. 对于名称,请输入新连接的名称。
  3. 对于主机网址,请输入要连接到的主机的网址。

  4. 访问令牌 部分中, 输入您的账号的令牌

    • API 访问令牌:输入具有 api 范围的访问令牌。
    • 读取 API 访问令牌:输入具有 read_api 范围的访问令牌。

    您有责任确保 GitLab 令牌保持有效。 GitLab 令牌的最长有效期为 365 天,除非令牌创建者或管理员另有规定。如需了解如何 管理令牌过期设置和通知,请参阅 GitLab 有关 个人访问令牌群组访问令牌、 和 项目访问令牌的文档。

  5. 点击显示更多 以查看可选配置设置。

    1. 可选:默认情况下,Developer Connect 可以充当代理,以便向 GitLab Enterprise 发出 Git 调用。 如需停用此选项,请清除启用 Developer Connect 代理 复选框。

    2. 对于网络类型,选择公共互联网

      如果您想使用专用网络,请参阅 连接到托管在专用网络中的 GitLab Enterprise 代码库

    3. 可选:在加密 部分中,选择一个 CMEK 密钥来 加密 Developer Connect 创建的 Secret Manager Secret。

  6. 点击继续

创建连接后,系统会显示关联代码库 页面。

请完成以下步骤,将代码库与您的连接相关联:

  1. 在可用代码库列表中,选择要使用的代码库。

  2. 点击确定

  3. 点击关联

您的连接会添加到控制台的连接页面,而您的代码库 链接会添加到代码库页面。 Google Cloud 您可以随时向现有连接添加更多链接

如果您要设置 Gemini Code Assist,请按照 配置和使用 Gemini Code Assist 代码自定义 中的步骤继续该过程

gcloud

  1. 通过运行以下命令在 Secret Manager 中创建 Webhook Secret ,其中 WEBHOOK_SECRET_NAME 是您的 Webhook Secret 的名称:

         cat /proc/sys/kernel/random/uuid | tr -d '\n' | gcloud secrets create WEBHOOK_SECRET_NAME
    
  2. 通过运行以下命令将访问令牌存储在 Secret Manager 中:

    gcloud secrets create API_SECRET_NAME
    
    echo -n API_SECRET_DATA | gcloud secrets versions add API_SECRET_NAME --data-file=-
    
    gcloud secrets create READ_SECRET_NAME
    
    echo -n READ_SECRET_DATA | gcloud secrets versions add READ_SECRET_NAME --data-file=-
    

    替换以下内容:

    • API_SECRET_NAME:用于存储 具有 api 范围的令牌的 Secret 的名称。
    • API_SECRET_DATA:具有 api 范围的令牌,类似于 glpat-XXXXXXXXXXXXXXXX
    • READ_SECRET_NAME:用于存储 具有 read_api 范围的令牌的 Secret 的名称。
    • READ_SECRET_DATA:具有 read_api 范围的令牌,类似于 glpat-XXXXXXXXXXXXXXXX
  3. 运行 developer-connect connections create 命令,启动与 GitLab Enterprise 企业账号的连接:

    gcloud developer-connect connections create CONNECTION_NAME \
        --location=REGION \
        --gitlab-config-read-authorizer-credential-user-token-secret-version=projects/PROJECT_ID/secrets/READ_SECRET_NAME/versions/VERSION \
        --gitlab-config-authorizer-credential-user-token-secret-version=projects/PROJECT_ID/secrets/API_SECRET_NAME/versions/VERSION \
        --gitlab-enterprise-config-host-uri=HOST_URI
        --gitlab-enterprise-config-webhook-secret-version=projects/PROJECT_ID/secrets/WEBHOOK_SECRET_NAME/versions/VERSION
        --git-proxy-config-enabled
    

    替换以下内容:

    • CONNECTION_NAME:连接的名称。
    • REGION:连接的区域。
    • PROJECT_ID:您的 Google Cloud 项目 ID
    • READ_SECRET_NAME:包含具有 read_api 范围的令牌的 Secret Manager Secret 的名称。
    • API_SECRET_NAME:包含具有 api 范围的令牌的 Secret Manager Secret 的名称。
    • VERSION:每个 Secret 的版本号。您可以将其设置为 latest 以使用最新的版本号。
    • HOST_URI:要连接到的主机的 URI。
    • WEBHOOK_SECRET_NAME:包含 Webhook 的 Secret Manager Secret 的名称
    • --git-proxy-config-enabled:一个可选标志,用于启用 Developer Connect 以充当代理,以便向 GitLab Enterprise 发出 Git 调用。 此功能目前为预览版

    Developer Connect 完成与 GitLab 的连接。接下来, 链接到代码库

与 GitLab Enterprise 建立连接后,您可以链接到代码库。您可以稍后重复执行这些步骤,以便根据需要链接其他代码库。

如需在现有 GitLab Enterprise 连接上创建代码库链接,请选择以下选项之一:

控制台

如需创建与代码库的链接,请完成以下步骤:

  1. 在 Google Cloud 控制台中打开代码库 页面。

    打开代码库 页面

  2. 点击关联代码库

    关联 Git 代码库 窗格随即打开。

  3. 在连接列表中,选择一个连接。

  4. 点击继续

  5. 在代码库列表中,选择要链接到的代码库。

    Developer Connect 会显示代码库资源的建议名称。

  6. 选择一个代码库资源命名选项:

    • 已生成:使用生成的代码库资源名称。
    • 手动:输入您自己的名称。
  7. 点击创建

Developer Connect 会创建代码库链接,并在 控制台 Google Cloud 中显示这些链接。

gcloud

运行以下命令,链接到 GitLab 代码库:

gcloud developer-connect connections git-repository-links create REPO_NAME \
    --clone-uri=REPO_URI \
    --connection=CONNECTION_NAME \
    --location=REGION

替换以下内容:

  • REPO_NAME:代码库链接的名称。
  • REPO_URI:代码库的链接,类似于 https://gitlab.com/my-project/test-repo.git
  • CONNECTION_NAME:连接的名称。
  • REGION:连接的区域。

Developer Connect 会创建代码库链接。

如需列出已关联的代码库,请运行 developer-connect connections git-repository-links list 命令。

如果您要设置 Gemini Code Assist,请按照 配置和使用 Gemini Code Assist 代码自定义 中的步骤继续该过程

后续步骤