30分钟上手Yearning开发环境:从源码到贡献的完整指南

30分钟上手Yearning开发环境:从源码到贡献的完整指南

【免费下载链接】Yearning cookieY/Yearning: 这是一个用于SQL注入检测和防御的工具。适合用于需要检测和防御SQL注入的场景。特点:易于使用,支持多种数据库,提供实时检测和防御功能。 【免费下载链接】Yearning 项目地址: https://gitcode.com/gh_mirrors/ye/Yearning

你是否曾因复杂的开源项目环境配置望而却步?作为SQL审计与优化领域的开源工具,Yearning(项目路径)提供了本地化部署的SQL注入检测与防御能力。本文将通过Docker容器化方案手动编译两种路径,带你快速搭建开发环境,30分钟内实现从源码拉取到成功运行的全流程,并掌握参与开源贡献的关键步骤。

环境准备:核心依赖清单

开发Yearning前需确保系统已安装以下工具:

  • Git 2.30+:用于代码版本控制
  • Go 1.18+:项目主开发语言(src/service/yearning.go为程序入口)
  • Docker & Docker Compose:容器化部署依赖
  • MySQL 5.7/8.0:存储审计规则与用户数据(model/db.go定义数据库交互)

方案一:Docker容器化部署(推荐新手)

1. 源码拉取与目录结构

git clone https://gitcode.com/gh_mirrors/ye/Yearning.git
cd Yearning

项目核心目录说明:

2. 一键启动开发环境

使用Docker Compose实现服务编排,自动完成数据库初始化与应用启动:

cd docker
docker-compose up -d

上述命令会启动两个容器:

3. 验证部署结果

访问http://localhost:8000,使用默认账号admin/密码Yearning_admin登录,成功进入仪表盘界面:

Yearning仪表盘

方案二:手动编译部署(适合高级开发)

1. 配置文件准备

复制模板配置并修改数据库连接信息:

cp conf.toml.template conf.toml
vi conf.toml  # 设置mysql_addr、mysql_user等参数

2. 数据库初始化

# 创建数据库
mysql -u root -p -e "CREATE DATABASE yearning DEFAULT CHARSET utf8mb4"

# 执行 schema 迁移
go run main.go install

数据库模型定义在src/model/modal.go,包含用户、审计规则等核心表结构。

3. 本地编译与运行

# 解决依赖
go mod tidy

# 编译可执行文件
go build -o Yearning main.go

# 启动开发服务器
./Yearning run

程序启动后会加载src/router/router.go定义的API路由,可通过curl http://localhost:8000/api/v1/health验证服务状态。

核心功能开发示例

SQL审计模块开发

Yearning的SQL审计功能通过src/handler/order/audit/impl.go实现规则校验。添加自定义审计规则步骤:

  1. CheckSQL函数中添加新的规则判断逻辑
  2. 更新前端审计界面展示(对应img/audit.png中的规则检查项)
  3. 编写单元测试(参考src/handler/order/osc/osc.go测试用例)

AI助手功能调试

项目的AI文本转SQL功能(src/handler/fetch/ai.go)支持自然语言生成SQL:

AI文本转SQL

开发调试时需在conf.toml中配置LLM服务地址,通过修改src/lib/calls/rpc.go中的API调用逻辑适配不同模型。

参与开源贡献:从调试到PR

1. 代码规范与提交信息

  • 遵循Go语言规范(参考cmd/cmd.go的命令行参数定义风格)
  • 提交信息格式:[模块名] 功能说明,例如[audit] 添加SQL注入检测规则

2. 调试与测试

  • 单元测试文件命名规范:xxx_test.go(如migration/migrate_test.go
  • 前端界面调试可修改src/handler/下的模板渲染逻辑

3. 贡献流程

  1. Fork项目仓库到个人账号
  2. 创建特性分支:git checkout -b feature/sql-audit-enhance
  3. 提交代码并推送:git push origin feature/sql-audit-enhance
  4. 在GitCode平台发起Pull Request,关联相关Issue

常见问题排查

数据库连接失败

  • 检查conf.toml中的mysql_addr配置是否正确
  • Docker部署时确认MySQL容器状态:docker ps | grep mysql

编译错误

  • 执行go clean -modcache清理模块缓存
  • 检查Go版本是否符合go.modgo 1.18的要求

总结与后续学习路径

通过本文你已掌握:

  • 使用Docker或手动方式搭建Yearning开发环境
  • 理解项目核心模块结构(路由router/、业务逻辑handler/、数据模型model/
  • 参与开源贡献的标准流程

下一步推荐:

欢迎在项目LICENSE许可范围内提交改进,一起完善这个SQL审计与防御工具的生态!

【免费下载链接】Yearning cookieY/Yearning: 这是一个用于SQL注入检测和防御的工具。适合用于需要检测和防御SQL注入的场景。特点:易于使用,支持多种数据库,提供实时检测和防御功能。 【免费下载链接】Yearning 项目地址: https://gitcode.com/gh_mirrors/ye/Yearning

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值