ITADN
googleapis/repo-automation-bots
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 应用:

  1. cd packages/your-bot.
  2. npm start.
  3. 访问: http://localhost:3000 并安装。

授予开发应用权限和事件

  1. 默认情况下将没有任何权限。访问 https://github.com/settings/installations,点击 configure,然后选择 'app settings'。
  2. 导航到 Permissions and Events。你可能需要 'Repository > Pull Requests' 作为权限。
  3. 你还需要订阅事件(页面底部)。例如,如果你的机器人响应 PR 活动,则应启用 'Events > Pull Request'。

在仓库上安装机器人

  1. 按照链接安装应用并导航到 'Install App', 如果已安装在你期望的组织上(测试时很可能是你自己), 点击齿轮图标。
  2. 在权限下确保没有待批准的请求
  3. 在 repository access 下仅选择 select repositories。选择 你希望用于测试的仓库。

运行你的应用

一旦你创建了应用,并在一些仓库上安装了它, 再次启动 probot,设置以下环境变量。大多数可以在 github.com/settings/apps/{YOUR_APP} 找到:

  • APP_ID: 标识符,列于页面顶部附近,App ID: 12345
  • PRIVATE_KEY_PATH: 应用私钥的路径,您可以在页面底部请求创建并下载一个新的私钥。
    • 或者,设置 GitHub 客户端 ID 和密钥:
      • GITHUB_CLIENT_ID: 页面顶部的客户端 ID。
      • GITHUB_CLIENT_SECRET: 页面顶部的客户端密钥。
  • WEBHOOK_SECRET: 在 GitHub 开发者设置中设置的密钥。请在设置页面中将其编辑为已知值。

环境变量设置完成后,运行:

  1. cd packages/your-bot.
  2. npm start.

在 Cron 上运行机器人

要在计划中运行机器人,请在您的机器人文件夹中包含一个名为 cron 的文件,其 内容为有效的 unix -cron 格式。 这将创建一个 Cloud Scheduler Job,使其在指定的计划中向您的端点发出请求。

发布实用模块

  1. 使用 Wombat Dressing Room 创建一个令牌。
  2. 运行 npm run release

整体架构

High Level Architecture