github机器人
起因
昨天周六 (20171014) 由于家里网络不好,去公司蹭网,正好约了 @yugasun 一起聊聊技术,使用公司统一的手机客户端预约,然后直接在前台扫下短信里打开的二维码即可签入,而离开时再扫下即可签出,非常的方便。
在我看来,这其实就是使用一个 "规则" 来让程序代替一些人为的操作,非常的方便。又和 @yugasun 讨论一些自动github机器人的事情,然后才有了她 -> github-bot
规范
首先遵循一些 github团队协作, 主要是:
Issue 规则
两种方案:
- 使用 ISSUE_TEMPLATE.md 里提醒用户使用某种规则
- 单独创建一个
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 (削除ここまで) husky 和 validate-commit-msg 做到本地 git commit -m xx 的强制校验
github机器人做的事
Issue
- 不规范 issue 自动关闭 - 由于之前约定了 issue 规范,那么当 issue 被创建时如果不符合规范将直接被
closed并且打上invalidlabel ,示例 - 当 issue label 为
need demo时,自动回复,需要相关demo , 示例 - 根据项目配置, issue 被打上指定 label 时自动 assign 给指定的人员,如:
label: bug -> @xuexb, label: enhancement -> @yugasun, label: document -> @xiaohan, 示例
Pull Request
- 发 PR 时标题不规范时提醒修改,并打上
invalidlabel。当用户更新标题符合规范后,将自动取消, 示例 - 发 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 启用代理。