您可以使用 Pub/Sub 接收有关 Google Cloud 代码库更改的通知。这些通知会在用户创建新代码库、删除代码库或将更改推送到现有代码库时通知您。您可以选择配置特定代码库或整个 Google Cloud 项目的通知。
要了解有关 Pub/Sub 的更多信息,请参见 什么是 Pub/Sub?
准备工作
- 按照 快速入门:添加通知 以创建项目、安装 Git 并初始化 Google Cloud CLI。
- 验证您具备创建主题和订阅所需的权限。如需了解更多信息,请参阅访问权限控制。
- 确保您拥有可以发布到主题的服务账号。默认情况下,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
文档。
添加主题
您可以将 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 默认服务账号。
移除主题
您可以移除项目或代码库与 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 访问权限控制角色。