GitHub助手

AI驱动的GitHub助手,提供代码审查和问题分析功能,集成React、Express.js和LM Studio本地AI处理。

  • by firasyazid
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 firasyazid/AI-Powered-GitHub-Assistant-with-MCP

使用说明

GitHub助手

人工智能驱动的GitHub Assistant,具有代码审查和问题分析功能。使用React、Express.js构建,并与LM Studio集成用于本地AI处理。

特性

  • 🔐 使用GitHub令牌进行用户身份验证
  • 🔍 基于人工智能的GitHub问题分析
  • 📝 针对任何存储库的智能代码审查
  • 🤖 通过LM Studio进行本地LLM集成
  • 🎨 带有shadcn/UI组件的现代UI

项目结构

.
├── front-end/          # React + TypeScript frontend
│   ├── src/
│   │   ├── components/ # Reusable UI components
│   │   ├── hooks/      # Custom React hooks
│   │   ├── pages/      # Page components
│   │   └── services/   # API service layer
│   └── package.json
│
├── MCP/                # Express.js backend
│   ├── src/
│   │   ├── server/
│   │   │   ├── config/     # Configuration files
│   │   │   ├── middleware/ # Express middleware
│   │   │   ├── models/     # MongoDB models
│   │   │   ├── routes/     # API routes
│   │   │   └── services/   # Business logic
│   │   └── index.js
│   └── package.json
│
└── README.md

先决条件

  • Node.js(v18或更高版本)
  • MongoDB Atlas帐户或本地MongoDB实例
  • GitHub个人访问令牌
  • LM Studio(用于本地AI处理)

安装

1.克隆存储库

git clone <your-repo-url>
cd github-assistant

2.后端设置

cd MCP
npm install

创建一个 .env 文件基于 .env.example:

cp .env.example .env

配置环境变量:

PORT=3000
LM_STUDIO_URL=http://127.0.0.1:1234
CONNECTION_STRING=mongodb+srv://username:password@cluster.mongodb.net/database-name?retryWrites=true&w=majority
JWT_SECRET=your-secret-key-here

3.前端设置

cd ../front-end
npm install

创建一个 .env 文件基于 .env.example:

cp .env.example .env

配置环境变量:

VITE_API_URL=http://localhost:3000

运行应用程序

启动LM工作室

  1. 打开LM工作室
  2. 加载您喜欢的模型
  3. 启动本地服务器(默认:http://127.0.0.1:1234)

启动后端服务器

cd MCP
npm start

对于自动重新加载的开发:

npm run dev

API将于 http://localhost:3000

启动前端

cd front-end
npm run dev

该应用程序将在 http://localhost:5173

API终点

认证

注册用户

POST /api/v1/users/register
Content-Type: application/json

{
  "owner": "YOUR_GITHUB_USERNAME",
  "githubToken": "YOUR_GITHUB_TOKEN"
}

登录

POST /api/v1/users/login
Content-Type: application/json

{
  "owner": "YOUR_GITHUB_USERNAME",
  "githubToken": "YOUR_GITHUB_TOKEN"
}

受保护的端点

所有受保护的端点都需要JWT身份验证:

Authorization: Bearer <your_jwt_token>

分析问题

GET /api/github/:repoName/issues

查看代码文件

GET /api/review/:repoName/file?path=PATH_TO_FILE

健康检查

GET /health

技术栈

前端

  • 反应18
  • TypeScript
  • 维特
  • TanStack查询(React查询)
  • React路由器
  • shadcn/ui
  • Tailwind CSS
  • Zod(验证)

后端

  • Node.js
  • Express.js
  • MongoDB(Mongoose)
  • JWT身份验证
  • Octokit(GitHub API)
  • 阿西奥斯
  • bcryptjs

发展

前端开发

cd front-end
npm run dev      # Start dev server
npm run build    # Build for production
npm run preview  # Preview production build
npm run lint     # Run ESLint

后端开发

cd MCP
npm run dev      # Start with auto-reload
npm start        # Start production server

安全说明

  • 永不承诺 .env 文件到版本控制
  • 确保您的GitHub代币安全
  • 在生产中使用强大的JWT机密
  • 定期轮换凭据
  • 使用特定于环境的配置

贡献

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

许可证

麻省理工学院

支持

有关问题和疑问,请在GitHub存储库中打开问题。