这些说明适用于想要将 Bitbucket 数据中心源代码库与 Google 搭配使用的应用开发者、平台管理员和安全经理。 具体来说,您可以将 Bitbucket 数据中心代码库与 Gemini Code Assist搭配使用。
如需详细了解 Developer Connect,请参阅 Developer Connect 概览。
准备工作
-
登录您的 Google 账号。
如果您还没有 Google 账号,请 注册新账号。
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Developer Connect and Service Directory APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Developer Connect and Service Directory APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
确保您有权访问 Bitbucket 数据中心 上的账号。
为了确保团队工作的安全性,我们建议您使用机器人账号或团队共享的账号(而非个人账号)完成本指南中的 任务。
- 确保您拥有 Bitbucket 数据中心代码库,或者对共享代码库拥有管理员级权限。
- 确保您拥有用于
连接到专用网络的 Service Directory 服务资源,或者
创建
Service Directory 服务资源。您可以在与 Developer Connect 搭配使用的同一项目中创建 Service Directory 服务资源,也可以使用其他项目。
对于与外部的网络的连接 Google Cloud,您可能需要 以不同的方式配置 Service Directory。请参阅 使用 Service Directory 访问外部主机 。 Google Cloud
- 可选:创建客户管理的 加密密钥 (CMEK),用于加密 Developer Connect 创建的身份验证 Secret。
- 可选:如需使用本指南中的命令行说明,请完成以下步骤:
- 安装 Google Cloud CLI。如果您之前安装过 gcloud CLI,请运行
gcloud components update以确保您拥有最新版本。 - 通过运行以下命令创建 Developer Connect 服务账号
,其中 PROJECT_ID 是您的 Google Cloud 项目 ID:
gcloud beta services identity create \ --service=developerconnect.googleapis.com \ --project=PROJECT_ID
- 安装 Google Cloud CLI。如果您之前安装过 gcloud CLI,请运行
启用 Developer Connect 也会启用 Secret Manager API。
所需角色
如需获得创建连接和链接所需的权限,请让您的管理员为您授予以下 IAM 角色:
-
如果您不是项目所有者:
Developer Connect Admin (
roles/developerconnect.admin) 角色。 -
如果您计划使用 CMEK 加密 Developer Connect 创建的 Secret:Cloud KMS CryptoKey Encrypter/Decrypter (
roles/cloudkms.cryptoKeyEncrypterDecrypter) on the Secret Manager Service Account. -
如果您计划使用 gcloud CLI 完成本指南中的步骤:
Secret Manager Admin 角色 (
roles/secretmanager.admin) 在 Developer Connect 服务账号上。 -
如果您计划使用 Google Cloud 控制台完成本指南中的步骤:
用户账号的Project IAM Admin (
roles/resourcemanager.projectIamAdmin) 角色。
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
您也可以通过自定义 角色或其他预定义 角色来获取所需的权限。
授予使用 Service Directory 的权限
完成以下步骤,让 Developer Connect 使用 Service Directory,并让 Service Directory 访问您的 VPC 网络资源。
运行以下命令,授予 Developer Connect 服务帐号使用 Service Directory 的权限:
PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)") SERVICE_ACCOUNT="service-${PROJECT_NUMBER}@gcp-sa-devconnect.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding SERVICE_DIRECTORY_RESOURCE_PROJECT_ID \ --member="serviceAccount:${SERVICE_ACCOUNT}" \ --role="roles/servicedirectory.viewer"替换以下内容:
- PROJECT_ID:您的 Google Cloud 项目 ID。
- SERVICE_DIRECTORY_RESOURCE_PROJECT_ID:包含 Service Directory 服务资源的项目 ID。 Google Cloud
授予 Service Directory 访问您的 VPC 网络资源的权限。网络资源可以位于其他项目中。
gcloud projects add-iam-policy-binding NETWORK_RESOURCE_PROJECT_ID \ --member="serviceAccount:${SERVICE_ACCOUNT}" \ --role="roles/servicedirectory.pscAuthorizedService"将 NETWORK_RESOURCE_PROJECT_ID 替换为包含 VPC 网络资源的项目的项目 ID。
使用 Service Directory 访问外部主机 Google Cloud
Service Directory 使用 IP 地址范围 35.199.192.0/19 连接到外部主机。 Google Cloud您必须将此范围添加到防火墙中的许可名单。此外,您还需要将专用网络配置为通过 Cloud VPN 或 Cloud Interconnect 连接路由此范围。
如果您的连接使用 Cloud Router,您可以将连接配置为 传达 该范围到您的专用网络。
如需了解详情,请参阅配置专用网络访问。
使用 Cloud Load Balancing 访问外部主机 Google Cloud
如果您的网络配置不允许您将
Service Directory IP 地址范围 35.199.192.0/19 路由到
Cloud VPN 或 Cloud Interconnect,您可以使用
Cloud Load Balancing 创建负载均衡器,将流量定向到您的主机。
创建 Service Directory 端点时,请务必使用负载均衡器的转发规则的 IP 地址,而不是主机的 IP 地址。创建端点时,您可以使用 内部 HTTPS 负载均衡器 或 内部传输控制协议 (TCP) 负载均衡器 。
创建 TCP 负载均衡器时,请考虑以下事项:
- 只需混合连接网络端点组 (NEG) 即可访问您的主机。
- TCP 负载均衡器不需要 SSL 证书的未加密私钥。
- 您的 Cloud VPN 设置需要使用具有全局动态路由的 Cloud Router。如果您的 Cloud VPN 使用静态路由,您可以改用使用 Cloud Service Mesh 的代理。如需了解详情,请参阅为混合部署设置网络 边缘服务 。
如需详细了解如何创建 HTTPS 负载均衡器,请参阅 设置具有混合连接的内部应用负载均衡器。如需详细了解如何创建 TCP 负载均衡器,请参阅 设置具有混合连接的区域级内部代理网络负载均衡器。
创建访问令牌
按照以下步骤在 Bitbucket 数据中心创建个人访问令牌:
按照 Bitbucket 数据中心文档中的说明 创建两个 HTTP 访问令牌,并授予以下 范围。
Developer Connect 支持用户、项目和代码库访问令牌。
- 创建一个具有
repository admin范围的令牌。在 Developer Connect 中,此令牌称为管理员访问令牌。 - 创建一个具有
repository read范围的令牌。在 Developer Connect 中,此令牌称为读取访问令牌。
您负责在 Bitbucket 数据中心管理 Bitbucket 数据中心令牌的生命周期。为了保护您的源代码,您可以在创建令牌时设置到期日期。 如果您未设置到期日期,则令牌将保持有效,直到您在 Bitbucket 数据中心撤消该令牌为止。
- 创建一个具有
复制访问令牌,以便在后续过程中使用。
创建连接
本部分介绍了如何在 Developer Connect 和 Bitbucket 数据中心之间创建连接。如果您使用的是 Google Cloud 控制台,则还可以在完成连接设置后开始 向代码库添加链接。
如需创建新的 Bitbucket 数据中心连接,请选择以下选项之一:
控制台
按照以下步骤启动连接:
在 Google Cloud 控制台中,打开 Developer Connect。
Developer Connect 会显示 Git 代码库 页面。
- 如果您看到源代码管理提供方列表 :选择源代码管理提供方,开始配置您的第一个连接。点击 Bitbucket 数据中心卡片上的连接 。
如果您看到列出现有连接的表格:依次点击创建连接 > Bitbucket 数据中心 ,设置源代码管理提供商。
创建连接 页面随即打开。
对于区域,请为连接资源选择一个区域 。
- 对于名称,请输入新连接的名称。
在访问令牌 部分中,输入您的 Bitbucket 数据中心访问令牌:
管理员访问令牌:输入具有代码库管理员 范围访问权限的令牌。
读取访问令牌:输入具有代码库读取范围访问权限的令牌。
在主机网址 字段中,输入要连接到的主机的网址。
点击显示更多 以查看可选配置设置。
默认情况下,启用 Developer Connect 代理 复选框处于选中状态,以便 Developer Connect 可以充当代理,向 Bitbucket 数据中心发出 Git 调用。
在网络 部分中,对于网络类型 ,选择专用 网络 。
对于 CA 证书 ,点击 浏览 以上传您的自签名 证书。
您的证书大小不得超过 10 KB,并且应采用 PEM 格式(.pem、.cer 或 .crt)。如果此部分留空,系统将使用默认证书集。
在 Service Directory 服务 部分中,选择服务的位置:
- 在项目
your-project中 - 在另一个项目中
- 手动输入
如果您选择在另一个项目中 或手动输入,请指定 您的 Google Cloud 项目 ID。在下拉菜单中选择项目,或手动输入项目 ID。
- 在项目
区域:选择您的 Service Directory 服务的区域。为服务指定的区域必须与连接关联的区域一致。
命名空间:选择您的 Service Directory 服务的命名空间。
服务:选择 Service Directory 服务名称 在命名空间中。
可选:在加密 部分中,选择一个 CMEK 密钥来 加密 Developer Connect 创建的 Secret Manager Secret。
点击继续 按钮。Developer Connect 会创建您的连接。此过程可能需要几秒钟时间。
创建连接后,系统会显示关联代码库 页面。
按照以下步骤将代码库关联到您的连接:
在可用代码库列表中,选择要使用的代码库。
点击确定 。
点击关联 。
您的连接会添加到连接 页面,您的代码库 链接会添加到控制台中的代码库 页面。 Google Cloud 您可以随时向现有连接添加更多链接。
如果您要设置 Gemini Code Assist,请按照 配置和使用 Gemini Code Assist 代码自定义 中的步骤继续该过程。
gcloud
通过运行以下命令在 Secret Manager 中创建网络钩子 Secret,其中 WEBHOOK_SECRET_NAME 是网络钩子 Secret 的名称:
cat /proc/sys/kernel/random/uuid | tr -d '\n' | gcloud secrets create WEBHOOK_SECRET_NAME通过运行以下命令将访问令牌存储在 Secret Manager 中:
gcloud secrets create ADMIN_SECRET_NAME echo -n ADMIN_SECRET_DATA | gcloud secrets versions add ADMIN_SECRET_NAME --data-file=- gcloud secrets create READ_SECRET_NAME echo -n READ_SECRET_DATA | gcloud secrets versions add READ_SECRET_NAME --data-file=-替换以下内容:
- ADMIN_SECRET_NAME:用于存储管理员访问令牌的 Secret 的名称。
- ADMIN_SECRET_DATA:您的管理员访问令牌。
- READ_SECRET_NAME:用于存储 读取访问令牌的 Secret 的名称。
- READ_SECRET_DATA:您的读取访问令牌。
运行
gcloud developer-connect connections create命令,以创建与 Bitbucket 数据中心的连接:gcloud developer-connect connections create CONNECTION_NAME \ --location=REGION \ --bitbucket-data-center-config-host-uri=HOST_URI \ --bitbucket-data-center-config-authorizer-credential-user-token-secret-version=projects/PROJECT_ID/secrets/ADMIN_SECRET_NAME/versions/VERSION \ --bitbucket-data-center-config-read-authorizer-credential-user-token-secret-version=projects/PROJECT_ID/secrets/READ_SECRET_NAME/versions/VERSION \ --bitbucket-data-center-config-webhook-secret-version=projects/PROJECT_ID/secrets/WEBHOOK_SECRET_NAME/versions/VERSION \ --git-proxy-config-enabled替换以下内容:
- CONNECTION_NAME:连接的名称。
- REGION:连接要使用的区域。
- HOST_URI:Bitbucket 数据中心主机的 URI
,包括
https://前缀。 - PROJECT_ID:您的 Google Cloud 项目 ID。
- ADMIN_SECRET_NAME:包含管理员访问令牌的 Secret Manager Secret 的名称。
- READ_SECRET_NAME:包含读取访问令牌的 Secret Manager Secret 的名称。
- WEBHOOK_SECRET_NAME:包含网络钩子 Secret 的 Secret Manager Secret 的名称。
- VERSION:每个 Secret 的版本号。您可以将其设置为
latest,以使用最新版本号。 --git-proxy-config-enabled是一个可选标志,允许 Developer Connect 充当代理,向 Bitbucket 数据中心发出 Git 调用。在托管在专用网络中的 Bitbucket 数据中心源代码库上运行 Gemini Code Assist 代码自定义 时,您必须启用此功能。--github-enterprise-config-ssl-ca-certificate是一个可选标志,用于添加 SSL 证书,格式为$HOME/my-ssl-ca.txt。
Developer Connect 会完成与 Bitbucket 数据中心的连接。接下来, 关联到代码库。
使用现有连接关联到代码库
与 Bitbucket 数据中心建立连接后,您可以关联到代码库。您可以稍后重复执行这些步骤,以根据需要关联其他代码库。
如需在现有 Bitbucket 数据中心连接上创建代码库链接,请选择以下选项之一:
控制台
按照以下步骤创建与代码库的链接:
在 Google Cloud 控制台中打开代码库 页面。
点击关联代码库 。
关联 Git 代码库 窗格随即打开。
在连接列表中,选择一个连接。
点击继续 。
在代码库列表中,选择要关联到的代码库。
点击创建 。
Developer Connect 会创建代码库链接,并在 控制台 Google Cloud 中显示这些链接。
gcloud
通过运行以下命令创建与 Bitbucket 数据中心代码库的链接:
gcloud developer-connect connections git-repository-links create REPO_NAME \
--clone-uri=REPO_URI \
--connection=CONNECTION_NAME \
--location=REGION
替换以下内容:
- REPO_NAME:Developer Connect 与 Bitbucket 数据中心代码库之间的新链接的名称。
- REPO_URI:Bitbucket 数据中心内代码库的网址,
包括
https://前缀和.git后缀。 - CONNECTION_NAME:与 Bitbucket 数据中心的连接的名称。
- REGION:连接的区域。
Developer Connect 会创建代码库链接。
如需列出关联的代码库,请运行
developer-connect connections git-repository-linkslist
命令。
如果您要设置 Gemini Code Assist,请按照 配置和使用 Gemini Code Assist 代码自定义 中的步骤继续该过程。
后续步骤
- 完成 Gemini Code Assist 代码自定义的设置。
- 了解 Gemini Code Assist 如何帮助您加快软件开发速度。
- 探索可通过 Developer Connect 实现的其他集成。