🤖如何写一个Github App
温馨提示
在继续正文前,先澄清一下:
- Github App 是需要部署的,Github 并没有提供托管服务。
- 在 Github Marketplace 上架并非使用 Github App 的必要条件。也即,没有在上面展示,你一样可以安装使用自己的 Github App。
快速开始
- npx create-probot-app your-app
- cd your-app
- yarn
- yarn dev
- register a Github App
- install the Github App
实际开发并已上架的App,用于给 pull request 自动打标签:https://github.com/marketplace/auto-add-label
开源地址:https://github.com/levy9527/auto-add-label
安装应用
进入 https://github.com/settings/apps
点击安装
修改权限
进入https://github.com/settings/apps
别忘了,检查下是否订阅了相关事件 如果在初始化后,并且已经有用户(比如自己)安装了 Github App,再更改权限,则需重新获得用户的授权
重新授权入口如下
进入后会有提示
重新授权
webhooks
可以在 Github App 的 Advanced 页面中查看 webhooks 接收情况
当然也可以使用 https://smee.io 查看
异常
400
打开项目根目录下的 .env
,复制 WEBHOOK_SECRET
的值
进入 Github App 设置页
修改 Webhook secret 后保存
根据经验,每次修改 Webhook 时,最好同时再编辑一次 Webhook secret(即使值没有发生变化),以避免以上情况的发生。
部署
推荐使用 Heroku:
需要指出的一点是,使用 Heroku 时网络体验稍差,不知道是否是我的网络问题,表现在两个方面:
- 我的翻墙工具需要切换为 蓝灯,否则 Heroku Dashboard 几乎无法打开
- 在 iTerm2 里使用 Heroku CLI 命令时,很容易出现报错
ENOTFOUND: getaddrinfo ENOTFOUND api.heroku.com api.heroku.com:443
,需要多次尝试,靠运气成功
可以放心的是,部署后的应用本身,是很稳定的。