17 配置 GitLab 访问
为 Claude 创建独立的 GitLab 身份,使其可以作为服务账号读取项目、管理 Issue、审查 Merge Request 和检查流水线。涵盖创建账号、范围控制、生成令牌和添加到包。
export const BetaNote = () => Claude Tag is in public beta. Features and behavior described here may change before general availability.;
连接 GitLab 让 Claude 从包作用域下的任何频道通过 GitLab API 读取仓库内容、管理 Issue、审查和评论 Merge Request 以及检查流水线状态。与 GitHub 不同,GitLab 中没有需要安装的 Claude 应用。相反,你为 Claude 创建独立的 GitLab 用户,并将该用户的个人访问令牌添加到 Access bundle 中。
专用服务账号让 Claude 的 GitLab 活动归属于你控制的单一身份。你通过为该账号授予成员身份来决定它可以访问哪些组和项目(就像为一个人做的那样),你可以随时撤销或重新限定其范围而不影响任何人的访问。
17.1 前提条件
- Claude 组织的 Owner 角色以创建 Access bundle;Admin 可以向已存在的包添加凭据。
- 在 GitLab 中有创建用户(或在提供该功能的版本上创建服务账号)以及将该用户添加到 Claude 应访问的组或项目的权限。
- 一个用于存放凭据的 Access bundle。如果还没有,先创建一个。
17.2 为 Claude 创建专用 GitLab 账号
创建一个仅为 Claude 存在的 GitLab 用户,例如 claude@yourcompany.example.com。在 GitLab Premium 或 Ultimate 上,服务账号是最简洁的选择,因为它明确标识为非人类。在其他版本上,普通用户的工作方式相同;将其视为一个 bot 席位。
将账号的显示名称和头像设置为你希望团队成员在 Claude 的评论和 Issue 活动中看到的样式。
17.3 授予账号对你的组和项目的访问权限
将服务账号作为成员添加到 Claude 应工作的每个 GitLab 组或项目中。在组级别授予通常比逐个添加到项目更简单,这意味着该组中的新项目无需另一次授权即可访问。
你授予的角色决定哪些 API 调用会成功。授予覆盖你想让 Claude 做的事情的最低角色:读取代码和浏览 Issue 及 Merge Request 需要的权限低于创建 Issue、发布审查评论或操作流水线。参见 GitLab 的权限参考了解每个角色允许的操作。
17.4 生成个人访问令牌
为该账号创建个人访问令牌。对于 GitLab.com 服务账号,从组的服务账号设置或通过 API 创建令牌;对于普通 bot 用户,登录它并从其个人资料创建令牌。令牌以 glpat- 开头。
| Scope | 何时授予 |
|---|---|
api |
读写。Claude 创建和更新 Issue、发布评论和操作流水线所需。 |
read_api |
只读。如果你希望 Claude 仅浏览和回答问题但永远不写入,请使用此选项而非 api。 |
设置符合你的轮换策略的过期时间,并将令牌存储在你可以检索一次的地方;GitLab 仅在创建时显示它。
组访问令牌和项目访问令牌也可以在同一个字段中使用。推荐使用服务账号方式,因为一个令牌覆盖你添加账号的每个组,且评论和 Issue 上的身份由你命名。组或项目令牌范围仅限于该单个组或项目,并显示在 GitLab 生成的 bot 名称下。
17.5 将令牌添加到 Access bundle
在 [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag),打开 **Access bundles**,点击进入包,转到 **Credentials**。
点击 **GitLab** 旁边的 **Connect**,将令牌粘贴到 **Personal access token** 中。
如果你的组织插件市场包含 GitLab 插件,在包的 **Plugins** 标签上添加它,让 Claude 知道如何调用 GitLab API。参见[附加插件](../admins/add-connections.qmd#attach-plugins)。没有插件的连接也能工作,插件增加了现成的工作流。
令牌由 Agent Proxy 持有,并在每次向你的 GitLab 主机的 API 请求时注入。模型和会话沙箱永远看不到它。
17.6 自托管 GitLab
自托管 GitLab 实例在可从公共互联网访问时受支持。在 Connect GitLab 表单中,打开 Advanced 标签并在 Allowed websites 下添加你实例的主机名;gitlab.com 为 GitLab SaaS 预设。私有网络上没有公共地址的实例无法连接。
17.7 验证 GitLab 访问
- GitLab 列在包的 Credentials 标签下。
- 在包作用域下的频道中,
@Claude what can you access from this channel?返回 GitLab。 - 在同一频道中,要求 Claude 列出你某个 GitLab 项目中的开放 Issue。Claude 无需提示凭据即可返回。
17.8 相关资源
- 连接 GitLab:凭据字段参考及 GitLab 与 GitHub 的区别
- 为 Claude 配置访问:完整的凭据和包参考
- 配置 GitHub 访问:GitHub App 路径,两者不同