README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈
仓库自动化机器人
一组基于 probot 的机器人,用于 执行 Google 在 GitHub 上管理的开源仓库中的常见维护任务。
已实现的机器人
| 名称 | 描述 |
|---|---|
| auto-approve | 自动批准并合并符合用户指定配置的 PR |
| auto-label | 根据产品、语言或目录自动为 issues 和 PR 添加标签 |
| blunderbuss | 随机将 issues 和 PR 分配给特定用户列表 |
| cherry-pick-bot | 在分支之间 cherry-pick 已合并的 PR |
| conventional-commit-lint | 确保提交信息遵循 conventionalcommits.org 风格的 PR 检查器 |
| do-not-merge | 确保不存在 do not merge 标签的 PR 检查器 |
| failurechecker | 检查处于失败状态的自动化任务,例如发布 |
| flakybot | 监听 PubSub 队列中的损坏构建,并打开相应的 issues |
| generated-files-bot | 在修改生成文件时发出通知的 PR 检查器 |
| label-sync | 跨组织同步标签 |
| license-header-lint | 确保源文件包含有效许可证头的 PR 检查器 |
| merge-on-green | 当所有必需检查通过时合并 pull-request |
| policy | 根据已知规则检查仓库配置 |
| release-please | 基于语义化版本提交提出发布建议 |
| release-trigger | 触发发布作业 |
| repo-metadata-lint | 检查 .repo-metadata.json 文件 |
| snippet-bot | 检查 PR 中不匹配的 region 标签 |
| sync-repo-settings | 从集中配置同步仓库设置 |
| trusted-contribution | 允许 Kokoro CI 为受信任的贡献者触发 |
Googlers: please cont
开发环境
您需要安装 node.js 版本 12 或更高版本。
要管理多个 Node.js 版本,您可以使用 nvm.
在本地运行应用
创建代理以中继 Webhooks
为了转发到您的本地机器,您可以使用 smee.io。访问 https://smee.io/new 并创建一个用于将 webhooks 中继到您 本地 web-service 的代理。创建代理后,您将获得 新代理的 URL。
在 repo-automation-bots 的根目录中,运行:
npm run proxy -- -u <URL-OF-PROXY>
创建开发应用
如果是首次运行你的应用,你应该使用 probot 服务器创建一个新的 GitHub 应用:
cd packages/your-bot.npm start.- 访问: http://localhost:3000 并安装。
授予开发应用权限和事件
- 默认情况下将没有任何权限。访问 https://github.com/settings/installations,点击 configure,然后选择 'app settings'。
- 导航到 Permissions and Events。你可能需要 'Repository > Pull Requests' 作为权限。
- 你还需要订阅事件(页面底部)。例如,如果你的机器人响应 PR 活动,则应启用 'Events > Pull Request'。
在仓库上安装机器人
- 按照链接安装应用并导航到 'Install App', 如果已安装在你期望的组织上(测试时很可能是你自己), 点击齿轮图标。
- 在权限下确保没有待批准的请求
- 在 repository access 下仅选择 select repositories。选择 你希望用于测试的仓库。
运行你的应用
一旦你创建了应用,并在一些仓库上安装了它, 再次启动 probot,设置以下环境变量。大多数可以在 github.com/settings/apps/{YOUR_APP} 找到:
APP_ID: 标识符,列于页面顶部附近,App ID: 12345PRIVATE_KEY_PATH: 应用私钥的路径,您可以在页面底部请求创建并下载一个新的私钥。- 或者,设置 GitHub 客户端 ID 和密钥:
GITHUB_CLIENT_ID: 页面顶部的客户端 ID。GITHUB_CLIENT_SECRET: 页面顶部的客户端密钥。
- 或者,设置 GitHub 客户端 ID 和密钥:
WEBHOOK_SECRET: 在 GitHub 开发者设置中设置的密钥。请在设置页面中将其编辑为已知值。
环境变量设置完成后,运行:
cd packages/your-bot.npm start.
在 Cron 上运行机器人
要在计划中运行机器人,请在您的机器人文件夹中包含一个名为 cron 的文件,其
内容为有效的 unix -cron 格式。
这将创建一个 Cloud Scheduler Job,使其在指定的计划中向您的端点发出请求。
发布实用模块
- 使用 Wombat Dressing Room 创建一个令牌。
- 运行
npm run release。
整体架构
