关于 MCP Server for GitHub Pull Request Automation
这是一款用 Go 编写的服务,可根据 GitHub Webhook 自动创建和合并 PR,适合希望按分支和事件自动处理拉取请求的仓库维护者。
主要功能
- 01为 `feature/` 分支创建 PR
- 02以 merge、squash 或 rebase 合并 PR
- 03响应 push 和拉取请求 Webhook
适用场景
- 01推送 `feature/` 分支时创建 PR
- 02为拉取请求选择合并策略
- 03跟踪 Webhook 触发的拉取请求活动
MCP 相关
项目称为 MCP 服务,但 README 主要说明基于 GitHub Webhook 的 PR 自动化,未说明向 MCP 客户端提供哪些工具或资源。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
GitHub 拉取请求自动化 MCP 服务
MCP(合并并创建拉取请求)服务是一个基于 Go 的应用程序,旨在自动处理 GitHub 拉取请求(PR)。它会监听 GitHub Webhook 事件(例如推送和 PR 事件),并根据特定条件自动创建或合并拉取请求。
功能
- 自动创建 PR: 为遵循
feature/命名规范的分支自动创建拉取请求。 - 合并拉取请求: 使用选定的策略(
merge、squash或rebase)合并拉取请求。 - 处理 Webhook: 监听 GitHub Webhook 事件,以便在推送或拉取请求事件发生时触发操作。
要求
- Go 1.18+(用于构建和运行服务)
- 可访问代码仓库的 GitHub 账号
- Ngrok(用于将本地服务隧道转发到公共 URL,GitHub Webhook 测试时需要)
设置说明
1. 克隆代码仓库
将此代码仓库克隆到本地计算机。
git clone https://github.com/your-username/github_mcp.git
cd github_mcp
2. 安装依赖项
使用 go get 安装所需的依赖项。
go mod tidy
3. 配置环境变量
创建 Env Variables 文件并填写凭据。
GITHUB_TOKEN=your_github_personal_access_token
OWNER=your_github_username
REPO=your_github_repository
BASE_BRANCH=main
4. 安装 Ngrok
如果要在本地测试 GitHub Webhook,可以使用 Ngrok 将本地服务暴露到互联网。
从 https://ngrok.com/download 下载并安装 Ngrok。
安装 Ngrok 后,在端口 8080 上运行:
ngrok http 8080
这样会生成一个公共 URL,可用于在 GitHub 代码仓库中设置 Webhook。(如果有更好的应用暴露方式,也可以使用。)
5. 运行服务
使用以下命令运行服务:
go run main.go
这会在 http://localhost:8080 启动服务。
6. 设置 GitHub Webhook
- 前往 GitHub 代码仓库。
- 导航至 Settings > Webhooks > Add webhook。
- 在 Payload URL 字段中,输入 Ngrok URL 或本地服务 URL:
http://<ngrok-url>/webhook(例如,http://1234.ngrok.io/webhook)。 - 将 Content type 设置为
application/json。 - 选择要触发 Webhook 的事件,通常为 Push 和 Pull request。
- 保存 Webhook。
7. 测试
- 向以
feature/开头的分支推送更改(例如,feature/new-feature)。 - 服务会自动从该分支向基础分支创建拉取请求。
- 如果拉取请求已关闭并合并,系统会记录该事件并更新状态。
贡献
欢迎贡献!请随时提交 Pull Request。
许可证
此项目为开源项目,采用 MIT License。 `
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。