内容
# 部署门控
[](https://github.com/ITeachYouAI/deploy-gate/actions/workflows/ci.yml)
**预部署检查清单 MCP 服务器 - 捕获 CI 遗漏的内容。**
部署门控是一款模型上下文协议(MCP)服务器,用于在部署前对您的项目运行自动预部署检查。每个检查都追溯到一个实际的错误,该错误已投入生产。
CI 捕获语法错误和测试失败。部署门控捕获 CI 无法捕获的内容:泄露的密钥、吞噬错误的空捕获块、缺少的环境配置等。
## 工作原理
1. 部署门控自动检测项目的技术栈(移动、Web、CLI、基础设施)
2. 它运行阶段性检查:**预工程**、**预测试**和**预部署**
3. 如果任何检查失败,门控保持关闭 - 您需要在部署前进行修复
4. 每个检查都有一个 `from` 字段,链接到激发它的实际事件
## 安装
### 作为 MCP 服务器(推荐)
将以下内容添加到您的 Claude Code MCP 配置(`~/.claude.json` 或项目 `.mcp.json`):
```json
{
"mcpServers": {
"deploy-gate": {
"command": "npx",
"args": ["@iteachyouai/deploy-gate"]
}
}
}
```
### 从源码安装
```bash
git clone https://github.com/ITeachYouAI/deploy-gate.git
cd deploy-gate
npm install
npm run build
```
## 工具
部署门控公开了 4 种 MCP 工具:
### `run_checklist`
为特定阶段(或所有阶段)运行检查。
| 参数 | 类型 | 是否必需 | 描述 |
| ------------- | -------------------------------------------------- | -------- | ---------------------------- |
| `phase` | `"pre-eng" \| "pre-test" \| "pre-deploy" \| "all"` | 是 | 运行哪个阶段 |
| `projectPath` | `string` | 是 | 项目的绝对路径 |
返回每个检查的通过/失败结果、摘要和门控是否开启。
### `check_deploy_ready`
快速的布尔检查:该项目是否准备好部署?
| 参数 | 类型 | 是否必需 | 描述 |
| ------------- | -------- | -------- | ---------------------------- |
| `projectPath` | `string` | 是 | 项目的绝对路径 |
返回 `{ ready: true/false, reason, summary }`。
### `detect_stack`
检测项目的技术栈。
| 参数 | 类型 | 是否必需 | 描述 |
| ------------- | -------- | -------- | ---------------------------- |
| `projectPath` | `string` | 是 | 项目的绝对路径 |
返回检测到的栈(例如,`["core", "web"]`)。
### `list_checks`
列出所有可用的检查,可选过滤。
| 参数 | 类型 | 是否必需 | 描述 |
| ------- | -------- | -------- | --------------- |
| `phase` | `string` | 否 | 按阶段过滤 |
| `stack` | `string` | 否 | 按栈过滤 |
## 技术栈检测
部署门控通过查看项目文件来自动检测技术栈:
| 栈 | 检测 |
| ---------- | -------------------------------------------------------- |
| **核心** | 始终包含 |
| **移动** | `expo` 或 `react-native` 在 `package.json` 中 |
| **Web** | `next`、`@remix-run/node` 或 `nuxt` 在 `package.json` 中 |
| **CLI** | 存在 `go.mod` |
| **基础设施** | 存在 `systemd/`、`docker-compose.yml` 或 `Dockerfile` |
检查仅限于运行与您检测到的栈相关的检查。
## 检查
每个检查都有一个 ID、阶段,并追溯到一个实际事件:
| ID | 阶段 | 检查 | 来源 |
| ---- | ---------- | ---------------------------------------- | --------------------------------- |
| PD-3 | 预部署 | 密钥扫描(API 密钥、私钥) | LooksMaxx:在 eas.json 中发现 API 密钥 |
| PT-5 | 预测试 | 空捕获块检测 | CreateSocial:无声身份验证失败 |
随着时间的推移,将添加更多检查。每个检查都源自一个实际的错误。
## 命令行界面
```bash
# 为 Claude Code 安装预部署钩子
deploy-gate install-hooks
```
## 开发
```bash
npm install # 安装依赖
npm run build # 编译 TypeScript
npm test # 运行测试
npm run dev # 监视模式
npm run format # 格式化代码
```
## 贡献
请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 以获取指南。
## 安全
请参阅 [SECURITY.md](SECURITY.md) 以获取我们的安全策略。
## 许可证
MIT - 请参阅 [LICENSE](LICENSE)。
---
由 [ITeachYouAI](https://iteachyouai.com) 构建