forked from Trustie-Study-Group/PRWelBot4SECourse
|
||
---|---|---|
Utils | ||
config | ||
controllers | ||
db | ||
service | ||
bot.log | ||
main.py | ||
readme.md |
readme.md
BOT目标
监控项目中的 Issue 并确保参与者得到及时回应和关注;这个Bot可以帮助项目团队更好地管理Issue,确保及时回应和解决问题。通过自动提醒和激励,它有助于保持开发社区的活跃度,并鼓励参与者积极参与讨论和解决问题,从而提升项目的质量和开发效率。
BOT功能
- Issue 跟踪与监控:Bot将持续监控项目中创建的Issue,并跟踪它们的状态和活跃度。
- 不活跃 Issue 发现:当某个 Issue 长时间未得到回应或者处于不活跃状态时,Bot将识别这些情况。
- 自动评论与提醒:Bot会在对应的不活跃的 Issue 页面进行自动评论,提醒相关团队成员或项目核心开发者关注这个不活跃的 Issue,并鼓励他们提供反馈或解决方案。
- 定期提醒与激励:如果 Issue 仍然处于不活跃状态,Bot会定期通过邮件向各位参与该项目的开发人员发送提醒消息,鼓励团队成员参与讨论、提供帮助或解决问题。
- 关注度分析与统计:Bot能够收集并分析 Issue 的响应时间、解决率等数据,为项目团队提供洞察,并可能展示在指定的仪表盘上。
- 定制设置与扩展功能:允许设置 Issue 不活跃的时间阈值,同时还可以扩展功能以适应特定项目的需求。
监控issue所要执行的具体操作
issue中被监控的属性
检测issue的相关信息,发现应监控的属性包括如下:
- 自定义的状态信息(1 表示该 Issue 已完成 2 表示该 Issue 未处理)
- 标题
- 状态
- 负责人
- 优先级
- 标记
- 里程碑
- 关联分支
- 创建时间
- 评论
监控issue的人员
我们将监控issue的人员定为在该项目中的成员(项目开发人员)--包括管理员 开发者 报告者 暂定监控issue的人员为youngll,SongJieyahoo,LZHty666 (issue定义的负责人?)
定义issue不活跃的条件
- issue存在
- 状态需要满足“正在解决”或“新增”
- 当前时间距离上次更新时间超过两小时
反馈给开发人员的方法
在issue中进行自动评论提醒,邮箱反馈(暂定:微信发送消息提醒)
BOT自动提出解决不活跃 Issue 的方法
展示关注度的方式以及仪表盘的设计
定义对 Issue 进行操作的行为
如果最近有项目开发人员对该 Issue 进行了这些行为,则认为该其不属于不活跃状态
- 项目开发人员进行评论√
- 项目开发人员对评论进行删除、修改和回复操作√
- 项目开发人员对该issue进行了修改标题和描述这一操作√
- 项目开发人员删除了该issue--无法webhook,issue一般不会被删除
- 项目开发人员进行声明--无法webhook,更改声明也无法webhook,取消声明也无法webhook
- 项目开发人员修改了负责人√
- 项目开发人员修改了状态√
- 项目开发人员修改了优先级√
- 项目开发人员修改了标记√
- 项目开发人员修改了里程碑√
- 项目开发人员修改了关联分支(若该issue有对应的关联分支,则会查看该分支最新提交时间来判断该issue的活跃状态)
- 项目开发人员修改了开始日期√
- 项目开发人员修改了结束日期√
测试关联Issue
暂无法解决关联issue的问题
目前阶段
已完成基本功能
开发遇到困难
- 不能找到webhook能发送的合适url,目前使用ngrok进行url对接
- https的配置出现问题,因此使用http未能保证webhook传递信息的安全
- 在github和gitee仓库中,issue的操作日志可以记录pr分支关联操作,该操作也可视作对该issue进行了处理,但在gitlink中未找到关联方法,因此对issue的操作中考虑不了pr分支关联处理
- 对commons中authUtil和config中botConfig以及jobs中tasks的执行功能不明确
- gitlink中API文档未提供登录,因此无法通过apiutil中的login_post获得开发人员的token,运行该bot需要将开发人员保持登陆状态,并修改config中的cookies
之后计划
- 加入邮箱通知功能,通过邮箱发送通知开发人员
- 加入接口,能智能化回答issue中的问题并提供解决方案
相关资料
- webhook配置:https://www.jianshu.com/p/55209f1031e8
- ngrok文档:https://dashboard.ngrok.com/get-started/setup/windows
- ngrok转发http操作命令:https://cloud.tencent.com/developer/ask/sof/107072869
- gitlink API文档:https://www.gitlink.org.cn/docs/api?shell#introduction