Skip to content

[RFC] 社区机器人 #68

Open
Open

Description

@lonng

目前社区 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/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 逻辑实现,目前第一阶段主要实现以上对应的功能需求,后期根据需求逐步扩展

Activity

  1. changed the title [-][Proposal] 社区机器人[/-] [+][RFC] 社区机器人[/+] on Aug 30, 2020
  2. lonng commented on Aug 30, 2020

    @lonng
    ContributorAuthor

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

  3. stevensu1977 commented on Sep 2, 2020

    @stevensu1977
    Member

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

  4. stevensu1977 commented on Sep 2, 2020

    @stevensu1977
    Member

    征求Bot名字!

  5. yekangming commented on Sep 2, 2020

    @yekangming

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

  6. yekangming commented on Sep 2, 2020

    @yekangming

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

    或者是 电动的 Paddle

  7. rootsongjc commented on Sep 2, 2020

    @rootsongjc
    Member

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

    或者是 电动的 Paddle

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

  8. ikingye commented on Sep 2, 2020

    @ikingye

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

    或者是 电动的 Paddle

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

    百度机器学习的

  9. stevensu1977 commented on Sep 2, 2020

    @stevensu1977
    Member

    Wall-E2 , Groot

  10. ikingye commented on Sep 2, 2020

    @ikingye

    Eve /iːv/

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

    @rootsongjc
    Member

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

  12. stevensu1977 commented on Sep 9, 2020

    @stevensu1977
    Member

    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

  13. stevensu1977 commented on Sep 10, 2020

    @stevensu1977
    Member
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions