关于 GitHub 应用
GitHub 应用是一种你可以构建的集成类型,用于与 GitHub 交互并扩展其功能。你可以构建一个 GitHub 应用来提供灵活性并减少流程中的摩擦,而无需登录用户或创建服务帐户。
GitHub Apps 的常见用例包括:
- 自动化任务或后台进程
- 支持“使用 GitHub 登录”,允许用户使用其 GitHub 帐户登录以在您的生态系统中提供其身份
- 作为开发者工具,允许用户通过登录您的 GitHub App 与 GitHub 互动,然后该 App 可以代表用户执行操作
- 将您的工具或外部服务与 GitHub 集成
与 OAuth 应用类似,GitHub Apps 使用 OAuth 2.0 并可以代表用户执行操作。与 OAuth 应用不同的是,GitHub Apps 还可以独立于用户执行操作。
GitHub Apps 可以直接安装到组织和个人帐户中,并被授予对特定仓库的访问权限。它们具有内置的 Webhook 和精细的特定权限。
默认情况下,只有组织所有者才能管理组织中 GitHub Apps 的设置。要允许其他用户更改组织拥有的 GitHub Apps 的开发者设置,所有者可以授予他们 GitHub App 管理员权限。GitHub App 管理员无法管理第三方应用程序。有关在您的组织中添加和删除 GitHub App 管理员的更多信息,请参阅“组织中的角色”。
构建 GitHub App
为了构建 GitHub App,您首先需要注册一个 GitHub App。更多信息,请参阅“注册 GitHub App”。
然后,您需要编写代码以向您的 GitHub App 添加功能。您可以使用 GitHub App 注册中的凭据向 GitHub 的 API 发出经过身份验证的请求。有关为您的 GitHub App 编写代码的更多信息,请参阅“关于为 GitHub App 编写代码”。有关发出经过身份验证的请求的更多信息,请参阅“关于使用 GitHub App 进行身份验证”。
编写完 GitHub App 的代码后,您的应用需要在某个地方运行。如果您的应用是网站或 Web 应用,您可以将其托管在 Azure App Service 等服务器上。Azure App Service。如果您的应用是客户端应用,它可能会在用户的设备上运行。
要使用您的 GitHub App,您需要将其安装到您的组织或个人帐户中。
- 如果您的 GitHub App 是**私有的**,您只能将其安装在拥有该应用的帐户上。
- 如果您的 GitHub App 是**公开的**,其他用户和组织也可以安装它。
更多信息,请参阅“安装您自己的 GitHub App”和“共享您的 GitHub App”。
了解要构建哪种类型的 GitHub App
根据您希望应用具有的功能,有多种设计 GitHub App 的方法需要考虑。
代表用户执行操作的 GitHub Apps
如果您希望您的应用代表用户执行操作,则应使用用户访问令牌进行身份验证。此类型的请求有时称为“用户到服务器”,这意味着该应用将受授予该应用的权限以及用户的权限的限制。使用此模式,用户必须在应用可以采取行动之前授权该应用。更多信息,请参阅“代表用户使用 GitHub App 进行身份验证”。
您可以使用代表用户操作的 GitHub App 创建的一些自动化示例包括:
- 一个使用 GitHub 作为您生态系统身份提供者的 GitHub App。
- 一个在 GitHub 之上添加服务的 GitHub App,这可能对 GitHub 用户有用。您可以通过 GitHub Marketplace 或将应用设为公开来与其他开发者共享该应用。
代表自身执行操作的 GitHub Apps
如果您希望您的应用代表自身而非用户执行操作,则应使用安装访问令牌进行身份验证。此类型的请求有时称为“服务器到服务器”,这意味着该应用将受授予该应用的权限的限制。更多信息,请参阅“作为 GitHub App 安装进行身份验证”。
您可以使用代表自身操作的 GitHub App 创建的一些自动化示例包括:
- 一个使用 Webhook 对满足特定条件的事件做出响应的 GitHub App。例如,您可以围绕 审核细粒度个人访问令牌的请求 的 REST API 端点创建一个根据特定策略批准请求的自动化。
- 一个帮助仓库贡献者的 GitHub App。例如,该应用可以在贡献者创建拉取请求或发表评论后发布有用的资源。
- 一个生成短期令牌以提供给其他 CI/CD 工具或从仓库提取信息的 GitHub App。
响应 Webhook 的 GitHub Apps
如果您希望您的应用响应 GitHub 上的事件,您的应用应订阅 Webhook。例如,您可能希望您的应用在打开拉取请求时留下评论。更多信息,请参阅“使用 GitHub Apps 的 Webhook”。
可以执行某些操作的 GitHub Apps
设置 GitHub App 时,您可以为该应用选择特定权限。这些权限决定了该应用可以通过 GitHub API 执行的操作、代表已登录用户可以执行的操作以及该应用可以接收的 Webhook。更多信息,请参阅“为 GitHub App 选择权限”。