- Notifications
You must be signed in to change notification settings - Fork62
GitHub 自动处理 issue、PR、releases 机器人
License
xuexb/github-bot
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
github 机器人:在服务端上启动一个基于koajs 的 http server ,建立一些项目的规范(如 issue 格式、 pull request 格式、配置一些指定 label 根据的 owner 、统一 git commit log 格式等),基于github webhooks 和github api 让机器人(通常是一个单独的帐号,如@jiandansousuo-bot )自动处理一些事情,从而达到快速响应、自动化、解放人力的效果。
该仓库@xuexb/github-bot 是用来演示 github-bot 的基本功能,因为具体需要实现的功能,可能因项目而不同,如果你需要她,你可以 fork 并相应的添加、删除功能。以下功能是一些常用的 show case 。
- 没有使用创建 issue 页面提交的 issue 将直接被关闭 -示例
- 根据创建 issue 页面提交的 issue 类型自动打上对应 label -示例
- 当 issue 标记 label 为
need demo时,自动回复,需要相关demo -示例 - issue 自动 assign 给指定人员,需要配置
package.json中config.github-bot.labelToAuthor映射 -示例
- 发 PR 时根据打的 label 自动添加指定的 reviewer ,需要配置
package.json中config.github-bot.labelToAuthor映射 -示例 - 发 PR 时标题不规范时提醒修改,需要配置
package.json中config.validate-commit-msg.type功能关键字,标题必须以功能关键字:开头 -示例 - 发 PR 时自动根据标题的PR 标题规则 前缀生成对应的 label ,
feat->enhancement, fix->bug-示例
- 当往远程第一次推送新版本号时,自动列出最新版本距离上一版本的 commit log 并发布 release notes ,由于需要使用两个 tag 去对比,所以项目的第一个 tag 就不处理 -示例
必须使用创建 issue 页面来提交 issue ,否则将直接被关闭
- invalid - 未定义, 内容 不规范
- need demo - 需要提供预览链接
- need update - 需要更新修复问题
- bug - bug
- duplicate - 重复
- enhancement - 新功能
- question - 提问
- wontfix - 不修复的问题
所有标题必须以功能关键字: 开头
参考:http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html
功能关键字介绍如下:
- feat - 新功能(feature)
- fix - 修补bug
- docs - 文档(documentation)
- style - 格式(不影响代码运行的变动)
- test - 增加测试
- chore - 构建过程或辅助工具的变动
- revert - 撤销
- close - 关闭 issue
- release - 发布版本
示例:
close: #1, #3feat: 添加xx功能docs: update install infohttps://github.com/settings/tokens (需要在 .env 里配置)
https://github.com/用户名/项目名/settings/hooks/new
- Payload URL:www.example.com:8000
- Content type: application/json
- trigger: Send me everything.
- Secret: xxx (需要在 .env 里配置)
npm installcp env .envvim .envnpm start
npm install pm2 -gnpm run deploy
后台启动该服务后,可以通过pm2 ls 来查看服务名称为github-bot 的运行状态。具体pm2 使用,请访问:https://github.com/Unitech/pm2
本系统logger 服务基于log4js。在根目录的.env 文件中有个参数LOG_TYPE 默认为console,参数值说明:
console - 通过 console 输出log。file - 将所有相关log输出到更根目录的 `log` 文件夹中。MIT
About
GitHub 自动处理 issue、PR、releases 机器人
Topics
Resources
License
Contributing
Uh oh!
There was an error while loading.Please reload this page.