初版gitlab合并test mcp
This commit is contained in:
1 parent
227d77f586
commit
0ccc8b625b
6 files changed
+2866
-35
No files matched your search
@@ -0,0 +1,87 @@
|
||||
# GitLab MCP 服务器
|
||||
|
||||
这是一个 Model Context Protocol (MCP) 服务器,专门用于与 GitLab 交互,主要功能包括创建和合并 Merge Request。
|
||||
|
||||
## 功能
|
||||
|
||||
- `create_merge_request`: 在指定的 GitLab 项目中创建一个新的 Merge Request
|
||||
- `merge_merge_request`: 合并指定的 GitLab Merge Request
|
||||
- `get_merge_request`: 获取指定 Merge Request 的详细信息
|
||||
- `close_merge_request`: 关闭指定的 GitLab Merge Request 而不合并
|
||||
|
||||
## 环境变量
|
||||
|
||||
- `GITLAB_ACCESS_TOKEN`: 用于访问 GitLab API 的访问令牌
|
||||
- `GITLAB_API_BASE_URL`: GitLab API 的基础 URL(默认为 `https://gitlab.com/api/v4`)
|
||||
|
||||
## 安装和运行
|
||||
|
||||
1. 首先,确保你已经安装了 Node.js 和 npm。
|
||||
2. 安装依赖:
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
3. 设置环境变量:
|
||||
```bash
|
||||
export GITLAB_ACCESS_TOKEN="your_gitlab_access_token"
|
||||
export GITLAB_API_BASE_URL="https://your-gitlab-instance.com/api/v4" # 可选,仅当使用自托管的 GitLab 时
|
||||
```
|
||||
4. 运行 GitLab MCP 服务器:
|
||||
```bash
|
||||
npm run gitlab
|
||||
```
|
||||
|
||||
## 架构
|
||||
|
||||
该项目使用一个封装的 `gitlabApiClient` 对象来处理所有与 GitLab API 的交互,这使得代码更模块化和可维护。API 客户端包含以下方法:
|
||||
|
||||
- `createMergeRequest`: 创建 Merge Request
|
||||
- `mergeMergeRequest`: 合并 Merge Request
|
||||
- `getMergeRequest`: 获取 Merge Request 详情
|
||||
- `closeMergeRequest`: 关闭 Merge Request
|
||||
|
||||
## 工具详情
|
||||
|
||||
### create_merge_request
|
||||
|
||||
创建一个新的 Merge Request。
|
||||
|
||||
参数:
|
||||
- `projectId`: GitLab 项目的 ID 或 URL 编码的路径
|
||||
- `sourceBranch`: 源分支名称
|
||||
- `targetBranch`: 目标分支名称
|
||||
- `title`: Merge Request 的标题
|
||||
- `description`: (可选) Merge Request 的描述
|
||||
- `assigneeId`: (可选) 负责人 ID
|
||||
- `reviewerIds`: (可选) 审阅者 ID 数组
|
||||
|
||||
### merge_merge_request
|
||||
|
||||
合并一个 Merge Request。
|
||||
|
||||
参数:
|
||||
- `projectId`: GitLab 项目的 ID 或 URL 编码的路径
|
||||
- `mrIid`: Merge Request 的内部 ID
|
||||
- `mergeCommitMessage`: (可选) 合并提交的消息
|
||||
- `shouldRemoveSourceBranch`: (可选) 是否在合并后删除源分支
|
||||
- `mergeWhenPipelineSucceeds`: (可选) 是否在 CI 管道成功后合并
|
||||
|
||||
### get_merge_request
|
||||
|
||||
获取 Merge Request 的详细信息。
|
||||
|
||||
参数:
|
||||
- `projectId`: GitLab 项目的 ID 或 URL 编码的路径
|
||||
- `mrIid`: Merge Request 的内部 ID
|
||||
|
||||
### close_merge_request
|
||||
|
||||
关闭一个 Merge Request 而不合并。
|
||||
|
||||
参数:
|
||||
- `projectId`: GitLab 项目的 ID 或 URL 编码的路径
|
||||
- `mrIid`: Merge Request 的内部 ID
|
||||
|
||||
## 使用示例
|
||||
|
||||
要使用此 MCP 服务器,你需要在支持 Model Context Protocol 的客户端中运行它。服务器将通过标准输入/输出与客户端通信。
|
||||
Reference in new issue
Block a user