本指南仅涉及为自动化提供支持的 OAuth 集成。你必须使用部署令牌单独配置部署端连接(用于内容同步和预览),请参阅 GitLab 指南。OAuth 集成依赖于部署端连接。
前置条件
- 拥有自托管 GitLab 实例的管理员权限。
- 你的 GitLab 实例必须可以从
https://app.mintlify.com访问。位于 VPN 之后或被防火墙阻止公网入站访问的实例无法使用。 - 你的 Mintlify 组织已启用自托管 GitLab 功能。如果你在 Git 设置控制台页面中未看到 Self-hosted GitLab 部分,请联系支持团队。
设置连接
Register an OAuth application on your GitLab instance
在自托管 GitLab 中,以管理员身份登录并依次前往 Admin Area > Applications > Add new application。使用以下值配置应用:
- Name:
Mintlify - Redirect URI:
https://app.mintlify.com/api/gitlab-oauth/callback - Trusted:保持未勾选。将应用标记为 Trusted 会跳过每位用户的同意界面;保持未勾选状态可在每位用户首次连接时显示正常的授权提示。
- Confidential:勾选。Mintlify 是服务端客户端,会对密钥保密。
- Scopes:选择
api、read_repository和write_repository。代理会使用这些权限读取项目元数据、克隆存储库以及推送提交。
Register the instance in Mintlify
在 Mintlify 控制台中,打开 Settings > Git settings,找到 GitLab OAuth 下的 Self-hosted GitLab 部分。点击 Connect Self-Hosted GitLab 并输入:
- GitLab instance URL:你的 GitLab 实例的公网 URL,例如
https://gitlab.your-company.com。Mintlify 在交换令牌和调用 GitLab API 时会通过此 URL 访问你的实例。 - OAuth application client ID:上一步中的 Application ID。
- OAuth application client secret:上一步中的 Secret。
Authorize
点击 Authorize self-hosted GitLab。GitLab 会将你重定向至你的实例,必要时提示登录,并显示列出所请求权限范围的同意界面。在 GitLab 上点击 Authorize 之后,你会被重定向回 Mintlify,新建的连接将显示在已安装列表中,并以你的实例主机名作为标识。
Choose projects
在控制台中展开该连接。Mintlify 会列出授权用户拥有 Maintainer 或更高访问权限的每个群组,以及一个 Personal projects 条目(用于用户个人命名空间下的项目)。勾选每个应参与自动化的项目旁的复选框。Mintlify 会在项目上注册 webhook,生成一个密钥令牌,并将其加密存储。从那时起,Mintlify 会接收你的实例针对该项目发送的推送和合并请求事件。
连接的用户必须在项目上具有 Maintainer 角色,Mintlify 才能在自动化运行期间生成短期项目访问令牌。没有 Maintainer 权限时,代理可以读取但无法推送提交或发起合并请求。
轮换凭据
故障排查
Webhook 注册失败:Invalid url given
https://app.mintlify.com/gitlab-oauth-webhook)。自托管实例会拒绝”本地”URL,除非管理员明确允许。
修复方法:在 GitLab 管理区域中,依次前往 Settings > Network > Outbound requests,启用 Allow requests to the local network from webhooks and integrations。如果你的网络策略阻止 app.mintlify.com,请联系网络管理员,允许出站 HTTPS 流量到达该主机。
如果你在授权时没有看到 GitLab 的同意对话框,可能是以下原因之一:
- 该应用在 GitLab 上带有 Trusted 标记。Trusted 应用会跳过所有用户的同意环节。如果你希望用户看到并确认权限范围,请在应用设置中取消勾选 Trusted。
- 你的 GitLab 用户之前已使用相同的权限范围授权了该应用。GitLab 会记住先前的授权,并在后续授权时跳过同意环节。请在 User settings > Applications > Authorized applications 中撤销该应用的授权,以再次查看同意界面。