10月15, 2017

github机器人

起因

昨天周六 (20171014) 由于家里网络不好,去公司蹭网,正好约了 @yugasun 一起聊聊技术,使用公司统一的手机客户端预约,然后直接在前台扫下短信里打开的二维码即可签入,而离开时再扫下即可签出,非常的方便。

在我看来,这其实就是使用一个 "规则" 来让程序代替一些人为的操作,非常的方便。又和 @yugasun 讨论一些自动github机器人的事情,然后才有了她 -> github-bot

规范

首先遵循一些 github团队协作, 主要是:

Issue 规则

两种方案:

  1. 使用 ISSUE_TEMPLATE.md 里提醒用户使用某种规则
  2. 单独创建一个 create-issue 的页面,根据引导一步步生成规范的 issue 内容,如 http://new-issue.ant.design/

Labels 规则

  • invalid - 未定义, 内容 不规范
  • need demo - 需要提供预览链接
  • need update - 需要更新修复问题
  • bug - bug
  • duplicate - 重复
  • enhancement - 新功能
  • question - 提问
  • wontfix - 不修复的问题

Commit Log 和 PR 标题规则

所有标题必须以 功能关键字: 开头

参考:http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html

功能关键字介绍如下:

  • feat - 新功能(feature)
  • fix - 修补bug
  • docs - 文档(documentation)
  • style - 格式(不影响代码运行的变动)
  • test - 增加测试
  • chore - 构建过程或辅助工具的变动
  • revert - 撤销
  • close - 关闭 issue

示例:

close: #1, #3
feat: 添加xx功能
docs: update install info

依赖 (削除) ghooks (削除ここまで) huskyvalidate-commit-msg 做到本地 git commit -m xx 的强制校验

github机器人做的事

Issue

  • 不规范 issue 自动关闭 - 由于之前约定了 issue 规范,那么当 issue 被创建时如果不符合规范将直接被 closed 并且打上 invalid label ,示例
  • 当 issue label 为 need demo 时,自动回复,需要相关demo , 示例
  • 根据项目配置, issue 被打上指定 label 时自动 assign 给指定的人员,如: label: bug -> @xuexb, label: enhancement -> @yugasun, label: document -> @xiaohan , 示例

Pull Request

  • 发 PR 时标题不规范时提醒修改,并打上 invalid label。当用户更新标题符合规范后,将自动取消, 示例
  • 发 PR 时自动根据标题的 PR 标题规则 前缀生成对应的 label ,如: feat->enhancement, fix->bug , 示例
  • 发 PR 时根据打的 label 自动添加指定的 reviewer , 示例

Release

  • 当往远程第一次推送新版本号时,自动列出最新版本距离上一版本的 commit log 并发布 release notes ,会把项目 clone 到 ./github/{项目名}/ 去分析 commit log , 示例

后续

什么这就完了?怎么可能!!!

这只是一个开始、只是一种思路,具体的还需要根据项目做相应的调整,她可以:

  • 与内部聊天工具打通,做到实时通报、命令式处理
  • 与 Jenkins 打通,做自动化上线
  • 与 Dueros 打通,唤醒万物
  • 连接人与服务
  • ...

代码全部开源在: https://github.com/xuexb/github-bot

本文链接:https://xuexb.com/post/github-bot.html

-- EOF --

发表于 2017年10月15日 18:39:23 ,添加在分类 前端技术 下 ,最后修改于 2017年10月19日 19:13:04

提醒: 本文最后更新于 3007 天前,文中所描述的信息可能已发生改变,请谨慎使用。

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。

AltStyle によって変換されたページ (->オリジナル) /