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