> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# GitLab 自托管集成

> 将 Devin 连接到自托管 GitLab 实例

<div id="overview">
  ## 概述
</div>

本指南将完整介绍如何将 **GitLab 实例** 集成到 Devin 中，包括 **Admin 设置** 和 **用户设置**。

该集成分为两个部分：

1. **Admin 设置**
   * 将组织的自托管 GitLab 实例连接到 Devin
   * 设置服务账户
   * 配置代码仓库访问权限
   * 注册 OAuth，以便用户关联自己的 GitLab 账户
2. **用户设置**
   * 将单个用户的 GitLab 账户关联到其 Devin 账户

<Note>
  必须先完成Admin 设置，用户才能关联其 GitLab 账户。只有 Enterprise Admin 可以执行Admin 设置步骤。
</Note>

***

<div id="part-1-admin-setup">
  ## 第 1 部分：Admin 设置
</div>

<div id="step-1-create-a-service-account-in-gitlab">
  ### 步骤 1：在 GitLab 中创建服务账户
</div>

在 GitLab 中：

1. 进入正确的 **GitLab 组**
2. 导航到 **Settings**
3. 打开 **Service Accounts**
4. 创建一个新的服务账户

Devin 将使用此服务账户访问 GitLab 中的代码仓库。

<Frame>
  <img src="https://mintcdn.com/cognitionai/AnsrXvUO6uX9lwu8/images/enterprise/gitlab/gitlab-create-service-account.png?fit=max&auto=format&n=AnsrXvUO6uX9lwu8&q=85&s=e81fed639122165593233b0e2e959318" alt="在 GitLab 中创建服务账户" width="3158" height="1980" data-path="images/enterprise/gitlab/gitlab-create-service-account.png" />
</Frame>

***

<div id="step-2-add-the-service-account-as-a-group-member">
  ### 步骤 2：将服务账户添加为组成员
</div>

仍在 GitLab 中：

1. 前往该组的**成员**页面

<Frame>
  <img src="https://mintcdn.com/cognitionai/AnsrXvUO6uX9lwu8/images/enterprise/gitlab/gitlab-group-members.png?fit=max&auto=format&n=AnsrXvUO6uX9lwu8&q=85&s=8a205b2d0ea97565ec9e4dbaca80ad87" alt="GitLab 组成员页面" width="894" height="1156" data-path="images/enterprise/gitlab/gitlab-group-members.png" />
</Frame>

2. 将服务账户添加为该组的成员
3. 为其授予 **Developer** 角色

这是必要的，这样服务账户才能正确访问代码仓库。

***

<div id="step-3-generate-a-personal-access-token-for-the-service-account">
  ### 步骤 3：为服务账户生成个人访问令牌
</div>

创建服务账户后：

1. 找到新创建的服务账户
2. 点击三个点 > **管理访问令牌** > **生成新的个人访问令牌** > 在访问作用域中选择 **api**
3. 复制该令牌并妥善保管

<Note>
  请确保你选择的是服务账户的令牌，而不是在你的用户偏好设置中找到的个人访问令牌。你需要让 Devin 以服务账户的身份执行操作，而不是以你的身份执行。在 Devin 中添加 GitLab 连接时，你将使用此令牌。
</Note>

***

<div id="step-4-add-the-gitlab-connection-in-devin">
  ### 步骤 4：在 Devin 中添加 GitLab 连接
</div>

在 Devin 中：

1. 前往 **企业设置**
2. 打开 **连接**
3. 添加新连接
4. 输入：
   * **自托管 GitLab URL** (如适用)

<Frame>
  <img src="https://mintcdn.com/cognitionai/AnsrXvUO6uX9lwu8/images/enterprise/gitlab/gitlab-add-connection.png?fit=max&auto=format&n=AnsrXvUO6uX9lwu8&q=85&s=e7425687734160e1004131a22b9d1d14" alt="添加 GitLab 连接 URL" width="3160" height="1970" data-path="images/enterprise/gitlab/gitlab-add-connection.png" />
</Frame>

* 服务账户的**个人访问令牌**

这会创建企业级 GitLab 连接。

***

<div id="step-5-configure-webhook">
  ### 步骤 5：配置 Webhook
</div>

配置 Webhook 后，Devin 就能在 GitLab 中发生特定事件时 (例如创建或更新合并请求，以及在合并请求中发表评论) 自动接收实时通知。

要配置 Webhook：

1. 在 **企业设置** > **连接** 中，找到你刚刚添加的 GitLab 实例
2. 点击 **管理** 下拉菜单
3. 选择 **配置 Webhook**
4. 按照提供的命令完成设置

<Frame>
  <img src="https://mintcdn.com/cognitionai/pyEbN3xdufu0Z31G/images/enterprise/gitlab/gitlab-configure-webhook.png?fit=max&auto=format&n=pyEbN3xdufu0Z31G&q=85&s=d2e01d6fd89ca40302f9ea9ebf61848b" alt="配置 Webhook" width="452" height="388" data-path="images/enterprise/gitlab/gitlab-configure-webhook.png" />
</Frame>

配置完成后，Devin 就可以实时响应 GitLab 事件，而不必依赖定期轮询。

***

<div id="step-6-verify-repository-access">
  ### 步骤 6：验证代码仓库访问权限
</div>

添加连接后：

1. 确认服务账户有权访问你要使用的代码仓库
2. 在 Devin 中，如果代码仓库没有立即显示，请手动刷新代码仓库列表
3. 前往 **企业代码仓库**
4. 选择正确的组织

<Frame>
  <img src="https://mintcdn.com/cognitionai/AnsrXvUO6uX9lwu8/images/enterprise/gitlab/gitlab-enterprise-repositories.png?fit=max&auto=format&n=AnsrXvUO6uX9lwu8&q=85&s=ef2b4392c4b1fdf004a26f2304576959" alt="企业代码仓库" width="3164" height="1980" data-path="images/enterprise/gitlab/gitlab-enterprise-repositories.png" />
</Frame>

5. 打开 **管理权限**
6. 添加相关代码仓库，并授予适当的 **读取/写入** 权限

<Frame>
  <img src="https://mintcdn.com/cognitionai/AnsrXvUO6uX9lwu8/images/enterprise/gitlab/gitlab-manage-permissions.png?fit=max&auto=format&n=AnsrXvUO6uX9lwu8&q=85&s=e833b6573eedb18bf62079456d077b74" alt="管理代码仓库权限" width="540" height="128" data-path="images/enterprise/gitlab/gitlab-manage-permissions.png" />
</Frame>

<Note>
  如果有代码仓库缺失，可能是因为 Devin 会定期刷新代码仓库列表，而不是实时刷新。
</Note>

***

<div id="part-2-enable-user-linking-for-self-hosted-gitlab">
  ## 第 2 部分：为自托管 GitLab 启用用户关联
</div>

<div id="step-7-register-an-oauth-application-on-the-self-hosted-gitlab-instance">
  ### 步骤 7：在自托管 GitLab 实例上注册 OAuth 应用程序
</div>

为了让每位用户都能将自己的 GitLab 身份与 Devin 关联，Admin 必须为该自托管 GitLab 实例注册一个 OAuth 应用。

在 Devin 中：

1. 前往企业 GitLab 连接区域
2. 打开 **Advanced**
3. 前往自托管 GitLab 部分
4. 启动 **注册 OAuth 应用程序** 流程

<Frame>
  <img src="https://mintcdn.com/cognitionai/EHv4sbxOtqeRVSwT/images/enterprise/gitlab/gitlab-register-oauth.png?fit=max&auto=format&n=EHv4sbxOtqeRVSwT&q=85&s=58275e975adaff88336802286e89eb8b" alt="注册 OAuth 应用程序" width="1428" height="1324" data-path="images/enterprise/gitlab/gitlab-register-oauth.png" />
</Frame>

***

<div id="step-8-complete-oauth-app-registration-in-gitlab">
  ### 步骤 8：在 GitLab 中完成 OAuth 应用注册
</div>

按照注册模态窗口中的链接打开 GitLab 应用程序表单。按下图所示填写各项字段：

1. 将 **Name** 和 **Redirect URI** 设置为与 Devin 模态窗口中显示的内容完全一致
2. 勾选 **Confidential** 复选框
3. 选择 **api** 作用域
4. 点击 **Save application**

<Frame>
  <img src="https://mintcdn.com/cognitionai/hGn6kEeruNGdZWya/images/enterprise/gitlab/gitlab-oauth-app-settings.png?fit=max&auto=format&n=hGn6kEeruNGdZWya&q=85&s=f30a422acffd08b475cfdd4d70be4f0b" alt="GitLab OAuth 应用程序设置" width="2060" height="1792" data-path="images/enterprise/gitlab/gitlab-oauth-app-settings.png" />
</Frame>

5. 从 GitLab 复制 **Application ID** 和 **Application Secret**
6. 返回 Devin，将这些值粘贴到注册模态窗口中
7. 点击 **Register**

至此，完成用户身份关联所需的管理员端设置。

***

<div id="part-3-organization-membership-requirement">
  ## 第 3 部分：组织成员资格要求
</div>

<div id="step-9-make-sure-the-user-belongs-to-the-correct-devin-organization">
  ### 步骤 9：确保用户属于正确的 Devin 组织
</div>

用户必须先成为拥有 GitLab 代码仓库权限的 Devin 组织成员，才能关联其 GitLab 账户。

在 Devin 中：

1. 前往组织成员页面
2. 确认该用户属于拥有 GitLab 代码仓库权限的 Devin 组织
3. 如果不属于，请先将其添加到该组织

<Note>
  **个人连接只会显示用户所属组织的集成。** 如果用户不在拥有 GitLab 代码仓库权限的 Devin 组织中，GitLab 集成可能完全不会显示。
</Note>

***

<div id="part-4-end-user-setup">
  ## 第 4 部分：终端用户设置
</div>

<div id="step-10-open-personal-connections">
  ### 步骤 10：打开个人连接
</div>

以 Devin 终端用户身份：

1. 前往 **个人连接**
2. 查找自托管 GitLab 集成

如果未显示，请先检查所在组织的成员身份。

***

<div id="step-11-link-the-users-gitlab-account">
  ### 步骤 11：关联用户的 GitLab 账户
</div>

集成显示出来后：

1. 选择自托管的 GitLab 连接
2. 完成关联流程
3. 将用户的 **GitLab 账户** 关联到其 **Devin 账户**

完成后，Devin 应该就能以该用户的身份执行 GitLab 操作。
