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 如何相互补充,以及在企业中分别应在何时使用它们。

GitHub Apps

A 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、部署模板或配置扫描。

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

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

在需要时,使用a GitHub App

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

当你需要 外部自动化 时:

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

在需要时使用 GitHub Actions

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

在以下情况下同时使用GitHub Apps和GitHub Actions

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

后续步骤

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