# 项目集成工作流程

> Integrate Unity Build Automation with external services for notifications and workflow automation.

使用 Unity Build Automation (UBA) 可将 Unity Cloud 项目与外部服务连接，以便您可以自动接收有关构建状态和其他重要事件的通知。这些集成通过实时向团队通报情况，有助于简化工作流程。

要创建新的项目集成，请完成以下任务：

1. [访问项目集成](#access-project-integrations)
2. [创建集成](#create-the-integration)
3. [订阅服务和事件](#subscribe-to-services-and-events)
4. [保存集成](#save-the-integration)
5. [测试集成](#test-your-integration)
6. [编辑和管理集成](#edit-and-manage-your-integration)

## 访问项目集成##access-project-integrations

Project integrations（项目集成）页面会列出项目的所有已配置集成及其当前状态：

1. 在 [Unity Dashboard](https://cloud.unity.com) 中，选择 **Administration（管理）** 选项卡。
2. 在 **Integrations（集成）** 下，选择 **Project Integrations（项目集成）**。

### 支持的集成##supported-integrations

UBA 目前支持以下集成：

* **Discord**
* **Microsoft Teams**
* **Slack**
* **Webhook**

> **Note:**
>
> **注意**：对于高级配置（例如自定义 Slack 消息格式），请参阅要集成的特定服务的文档。

## 创建集成##create-the-integration

1. 在 **Project integrations（项目集成）** 页面上，选择 **New integration（新建集成）**。
2. 从下拉菜单中选择要设置的集成类型。
3. 输入所选集成服务的连接详细信息和设置。

### 配置 Webhook 集成##configure-a-webhook-integration

对于使用自定义 Webhook 发送通知的第三方集成，需要配置以下字段：

| 字段                                                  | 描述                                                                                        |
| --------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| **Display name（显示名称）**                              | 用于标识 Webhook 集成的名称。                                                                       |
| **Webhook URL**                                     | UBA 发送 `HTTP POST` 请求的终端。确保可从公共互联网或私有网络（具体取决于您的设置）访问此 URL。                                |
| **Authorization secret（授权密钥）**（可选）                  | UBA 包含在请求标头或有效负载中的密钥令牌，具体取决于您选择的**授权类型**。此密钥令牌用于验证传入的请求是否源自 UBA。                          |
| **Authorization type（授权类型）**                        | UBA 发送授权密钥的方式：\_ **Shared secret（共享密钥）**：UBA 在标头或有效负载字段（因服务而异）中包含该密钥。\_ 根据您的设置，可能会出现其他选项。 |
| **Content type（内容类型）**                              | UBA 用于发送数据的格式。例如，`application/json`。                                                      |
| **Disable SSL/TLS verification（禁用 SSL/TLS 验证）**（可选） | 如果启用，则 UBA 不会验证 SSL 证书。这对于本地测试或自签名证书很有用，但不建议在生产环境中使用。                                     |

> **Note:**
>
> **注意**：部分服务需要共享密钥或令牌来验证传入的请求是否合法。确保在 Unity 端和外部服务端均正确配置此属性。


**custom-webhook-config:**
![custom-webhook-config](/api/media?file=/build-automation/media/images/build-automation/integrations/custom-webhook.png "UBA * 自定义 Webhook")

## 订阅服务和事件##subscribe-to-services-and-events

配置集成时，选择要订阅和接收通知的服务和事件。对于 UBA，可从以下事件中进行选择：

* 构建成功
* 构建失败
* 构建已排入队列
* 构建已启动
* 版本已取消
* 版本已重新启动
* 已上传本地构建

> **Note:**
>
> **注意**：请仅订阅需要的事件。如果订阅每个事件，可能会导致通道出现不必要的噪点。


**uba-events:**
![uba-events](/api/media?file=/build-automation/media/images/build-automation/integrations/uba-integration-events.png "UBA * 集成事件")

### 保存集成##save-the-integration

选择 **Create（创建）** 可将新集成添加到 **Project Integrations（项目集成）** 列表中。

> **Note:**
>
> **注意**：对于 Slack 或 Discord 集成，请选择 **Authenticate & create（进行身份验证并创建）**，以在保存集成之前通过外部服务进行身份验证。

## 测试集成##test-your-integration

1. 在 Unity Build Automation 中触发构建。例如，提交代码或手动开始构建。
2. 验证外部服务（例如 Slack 或 Discord 通道）是否收到了相应的通知。

## 编辑和管理集成##edit-and-manage-your-integration

创建集成后，可从 **Project Integrations（项目集成）** 页面管理集成：

* **Edit（编辑）**：更新集成的名称、Webhook URL 或订阅的事件。
* **Disable（禁用）**：在不完全移除集成的情况下临时禁用通知。
* **Delete（删除）**：从项目中永久移除集成。
