mirror of
https://github.com/jeffusion/gitea-ai-assistant.git
synced 2026-06-04 23:16:46 +00:00
e488ebc49220e3e1a471f4ae231798f4f0a89173
AI Code Review for Gitea
基于Bun和TypeScript的Gitea代码审查助手,自动为Pull Request和单个提交提供AI驱动的代码审查。
功能特点
- ✅ 自动对Gitea Pull Request进行代码审查
- ✅ 自动对成功状态的单个提交进行代码审查
- ✅ 使用OpenAI API进行代码分析
- ✅ 提供总体代码审查评论
- ✅ 支持代码行级别评论
- ✅ 安全的Webhook验证
技术栈
- Bun
- TypeScript
- Hono (轻量级Web框架)
- OpenAI API
- Gitea API
安装
-
克隆仓库
git clone <repository-url> cd ai-review -
安装依赖
bun install -
配置环境变量
复制.env.example文件为.env并填写必要配置:
cp .env.example .env编辑.env文件,填写Gitea和OpenAI相关配置。
配置项
GITEA_API_URL: Gitea API URL (例如:http://your-gitea-instance.com/api/v1)GITEA_ACCESS_TOKEN: Gitea 访问令牌OPENAI_BASE_URL: OpenAI 请求地址OPENAI_API_KEY: OpenAI API密钥OPENAI_MODEL:OpenAI 使用模型PORT: 应用监听端口 (默认: 3000)WEBHOOK_SECRET: Webhook秘钥,用于验证请求来源
使用方法
-
启动服务
bun run dev # 开发模式 # 或 bun run start # 生产模式 -
在Gitea仓库中配置Webhook
在Gitea仓库设置中添加两个Webhook:
Pull Request审查webhook:
- URL:
http://your-server:3000/webhook/gitea/pull_request - 内容类型:
application/json - 秘钥: 设置为与WEBHOOK_SECRET相同的值
- 触发事件: 选择"Pull Request"
提交状态审查webhook:
- URL:
http://your-server:3000/webhook/gitea/status - 内容类型:
application/json - 秘钥: 设置为与WEBHOOK_SECRET相同的值
- 触发事件: 选择"Status"
注意: 老端点
/webhook/gitea仍然支持Pull Request审查,但仅作向后兼容使用。 - URL:
功能说明
PR代码审查
当PR被创建或更新时,系统会自动进行代码审查,提供总体评价和行级评论。
单个提交审查
当提交状态变为"success"(如CI通过)时,系统会:
- 对该提交进行代码审查
- 提供总体评价作为提交评论
- 尝试找到关联的PR,添加行级评论
这对于增量工作尤其有用,可以只对最新的变更进行审查,避免重复评审已审查过的代码。
开发
bun run dev: 开发模式运行bun run build: 构建项目bun run start: 生产模式运行bun run lint: 运行代码风格检查
许可证
MIT
Description
Gitea功能增强助手,基于Bun和TypeScript开发,提供AI驱动的代码审查等增强功能。本工具通过Webhook与Gitea集成,自动对Pull Request和提交进行代码审查,并提供智能化的代码质量分析。
Languages
TypeScript
96.5%
Shell
1.5%
CSS
1.5%
JavaScript
0.3%
Dockerfile
0.2%