使用说明
用于GitHub Pull请求自动化的MCP服务器
MCP(合并和创建拉取请求)服务器是一个基于Go的应用程序,旨在自动化GitHub拉取请求(PR)。它监听GitHub webhook事件(如推送和PR事件),并根据特定条件自动创建或合并拉取请求。
特性
- 自动创建PR: 自动为以下分支创建拉取请求
feature/命名约定。 - 合并拉取请求: 将拉取请求与选定策略合并(
merge,squash,或rebase). - 处理 Webhooks: 监听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.配置环境变量
使用您的凭据创建环境变量文件。
GITHUB_TOKEN=your_github_personal_access_token
OWNER=your_github_username
REPO=your_github_repository
BASE_BRANCH=main
4.安装Ngrok
如果你在本地测试GitHub webhooks,你可以使用Ngrok将你的本地服务器暴露给互联网。
从以下网址下载并安装Ngrok https://ngrok.com/download.
安装Ngrok后,在端口8080上运行它:
ngrok http 8080
这将为您提供一个公共URL,您可以使用该URL在GitHub存储库中设置webhook。(如果你有更好的东西来展示你的应用程序,那就去吧。)
5.运行服务器
使用以下命令运行服务器:
go run main.go
这将启动服务器 http://localhost:8080.
6.设置GitHub Webhook
- 转到您的GitHub存储库。
- 引导到 设置 > 网页插件 > 添加网页挂钩.
- 在 有效载荷URL 字段中,输入Ngrok URL或本地服务器URL:
http://<ngrok-url>/webhook(例如。,http://1234.ngrok.io/webhook). - 设置 内容类型 向
application/json. - 通常,选择将触发webhook的事件 推 和 拉取请求.
- 保存 webhook。
7.测试
- 向以以下开头的分支推送
feature/(例如。,feature/new-feature). - 服务器将自动创建从该分支到基础分支的拉取请求。
- 如果拉取请求被关闭并合并,它将被记录并更新状态。
贡献
欢迎投稿!请随时提交拉取请求。
许可证
该项目是开源的,可在 MIT许可证. `
