如何创建一个自托管的GitHub应用


如果您正在使用Bencher Cloud,那么只需要点击 GitHub 按钮进行注册或者登录就可以了。

对于自托管的 Bencher,您需要拥有一个 Bencher Plus 企业计划,创建自己的 GitHub 应用程序,并更新您的控制台配置和API 服务器配置。

创建GitHub应用

  • 创建一个GitHub应用
  • GitHub应用的名称
    • 选择一个独特的名字(例如:我的企业的Bencher)
  • 主页URL
    • 设置为你的Bencher自托管控制台的URL(例如:https://bencher.example.com)
  • 用户身份识别和授权
    • 回调URL
      • 将回调地址设置为你的Bencher自托管控制台的URL,并加上路径/auth/github(例如:https://bencher.example.com/auth/github)
    • ✅到期的用户授权令牌
    • ✅在安装过程中请求用户授权(OAuth)
    • ✅启用设备流
  • Webhook
    • ❌启用 - 取消勾选这个框
  • 权限
    • 账户权限
      • 邮箱地址:只读
  • 这个GitHub应用可以在哪个账户下安装?
    • 🔘任何账户
  • 点击创建GitHub应用
  • 在新创建的应用的常规选项下
  • 注意客户端ID (例如:Iv1.12864abcd1232048)
  • 客户端密钥
    • 点击生成新的客户端密钥
    • 注意这个密钥(例如:00000abcd12345wxyz123456789abcdefgh0000)
  • 添加Bencher的PNG格式logo
  • 私人钥匙
    • 点击生成私人钥匙

GitHub应用配置

控制台UI

在运行bencher-console Docker镜像的时候,设定GITHUB_CLIENT_ID环境变量(例如:GITHUB_CLIENT_ID=Iv1.12864abcd1232048)。如果客户端ID丢失,GitHub的按钮将不会在UI上显示。

API服务器

在服务器配置的plus.github部分,添加 client_id 和 client_secret。如果GitHub部分丢失,服务器将无法接受GitHub的认证请求。

关联的仓库

在更改这些设置之前,请先将 Bencher 自托管 API 服务器和控制台升级到 v0.6.16 或更高版本。

要让项目能为其分离的运行关联 GitHub 仓库,还需为 GitHub 应用设置以下内容:

  • 用户身份识别和授权
    • 回调URL
      • 将第一个回调地址设置为你的Bencher自托管控制台的URL,并加上路径/console/github(例如:https://bencher.example.com/console/github)。 GitHub 会在用户安装应用后将其发送到第一个回调地址。
      • 在其后保留路径为/auth/github的回调地址,用于登录(例如:https://bencher.example.com/auth/github)。 GitHub 会拒绝回调地址不在列表中的登录。
    • ✅在安装过程中请求用户授权(OAuth)
  • Webhook
    • ✅启用 - 勾选这个框
    • Webhook URL
      • 设置为你的Bencher自托管API服务器的URL,并加上路径/v0/github/webhook(例如:https://api.bencher.example.com/v0/github/webhook)
    • Webhook 密钥
      • 输入一个随机密钥并记下它(例如:0123456789abcdef0123456789abcdef)
  • 权限
    • 仓库权限
      • 内容:读写
    • 订阅事件
      • 不勾选任何事件
  • 记下应用的 slug,即其公开页面URL的最后一部分(例如:https://github.com/apps/my-bencher-app 中的 my-bencher-app)

在服务器配置的plus.github部分,将 slug、私人钥匙和 webhook 密钥添加为 app。


🐰恭喜!您已经学会了如何设置GitHub应用了!🎉


添加Bencher到GitHub行为 ➡

🤖 该文档由 AI 自动翻译。 它可能不准确并且可能包含错误。 如果您发现任何错误,请在 GitHub 上提出问题.


Published: Fri, October 27, 2023 at 8:40:00 AM UTC | Last Updated: Wed, October 28, 2026 at 5:53:42 AM UTC