community icon indicating copy to clipboard operation
community copied to clipboard

[RFC] 社区机器人

Open lonng opened this issue 4 years ago • 12 comments

目前社区 Issue/Pull Request 主要由人工处理,本文提议开发一个机器人用于云原生社区 Github 管理。

主要功能

Issue

  • 用户创建 Issue 后,自动为 Issue 添加 Label
    • 用户创建 Issue 后,自动添加 status/wait-answer 标签
    • 社区成员回答之后,自动添加 status/replied 标签
    • 问题解决后,自动添加 status/resolved 标签
    • 如果问题为精选 Issue,自动添加 type/stared 标签
    • 如果该文档被归档为 FAQ,自动添加 type/faq 标签
    • (其他)
  • 用户创建 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/faqtype/stared 的 Issue 将获得额外积分奖励
    • 所有积分公开透明,可以点击任意用户查看所有积分获得记录
    • 管理员有权使用 /reward @lonng 100 指令为用户新增积分

Pull Request

  • 自动 PR 合并
  • 积分管理
  • 自动添加标签

项目实现

项目主要包含三部分功能,分别为:

  • Webhook 用于接收 Github HTTP 回调,触发 Issue/Pull Request 事件处理,目前包含现成的 Webhook 实现
  • Github API 主要用于 Bot 逻辑处理之后与 Github 的交互,目前可以使用 Google 的开源项目 Github API
  • Bot 逻辑实现,目前第一阶段主要实现以上对应的功能需求,后期根据需求逐步扩展

lonng avatar Aug 30 '20 09:08 lonng

目前还是 Draft 阶段,希望大家积极提出建议,然后会成为社区的第一个开源项目大家一起参与。

lonng avatar Aug 30 '20 10:08 lonng

计划采用 python , flask , PyGithub, 同时支持独立部署, serverless 部署

stevensu1977 avatar Sep 02 '20 03:09 stevensu1977

征求Bot名字!

stevensu1977 avatar Sep 02 '20 03:09 stevensu1977

Oars 船桨 用于驱动云原生社区的大船

yekangming avatar Sep 02 '20 03:09 yekangming

Oars 船桨 用于驱动云原生社区的大船

或者是 电动的 Paddle

yekangming avatar Sep 02 '20 03:09 yekangming

Oars 船桨 用于驱动云原生社区的大船

或者是 电动的 Paddle

有个开源项目就叫 PaddlePaddle,这个不合适。

rootsongjc avatar Sep 02 '20 03:09 rootsongjc

Oars 船桨 用于驱动云原生社区的大船

或者是 电动的 Paddle

有个开源项目就叫 PaddlePaddle,这个不合适。

百度机器学习的

ikingye avatar Sep 02 '20 03:09 ikingye

Wall-E2 , Groot

stevensu1977 avatar Sep 02 '20 03:09 stevensu1977

Eve /iːv/

  1. 「夏娃」,代表原生
  2. 「重大事件关头」,搞一番大事业
  3. 回文
  4. 妹子

ikingye avatar Sep 02 '20 03:09 ikingye

用户创建 Issue 后,自动为 Issue 添加 Label,9 月 8 日完成测试 @stevensu1977

rootsongjc avatar Sep 06 '20 12:09 rootsongjc

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

stevensu1977 avatar Sep 09 '20 09:09 stevensu1977

https://github.com/cloudnativeto/mjolnir-bot

stevensu1977 avatar Sep 10 '20 12:09 stevensu1977