GitHub拉取请求自动化服务器

MCP Server是一个基于Go的应用程序,用于自动化GitHub拉取请求的创建和合并,通过监听GitHub webhook事件来触发操作。

  • by pratik-mahalle
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 pratik-mahalle/github-mcp-server

使用说明

用于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

  1. 转到您的GitHub存储库。
  2. 引导到 设置 > 网页插件 > 添加网页挂钩.
  3. 在 有效载荷URL 字段中,输入Ngrok URL或本地服务器URL: http://<ngrok-url>/webhook (例如。, http://1234.ngrok.io/webhook).
  4. 设置 内容类型 向 application/json.
  5. 通常,选择将触发webhook的事件 推 和 拉取请求.
  6. 保存 webhook。

7.测试

  • 向以以下开头的分支推送 feature/ (例如。, feature/new-feature).
  • 服务器将自动创建从该分支到基础分支的拉取请求。
  • 如果拉取请求被关闭并合并,它将被记录并更新状态。

贡献

欢迎投稿!请随时提交拉取请求。

许可证

该项目是开源的,可在 MIT许可证. `