您可以使用 Pub/Sub 接收有关 Google Cloud 代码库更改的通知。这些通知会在用户创建新代码库、删除代码库或将更改推送到现有代码库时通知您。您可以选择配置特定代码库或整个 Google Cloud 项目的通知。
要了解有关 Pub/Sub 的更多信息,请参见 什么是 Pub/Sub?
准备工作
- 如果您尚未创建代码库,请先创建一个。
- 验证您具备创建主题和订阅所需的权限。如需了解更多信息,请参阅访问权限控制。
- 确保您拥有可以发布到主题的服务账号。默认情况下,Cloud Source Repositories 使用 Compute Engine 默认服务账号来发布消息。如需了解详情,请参阅 为 Cloud Source Repositories的 Pub/Sub 通知。
创建 Pub/Sub 主题
对于您要为其通知的每个 Cloud Source Repositories 项目或代码库,您需要创建一个 Pub/Sub 主题。您可以使用 Google Cloud 控制台或 gcloud
命令行工具创建主题。
创建主题时,您需要使用代码库的限定 URI。 限定 URI 的格式如下:
projects/[PROJECT_ID]/topics/[TOPIC_NAME]
其中:
[PROJECT_ID]
是您的 Google Cloud 项目 ID。[TOPIC_NAME]
是主题的名称。
若要创建主题,请按照下列步骤操作。
控制台
在 Google Cloud 控制台中,进入 Pub/Sub 主题页面。
点击创建主题。
在主题名称中输入 URI:
projects/[PROJECT_ID]/topics/[TOPIC_NAME]
其中:
[PROJECT_ID]
是您的 Google Cloud 项目 ID。[TOPIC_NAME]
是主题的名称。
点击创建。
主题详细信息 页面打开。
gcloud
在终端窗口中,运行以下命令:
gcloud pubsub topics create projects/[PROJECT_ID]/topics/[TOPIC_NAME]
其中:
[PROJECT_ID]
是您的 Google Cloud 项目 ID。[TOPIC_NAME]
是主题的名称。
如需详细了解 gcloud pubsub topics
命令,请参阅 topics
文档。
创建 Pub/Sub 订阅
要接收发布到主题的事件,您需要创建 Pub/Sub 订阅。
订阅者应用会接收来自代码库主题的消息。订阅者可以通过发送通知或触发构建来响应您的代码库事件。
若要创建订阅,请按照下列步骤操作。
控制台
在 Google Cloud 控制台中,进入 Pub/Sub 主题页面。
点击项目主题的名称。
点击创建订阅。
将打开 向主题添加订阅 的页面。
输入订阅名称:
projects/[PROJECT_ID]/subscriptions/[SUBSCRIPTION_NAME]
其中:
[PROJECT_ID]
是您的 Google Cloud 项目 ID。[SUBSCRIPTION_NAME]
是 Pub/Sub 订阅的名称。
将 “传送类型” 的设置保留为 拉取
点击创建。
gcloud
在终端窗口中,运行以下命令:
gcloud pubsub subscriptions create [SUBSCRIPTION_NAME] --topic=[TOPIC_NAME]
其中:
[SUBSCRIPTION_NAME]
是 Pub/Sub 订阅的名称。[TOPIC_NAME]
是主题的名称。
如需详细了解 gcloud pubsub subscriptions
命令,请参阅 subscriptions
文档。
添加主题
您可以使用 Google Cloud CLI 将 Pub/Sub 主题与 Google Cloud 项目或代码库相关联。
要将主题与整个项目关联,请输入以下命令:
gcloud source project-configs update --add-topic=[TOPIC_NAME] --service-account=[SERVICE_ACCOUNT_NAME]
其中:
[TOPIC_NAME]
是 Pub/Sub 主题的名称。[SERVICE_ACCOUNT_NAME]
是您的 Cloud Build 服务账号的名称。
要将主题与特定代码库相关联,请输入以下命令:
gcloud source repos update [REPOSITORY_NAME] --add-topic=[TOPIC_NAME] --service-account=[SERVICE_ACCOUNT_NAME]
其中:
[REPOSITORY_NAME]
是您的 Google Cloud 代码库的名称。[TOPIC_NAME]
是 Pub/Sub 主题的名称。[SERVICE_ACCOUNT_NAME]
是您的 Cloud Build 服务账号的名称。
服务账号必须与代码库位于同一项目中,并且必须具有 pubsub.topics.publish
权限才能发布有关指定主题的消息。您必须对服务账号拥有 iam.serviceAccounts.actAs
权限。如果未指定服务账号,则默认为 Compute Engine 默认服务账号。
移除主题
您可以使用 Google Cloud CLI 移除项目或代码库与 Pub/Sub 主题之间的关联。
要从整个项目中移除主题,请输入以下命令:
gcloud source project-configs update --remove-topic=[TOPIC_NAME]
要从特定代码库中移除主题,请输入以下命令:
gcloud source repos update [REPOSITORY_NAME] --remove-topic=[TOPIC_NAME]
设置主题格式
Cloud Source Repositories 的通知可以使用 JSON 或 Protocol Buffers 格式。要设置主题的格式,可以在添加主题时使用 --message-format
参数:
gcloud source project-configs update --add-topic=[TOPIC_NAME] --message-format=[json|protobuf]
您也可以使用 set-format
命令:
gcloud source project-configs update --update-topic=[TOPIC_NAME] --message-format=[json|protobuf]
后续步骤
- 了解有关 Cloud Source Repositories 的Pub/Sub 通知 的更多信息。
- 阅读 Pub/Sub 文档。
- 如需深入了解 Pub/Sub,请参阅 什么是 Pub/Sub?
- 详细了解 Pub/Sub 访问权限控制角色。