{"meta":{"title":"企业中的自动化","intro":"了解GitHub Apps、外部服务和GitHub Actions如何协同工作，实现企业流程自动化。","product":"企业管理员","breadcrumbs":[{"href":"/zh/enterprise-cloud@latest/admin","title":"企业管理员"},{"href":"/zh/enterprise-cloud@latest/admin/concepts","title":"概念"},{"href":"/zh/enterprise-cloud@latest/admin/concepts/enterprise-fundamentals","title":"Fundamentals"},{"href":"/zh/enterprise-cloud@latest/admin/concepts/enterprise-fundamentals/automations-in-your-enterprise","title":"Automations"}],"documentType":"article"},"body":"# 企业中的自动化\n\n了解GitHub Apps、外部服务和GitHub Actions如何协同工作，实现企业流程自动化。\n\n在 GitHub 上实现自动化通常涉及多个组件协同工作。 最重要的 GitHub 原生组件包括：\n\n* **GitHub Actions 工作流**，提供用于执行自动化逻辑的运行时。 现用即用，可在单个存储库中工作，但可以扩展它们，以便在存储库之外甚至跨存储库进行自动化。\n* **GitHub Apps**，它没有运行时。 相反，它们提供标识、权限和事件传送，以便您的自动化（无论是外部服务还是工作流）能够安全地进行身份验证和操作。\n\n大多数企业自动化使用 GitHub Apps 和 GitHub Actions 一起使用。 例如，在 GitHub Actions 中运行的工作流可能会使用 GitHub App 来获取短期令牌，使其能够跨存储库或组织执行任务。\n\n本指南解释了 GitHub Apps、外部自动化和 GitHub Actions 如何相互补充，以及在企业中分别应在何时使用它们。\n\n## GitHub Apps\n\nGitHub App 提供在存储库、组织或你的企业上或跨这些对象进行自动化所需的**身份、权限和 Webhook 事件**。\nGitHub Apps 它们本身 **不** 执行逻辑，它们使其他系统能够执行此操作。\n\nGitHub Apps 通过产品/服务支持企业自动化：\n\n* **精细权限** 以遵循最小特权原则\n* 企业、组织或存储库级别的**限定安装**\n* 用于安全访问的**临时令牌**\n* 具有完全可审核性的**独特身份**\n* ```\n            通过 **** 管理员角色进行GitHub App\n  ```\n* ```\n            由企业帐户拥有时的**大规模一致性**\n  ```\n\n### GitHub Apps 可实现哪些功能？\n\nGitHub Apps 允许你在其他地方编写的**自动化**（例如外部服务或工作流步骤）在你授予的权限范围内对 GitHub API 执行操作。 例如：\n\n* 接收 Webhook 事件并触发外部服务\n* 使工作流能够在默认存储库范围之外执行\n* 将 GitHub 与第三方系统集成\n* 跨多个存储库协调更改\n* 运行长期监测企业级活动的机器人或服务\n\n> \\[!NOTE]\n> 企业安装的 GitHub Apps 不能调用每个 API 终结点。 请参阅“[在企业上安装 GitHub App](/zh/enterprise-cloud@latest/apps/using-github-apps/installing-a-github-app-on-your-enterprise#what-enterprise-installed-apps-can-do)”。\n\n## GitHub Actions\n\nGitHub Actions 提供 GitHub 的内置 **运行时**，用于在存储库内执行自动化逻辑。 工作流在 托管或 自托管运行器上运行，非常适合处理与代码更改或仓库事件相关的任务。\n\n在以下情况使用 GitHub Actions：\n\n* CI/CD（构建、测试、部署）\n* 拉取请求检查和验证\n* 存储库级维护任务\n* 响应推送、标记或问题更新的事件驱动工作流\n* 使用 cron 的计划作业\n\n### GitHub Actions如何使用GitHub Apps\n\nGitHub Actions 和 GitHub Apps 密切相关：\n\n* 工作流权限直接映射到 GitHub App 权限。\n* 工作流可以使用 GitHub App 作为特定 `actions/create-github-app-token` 进行身份验证。\n* GitHub Apps 可以通过事件（例如 `repository_dispatch`）触发工作流。\n\n## 外部自动化和服务\n\n外部自动化在你自己的基础结构上的 GitHub 外部运行。 这些服务通常：\n\n* 从 GitHub App 接收 Webhook 事件\n* 使用  GitHub App 请求生存期较短的安装令牌\n* 执行长时间运行或跨企业逻辑\n* 与外部业务系统集成\n\n示例包括：\n\n* 组织范围的配置管理\n* 策略实施服务\n* 多存储库代码或元数据同步\n* 合规性报告生成\n* 跨组织问题或拉取请求管理\n\n所有这些都依赖 GitHub Apps 进行身份验证、身份标识和事件处理，**而不是**用于执行。\n\n## 这些组件如何协同工作\n\n大多数企业自动化采用 GitHub Apps、外部服务和 GitHub Actions 的组合来实现健壮、可扩展的工作流。\n\n例如：\n\n1. 创建新存储库时，企业 GitHub App 会收到 Webhook，并将 Webhook 有效负载发送到运行外部服务的服务器。\n2. 外部服务标准化所需的设置和预配资源。\n3. 服务在 GitHub Actions 存储库中触发工作流。\n4. 工作流执行 CI、部署模板或配置扫描。\n\n每个组件处理不同的自动化层。\n\n## 何时使用每种类型的自动化\n\n在需要时，使用**a GitHub App**：\n\n* 身份验证或跨多个存储库执行操作的权限\n* 与外部系统的集成\n* Webhook 驱动的自动化流程\n* 长周期或企业级的工作流\n* 可审核性和标识分离\n\n当你需要 **外部自动化** 时：\n\n* 持续运行或在 GitHub 外部运行的逻辑\n* 与内部系统的集成\n\n在需要时使用 **GitHub Actions** ：\n\n* CI/CD 管道\n* 存储库范围的自动化\n* 与存储库事件关联的自动检查\n* 使用 GitHub 的运行器基础架构执行逻辑\n\n在以下情况下**同时使用GitHub Apps和GitHub Actions**：\n\n* 工作流必须超出存储库的默认权限\n* GitHub App需要触发工作流\n* 外部逻辑协调存储库内执行\n* 企业范围的策略或工作流需要标识和运行时"}