Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RFC] 社区机器人 #68

Open
lonng opened this issue Aug 30, 2020 · 12 comments
Open

[RFC] 社区机器人 #68

lonng opened this issue Aug 30, 2020 · 12 comments
Assignees
Labels
kind/activity 社区活动

Comments

@lonng
Copy link
Member

lonng commented Aug 30, 2020

目前社区 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 lonng changed the title [Proposal] 社区机器人 [RFC] 社区机器人 Aug 30, 2020
@lonng
Copy link
Member Author

lonng commented Aug 30, 2020

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

@stevensu1977
Copy link
Member

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

@stevensu1977
Copy link
Member

征求Bot名字!

@yekangming
Copy link

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

@yekangming
Copy link

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

或者是 电动的 Paddle

@rootsongjc
Copy link
Member

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

或者是 电动的 Paddle

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

@ikingye
Copy link

ikingye commented Sep 2, 2020

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

或者是 电动的 Paddle

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

百度机器学习的

@stevensu1977
Copy link
Member

Wall-E2 , Groot

@ikingye
Copy link

ikingye commented Sep 2, 2020

Eve /iːv/

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

@rootsongjc
Copy link
Member

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

@rootsongjc rootsongjc added the kind/activity 社区活动 label Sep 6, 2020
@stevensu1977
Copy link
Member

stevensu1977 commented Sep 9, 2020

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
Copy link
Member

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/activity 社区活动
Projects
None yet
Development

No branches or pull requests

5 participants