community
community copied to clipboard
[RFC] 社区机器人
目前社区 Issue/Pull Request 主要由人工处理,本文提议开发一个机器人用于云原生社区 Github 管理。
主要功能
Issue
- 用户创建 Issue 后,自动为 Issue 添加 Label
- 用户创建 Issue 后,自动添加
status/wait-answer
标签 - 社区成员回答之后,自动添加
status/replied
标签 - 问题解决后,自动添加
status/resolved
标签 - 如果问题为精选 Issue,自动添加
type/stared
标签 - 如果该文档被归档为 FAQ,自动添加
type/faq
标签 - (其他)
- 用户创建 Issue 后,自动添加
- 用户创建 Issue 后,自动回复 Issue,参考 CockroachDB Issue,需要包含以下内容:
- 如何在社区寻找帮助
- 如果是首次新建 Issue,可以指引如何加入社区
- 如果不是 Organization 成员,可以引导加入 Github Organization(可以自动邀请)
- 提示用户常用的 Issue 指令,例如:
-
/join
加入社区 -
/label kubernetes
给 Issue 添加 Label -
/faq
将 Issue 归档为 FAQ -
/sig kubernetes
可以邀请 Kubernetes SIG 的成员回答问题
-
- 社区回答问题积分排行榜
- 自动为 Issue 归档,生成 Issue 周报
- 社区成员积分管理
- 用户提出问题,可以添加悬赏(可以在 Issue 模板中包含一个悬赏积分的字段),问题解决之后,悬赏积分累计到回答问题的人用户账号之下
- 所有用户都包含初始积分 500 分
- 所有用户回答问题得到的积分,会实时计算累加并更新社区排行榜
- 所有被标记为
type/faq
和type/stared
的 Issue 将获得额外积分奖励 - 所有积分公开透明,可以点击任意用户查看所有积分获得记录
- 管理员有权使用
/reward @lonng 100
指令为用户新增积分
Pull Request
- 自动 PR 合并
- 积分管理
- 自动添加标签
项目实现
项目主要包含三部分功能,分别为:
- Webhook 用于接收 Github HTTP 回调,触发 Issue/Pull Request 事件处理,目前包含现成的 Webhook 实现
- Github API 主要用于 Bot 逻辑处理之后与 Github 的交互,目前可以使用 Google 的开源项目 Github API
- Bot 逻辑实现,目前第一阶段主要实现以上对应的功能需求,后期根据需求逐步扩展
目前还是 Draft 阶段,希望大家积极提出建议,然后会成为社区的第一个开源项目大家一起参与。
计划采用 python , flask , PyGithub, 同时支持独立部署, serverless 部署
征求Bot名字!
Oars 船桨 用于驱动云原生社区的大船
Oars 船桨 用于驱动云原生社区的大船
或者是 电动的 Paddle
Oars 船桨 用于驱动云原生社区的大船
或者是 电动的 Paddle
有个开源项目就叫 PaddlePaddle,这个不合适。
Oars 船桨 用于驱动云原生社区的大船
或者是 电动的 Paddle
有个开源项目就叫 PaddlePaddle,这个不合适。
百度机器学习的
Wall-E2 , Groot
Eve /iːv/
- 「夏娃」,代表原生
- 「重大事件关头」,搞一番大事业
- 回文
- 妹子
用户创建 Issue 后,自动为 Issue 添加 Label,9 月 8 日完成测试 @stevensu1977
https://github.com/cloudnativeto/zerobot-test/issues 内测repo,
已完成功能:
1.自动化 用户创建 Issue 后,自动为 Issue 添加欢迎信息 用户创建 Issue 后,自动添加 status/wait-answer 标签 社区成员回答之后,自动添加 status/replied 标签
2.指令操作
问题解决后,自动添加 status/resolved 标签 指令: /resolved
如果问题为精选 Issue,自动添加 type/stared 标签 指令: /stared
如果该文档被归档为 FAQ,自动添加 type/faq 标签 指令: /faq
https://github.com/cloudnativeto/mjolnir-bot