在看一些开源项目时,会发现一些帮忙处理issue和PR的bot,这些bot都是基于Github的AppsGitHub Apps overview - GitHub Docs
GitHub Apps
GitHub应用程序是扩展GitHub功能的工具。GitHub应用程序可以在GitHub上做一些事情,比如打开问题、评论拉取请求和管理项目。他们也可以根据GitHub上发生的事件在GitHub之外做事情。例如,当在GitHub上打开问题时,GitHub应用程序可以在Slack上发布。
可以在GitHub Marketplace上查找Github Apps,然后进行安装,有些是需要付费的.
关于使用直接安装然后看文档进行配置就行了。
如何开发
github/github-app-js-sample: Sample of a GitHub App that comments new pull requests
由于本地开发涉及到需要接受github发来的东西,需要涉及到内网穿透啥的,推荐使用smee或者ngrok进行本地开发.建议搭配下面介绍的probot进行开发.probot.github.io/docs/development/#installing-the-app-on-a-repository
Probot
Probot是一个在Node.js中构建GitHub应用程序的框架。它旨在消除所有的繁琐工作,比如接收和验证Webhook,以及进行身份验证倒立,这样你就可以专注于你想要构建的功能。Probet应用程序易于编写、部署和共享。许多最流行的Probet应用程序都是托管的,所以没有什么可供您部署和管理的。
1 | module.exports = (app) => { |
Repo Automation Bots
googleapis/repo-automation-bots: A collection of bots, based on probot, for performing common maintenance tasks across the open-source repos managed by Google on GitHub.一组基于probot的机器人,用于谷歌在GitHub上管理的开源转发中执行常见维护任务。下面是一些可用的bot
auto-approve | Automatically approves and merges PRs matching user-specified configs | install |
---|---|---|
auto-label | Automatically labels issues and PRs with product, language, or directory based labels | install |
blunderbuss | Assigns issues and PRs randomly to a specific list of users | install |
cherry-pick-bot | Cherry-pick merged PRs between branches | install |
参考资料
- probot.github.io/docs/
- GitHub Bots for every open-source project - DEV Community
- googleapis/repo-automation-bots: A collection of bots, based on probot, for performing common maintenance tasks across the open-source repos managed by Google on GitHub.
- smee.io | Webhook deliveries
- ngrok | Unified Application Delivery Platform for Developers