Documentation Index
Fetch the complete documentation index at: https://mintlify-mintlify-cli-update-client-1777421729.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
一个自动化流程:当你将代码推送到主 branch 时自动更新文档。你可以在多个平台上搭建此工作流,包括 GitHub Actions 和 n8n。它会监控你的代码存储库,然后调用代理 API,在单独的文档存储库中更新文档。
此工作流连接两个独立的存储库:
- 代码存储库:用于存放应用程序代码。你将在此存储库上设置自动化触发器。示例包括后端 API、前端应用、SDK,或命令行界面 (CLI) 工具。
- 文档存储库:用于存放文档并连接到你的 Mintlify 项目。代理会在此存储库中创建包含文档更新的拉取请求 (PR;亦称“合并请求”/Merge Request) 。
本教程假设你的文档与应用程序代码位于不同的存储库中。如果你使用 monorepo,请修改工作流以定位存放文档的目录。
- 有人将代码推送到你的主分支。
- 工作流被触发。
- 工作流调用代理的 API 来更新你的文档。
- 代理在你的文档存储库中创建一个包含文档更新的拉取请求 (PR) 。
如果您的代码已在 GitHub 上,GitHub Actions 是最简单的选择。无需额外服务。GitHub Actions 前提条件
在代码存储库中安装 Mintlify 应用
在你的代码存储库中安装 Mintlify 应用,以便 agent 能够从代码库获取上下文信息。要将应用添加到新存储库:
- 在控制台中进入 Agent 页面。
- 点击 Add to New Organization。这会打开 GitHub 上的应用安装页面。
- 从列表中选择你要授予访问权限的仓库。
- 保存更改。
获取管理员 API 密钥
- 在控制台中进入 API keys 页面。
- 点击 Create Admin API Key。
- 将该密钥复制并安全保存。
构建 GitHub Actions 工作流
创建工作流文件
-
在代码仓库中创建一个新文件:
.github/workflows/update-docs.yml
-
添加以下工作流:
name: Update Docs
on:
push:
branches:
- main
jobs:
update-docs:
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v8
env:
MINTLIFY_API_KEY: ${{ secrets.MINTLIFY_API_KEY }}
PROJECT_ID: ${{ secrets.MINTLIFY_PROJECT_ID }}
with:
script: |
const { owner, repo } = context.repo;
const projectId = process.env.PROJECT_ID;
const apiKey = process.env.MINTLIFY_API_KEY;
if (!projectId || !apiKey) {
core.setFailed('Missing MINTLIFY_PROJECT_ID or MINTLIFY_API_KEY secrets');
return;
}
const url = `https://api.mintlify.com/v1/agent/${projectId}/job`;
const payload = {
branch: `mintlify/docs-update-${Date.now()}`,
messages: [
{
role: 'system',
content: 'You are an action runner that updates documentation based on code changes. You should never ask questions. If you are not able to access the repository, report the error and exit.'
},
{
role: 'user',
content: `Update the documentation for our recent pushes to main:\n\nRepository: ${owner}/${repo}`
}
],
asDraft: false
};
try {
const response = await fetch(url, {
method: 'POST',
headers: {
'Authorization': `Bearer ${apiKey}`,
'Content-Type': 'application/json'
},
body: JSON.stringify(payload)
});
if (!response.ok) {
throw new Error(`API request failed with status ${response.status}: ${await response.text()}`);
}
const reader = response.body.getReader();
const decoder = new TextDecoder();
let buffer = '';
while (true) {
const { done, value } = await reader.read();
if (done) break;
buffer += decoder.decode(value, { stream: true });
const lines = buffer.split('\n');
buffer = lines.pop() || '';
for (const line of lines) {
if (line.trim()) {
console.log(line);
}
}
}
if (buffer.trim()) {
console.log(buffer);
}
core.notice(`Documentation update job triggered for ${owner}/${repo}`);
} catch (error) {
core.setFailed(`Failed to create documentation update job: ${error.message}`);
}
添加密钥
- 在代码存储库中,依次点击 Settings → Secrets and variables → Actions。
- 点击 New repository secret 按钮。
- 添加以下机密:
- 名称:
MINTLIFY_API_KEY,Secret:您的 Mintlify 管理员 API 密钥
- 名称:
MINTLIFY_PROJECT_ID,Secret:您的 Mintlify 项目 ID (可在控制台的 API keys 页面找到)
更多信息请参阅 GitHub 文档中的在 GitHub Actions 中使用密钥。测试 GitHub Actions 自动化
-
在你的代码仓库中做一个小改动,并推送到 main 分支:
git add .
git commit -m "Test: trigger docs automation"
git push origin main
-
在代码仓库中打开 Actions 标签页,查看工作流的运行情况。
-
工作流运行完成后,查看你的文档仓库中是否已创建包含文档更新的新分支和拉取请求 (pull request) 。
GitHub Actions 故障排除
工作流未运行
- 请确认你已在代码仓库中启用 GitHub Actions。
- 在 Actions 标签页中查看错误信息。
- 确保工作流文件位于
.github/workflows/ 目录下,且文件扩展名为 .yml。
代理 API 返回 401 错误
- 请确认你的 API 密钥以
mint_ 开头。
- 检查 Authorization 请求头是否使用
Bearer mint_yourkey 格式。
- 确认该 API 密钥属于正确的 Mintlify 组织。
文档更新未显示
- 确认你已将文档仓库连接到 Mintlify 项目。
- 确认代理对文档存储库拥有写入权限。
- 在工作流日志中查看代理返回的错误信息。
n8n 提供可视化工作流编辑器,并可与多种服务集成。n8n 前提条件
- n8n 工作区
- Mintlify Enterprise 方案
- 已在你的代码存储库中安装 Mintlify 应用
- Mintlify 管理员 API 密钥
- 对存放您代码和文档的 GitHub 仓库拥有管理员权限
- GitHub 个人访问令牌
在代码存储库中安装 Mintlify 应用
在你的代码存储库中安装 Mintlify 应用,以便 agent 能够从代码库获取上下文信息。要将应用添加到新存储库:
- 在控制台中进入 Agent 页面。
- 点击 Add to New Organization。这会打开 GitHub 上的应用安装页面。
- 从列表中选择要授予访问权限的仓库。
- 保存更改。
获取管理员 API 密钥
- 在控制台中进入 API keys 页面。
- 选择 Create Admin API Key。
- 复制该密钥并妥善保存。
获取 GitHub 个人访问令牌
- 在 GitHub 中,进入 Settings。
- 点击 Developer settings。
- 点击 Personal access tokens (个人访问令牌) 。
- 点击 Tokens (classic)。
- 点击 Generate new token (classic)。
- 选择以下权限范围:
repo (对私有仓库具有完全控制权限)
admin:repo_hook (如果你希望由 n8n 创建 webhooks)
- 生成令牌并妥善保管。
更多信息请参阅 GitHub 文档中的创建个人访问令牌 (经典版) 。构建 n8n 工作流
创建 webhook 触发器
- 在 n8n 中创建一个新工作流。
- 添加一个 Webhook 节点。
- 配置 webhook:
- HTTP 方法:
POST
- 路径:
auto-update-documentation (或任何唯一路径)
- 认证: 无
- 响应: 立即返回
- 保存该工作流。
- 复制生产环境的 webhook URL,类似如下:
https://your-n8n-instance.app.n8n.cloud/webhook/auto-update-documentation
设置 GitHub webhook
- 在 GitHub 上打开您的代码存储库。
- 点击 Settings。
- 点击 Webhooks。
- 点击 Add webhook 按钮。
- 配置 webhook:
- Payload URL:在此粘贴你的 n8n webhook URL
- Content type:
application/json
- Which events would you like to trigger this webhook? (希望由哪些事件来触发此 webhook?)
- 选择 Let me select individual events.
- 仅选择 Push events。
- 选择 Active
- 点击 Add webhook 按钮。
筛选主 branch 推送
在 webhook 之后添加代码节点,以筛选推送到 main 分支的事件并提取相关信息。
- 添加一个 Code 节点。
- 将其命名为 “Filter main pushes.”
- 将模式设置为 Run Once for All Items (仅对所有条目运行一次) 。
- 添加以下 JavaScript 代码:
const webhookData = $input.first().json.body;
// 仅在推送到 main 分支时继续
if (webhookData.ref !== "refs/heads/main") {
return [];
}
// 提取信息
const repository = webhookData.repository;
const pusher = webhookData.pusher;
// 为 agent 构建消息
const agentMessage = `更新 ${repository.name} 中推送到 main 分支的变更文档。始终编辑文件并创建拉取请求(PR;亦称"合并请求"/Merge Request)。`;
return {
json: {
codeRepoName: repository.full_name,
codeRepoShortName: repository.name,
agentMessage: agentMessage
}
};
此代码会在推送不是到 main 分支时停止工作流,从 GitHub webhook 中提取所有相关信息,并为 agent API 创建消息。调用 Agent API
添加 HTTP 请求节点以创建文档任务。
-
添加一个 HTTP 请求节点。
-
将其命名为 “Create agent job.”
-
配置请求:
- 方法:
POST
- URL:
https://api.mintlify.com/v1/agent/YOUR_PROJECT_ID/job (将 YOUR_PROJECT_ID 替换为你在 API keys 页面中的项目 ID)
- 认证:Generic Credential Type → Header Auth
- 创建一个新的凭证:
- Name:
Authorization
- Value:
Bearer mint_YOUR_API_KEY (替换为你的 API 密钥)
- Send Body:On (启用请求体)
- Body Content Type:JSON (请求体内容类型)
- Specify Body:Using JSON (使用 JSON 指定请求体)
- 添加以下 JSON:
{
"branch": "docs-update-from-{{ $json.codeRepoShortName }}-{{ $now.toISOString() }}",
"messages": [
{
"role": "system",
"content": "{{ $json.agentMessage }}"
}
],
"asDraft": false
}
代理会在您的文档存储库中创建一个拉取请求 (PR;亦称”合并请求”/Merge Request) ,使用包含源存储库名称和时间戳的描述性 branch 名称。激活工作流
- 保存工作流。
- 将其设置为启用状态。
您的工作流现在正在监控代码存储库向 main 分支的推送。测试 n8n 自动化
-
在代码存储库中创建一个测试 branch:
git checkout -b test-docs-automation
-
做一个小改动并提交:
git add .
git commit -m "Test: trigger docs automation"
git push origin test-docs-automation
-
在 GitHub 上创建一个拉取请求 (PR;亦称“合并请求”/Merge Request) 。
-
合并该拉取请求 (PR;亦称“合并请求”/Merge Request) 。
验证自动化
您应该会看到一个新的 n8n 执行记录,其中所有节点都已成功完成,同时在您的文档存储库中会创建一个新 branch 和拉取请求(PR;亦称”合并请求”/Merge Request)。n8n 故障排除
Webhook 未触发
- 确认该工作流在 n8n 中处于激活状态。
- 在 GitHub 仓库的“Settings → Webhooks → Recent Deliveries”中查看响应状态码。
- 确保 webhook URL 与你的 n8n webhook URL 完全一致。
代理 API 返回 401 错误
- 请确认你的 API 密钥以
mint_ 开头。
- 检查 Authorization 请求头是否使用
Bearer mint_yourkey 格式。
- 确认该 API 密钥属于正确的 Mintlify 组织。
GitHub 401 错误
- 确认你的令牌已包含
repo 权限范围。
- 确认该 token 尚未过期。
- 请确认你在发往 GitHub 的请求中包含了
User-Agent 请求头。