Skip to main content

企业中的自动化

了解 GitHub Apps、外部服务和 GitHub Actions 如何协同工作以自动化企业中的流程。

GitHub 上的自动化通常涉及多个组件协同工作。 最重要的 GitHub 原生组件包括:

  •         **GitHub Actions 工作流**,提供用于执行自动化逻辑的运行时。 现用即用,可在单个存储库中工作,但可以扩展它们,以便在存储库之外甚至跨存储库进行自动化。
    
  •         **GitHub Apps**,没有运行时。 相反,它们提供标识、权限和事件传送,以便您的自动化(无论是外部服务还是工作流)能够安全地进行身份验证和操作。
    

大多数企业自动化结合使用 GitHub Apps 和 GitHub Actions。 例如,在 GitHub Actions 中运行的工作流可能使用 GitHub App 获取短期令牌,使其能够跨存储库或组织执行任务。

本指南介绍了 GitHub Apps、外部自动化工具以及 GitHub Actions 如何相辅相成,以及在您的企业中何时使用每个工具。

数据变量.product.prodname_github_apps %}

GitHub App 提供在存储库、组织或你的企业上或跨这些对象进行自动化所需的身份、权限和 Webhook 事件。 GitHub Apps 本身执行逻辑,它们使其他系统能够执行。

GitHub Apps 通过提供产品支持企业自动化:

  •         **精细权限** 以遵循最小特权原则
    
  • 企业、组织或存储库级别的限定安装
  • 用于安全访问的临时令牌
  • 具有完全可审核性的独特身份
  •           通过 GitHub App 管理员角色进行**委托管理**
    
  •           由企业帐户拥有时的**大规模一致性**
    

GitHub Apps 能实现什么功能?

GitHub Apps 允许你在其他地方编写的自动化(如外部服务或工作流步骤)在你授予的权限内对 GitHub API 执行操作。 例如:

  • 接收 Webhook 事件并触发外部服务
  • 使工作流能够在默认存储库范围之外执行
  • 将 GitHub 与第三方系统集成
  • 跨多个存储库协调更改
  • 运行长期监测企业级活动的机器人或服务

GitHub Actions

GitHub Actions 提供 GitHub 内置的运行时,用于在存储库内执行自动化逻辑。 工作流在 自承载运行程序上运行,非常适合与代码更改或存储库事件相关的任务。

将 GitHub Actions 用于:

  • CI/CD(构建、测试、部署)
  • 拉取请求检查和验证
  • 存储库级维护任务
  • 响应推送、标记或问题更新的事件驱动工作流
  • 使用 cron 的计划作业

GitHub Actions 如何使用 GitHub Apps

GitHub Actions 和 GitHub Apps 深度连接:

  • 工作流权限直接映射到 GitHub App 权限。
  • 工作流可以使用 actions/create-github-app-token 作为特定 GitHub App 进行身份验证。
  • GitHub Apps 可以通过 repository_dispatch 等事件触发工作流。

外部自动化和服务

外部自动化在你自己的基础结构上的 GitHub 外部运行。 这些服务通常:

  • 从 GitHub App 接收 Webhook 事件
  • 使用 GitHub App 请求短期安装令牌
  • 执行长时间运行或跨企业逻辑
  • 与外部业务系统集成

示例包括:

  • 组织范围的配置管理
  • 策略实施服务
  • 多存储库代码或元数据同步
  • 合规性报告生成
  • 跨组织问题或拉取请求管理

所有这些都依赖 GitHub Apps 进行身份验证、身份和事件 - 而执行。

这些组件如何协同工作

大多数企业自动化结合使用 GitHub Apps、外部服务和 GitHub Actions 以实现稳健、可扩展的工作流。

例如:

  1. 创建新存储库时,企业 GitHub App 会接收 Webhook,并将 Webhook 负载发送到运行外部服务的服务器。
  2. 外部服务标准化所需的设置和预配资源。
  3. 该服务在存储库中触发 GitHub Actions 工作流。
  4. 工作流执行 CI、部署模板或配置扫描。

每个组件处理不同的自动化层。

何时使用每种类型的自动化

当您需要使用 GitHub App 时:

  • 身份验证或跨多个存储库执行操作的权限
  • 与外部系统的集成
  • Webhook 驱动的自动化流程
  • 长周期或企业级的工作流
  • 可审核性和标识分离

当你需要 外部自动化 时:

  • 连续运行或在 GitHub 外部运行的逻辑
  • 与内部系统的集成

在需要以下内容时使用 GitHub Actions

  • CI/CD 管道
  • 存储库范围的自动化
  • 与存储库事件关联的自动检查
  • 使用 GitHub 的运行器基础设施执行逻辑

在以下情况下结合使用 GitHub Apps 和 GitHub Actions

  • 工作流必须超出存储库的默认权限
  • GitHub App 需要触发一个工作流
  • 外部逻辑协调存储库内执行
  • 企业范围的策略或工作流需要标识和运行时

后续步骤

了解如何在 为企业创建GitHub应用 中设计和管理企业级 GitHub Apps。