Skip to main content

在企业中为 GitHub Actions 实施策略

您可以为企业组织内的 GitHub Actions 执行策略,或者允许在每个组织中设置策略。

谁可以使用此功能?

Enterprise owners can enforce policies for GitHub Actions in an enterprise.

关于企业中 GitHub Actions 的策略

GitHub Actions 可帮助您的企业成员在 GitHub Enterprise Server 上自动执行软件开发工作流程。 有关详细信息,请参阅“了解 GitHub Actions”。

如果启用 GitHub Actions,则 你的 GitHub Enterprise Server 实例 上的任何 组织都可以使用 GitHub Actions。 你可以强制实施策略来控制 GitHub Enterprise Server 上的企业成员如何使用 GitHub Actions。 默认情况下,组织所有者可以管理成员如何使用 GitHub Actions。 有关详细信息,请参阅“禁用或限制组织的 GitHub Actions”。

强制实施策略以限制企业中 GitHub Actions 的使用

您可以选择对企业中的所有组织禁用 GitHub Actions,或只允许特定的组织。 还可以限制公共操作的使用,让用户只能使用企业中现有的本地操作。

  1. 在 GitHub Enterprise Server 的右上角,单击你的个人资料照片,然后单击“企业设置”****。

    单击 GitHub Enterprise Server 上的个人资料照片时显示的下拉菜单的屏幕截图。 “企业设置”选项以深橙色边框突出显示。

  2. 在页面左侧的企业帐户边栏中,单击 策略”。

  3. 在“ 策略”下,单击“操作”。****

  4. 在“Policies(策略)”下选择选项。

    如果选择 允许选择操作____,则允许企业内的操作,并且还有允许其他特定操作的其他选项。 有关详细信息,请参阅“允许选择操作来运行”。

    本地到企业的操作

    注意:若要启用对公共操作的访问,首先必须配置 你的 GitHub Enterprise Server 实例,以连接到 GitHub.com。 有关详细信息,请参阅“使用 GitHub Connect 启用对 GitHub.com 操作的自动访问”。

  5. 单击“保存” 。

允许选择操作以运行

如果选择 允许选择操作____,则允许本地操作,并且还允许其他特定操作的其他选项:

注意:如果你的组织有覆盖策略或由具有覆盖策略的企业帐户管理,则可能无法管理这些设置。 有关详细信息,请参阅“禁用或限制组织的 GitHub Actions”或“在企业中为 GitHub Actions 实施策略”。

  • 允许 GitHub 创建的操作: 可以允许工作流使用 GitHub 创建的所有操作。 GitHub 创建的操作位于 actionsgithub 组织中。 有关详细信息,请参阅 actionsgithub 组织。

  • 允许经过验证的创建者执行的 Marketplace 操作:如果已启用 GitHub Connect 并配置了 GitHub Actions,则此选项可用。**** 有关详细信息,请参阅“使用 GitHub Connect 启用对 GitHub.com 操作的自动访问”。可以允许工作流使用由经过验证的创建者创建的所有 GitHub Marketplace 操作。 如果 GitHub 验证该操作的创建者为合作伙伴组织, 徽章将显示在 GitHub Marketplace 中的操作旁边。

  • 允许指定的操作:可以限制工作流使用特定组织和存储库中的操作。 设置时,指定的操作数不能超过 1000。

    若要限制对操作的特定标记或提交 SHA 的访问,请使用工作流中使用的相同语法来选择操作。

    • 对于操作,语法为 OWNER/REPOSITORY@TAG-OR-SHA。 例如,使用 actions/javascript-action@v1.0.1 选择标记或使用 actions/javascript-action@a824008085750b8e136effc585c3cd6082bd575f 选择 SHA。 有关详细信息,请参阅“查找和自定义操作”。

    可以使用 * 通配符来匹配模式。 例如,若要允许以 space-org 开头的组织中的所有操作,可以指定 space-org*/*。 若要允许以 octocat 开头的存储库中的所有操作,可以使用 */octocat**@*。 有关使用 * 通配符的详细信息,请参阅“GitHub Actions 的工作流语法”。

此过程演示如何将特定操作添加到允许列表。

  1. 在 GitHub Enterprise Server 的右上角,单击你的个人资料照片,然后单击“企业设置”****。

    单击 GitHub Enterprise Server 上的个人资料照片时显示的下拉菜单的屏幕截图。 “企业设置”选项以深橙色边框突出显示。

  2. 在页面左侧的企业帐户边栏中,单击 策略”。

  3. 在“ 策略”下,单击“操作”。****

  4. 在“策略”下,选择 允许选择操作____ 并向列表添加所需操作。

禁用存储库级别的自托管运行器

GitHub Enterprise Server 的自托管运行器不一定会被托管到无威胁的临时虚拟机上。 因此,工作流中不受信任的代码可能会危及它们。

同样,任何可以创建存储库分支并打开拉取请求的人(通常是那些对存储库具有读取访问权限的人)都能够损害自托管运行器环境,包括获得对机密和 GITHUB_TOKEN 的访问权限,根据其设置,可以授予对存储库的写入权限。 尽管工作流程可以通过使用环境和必需的审查来控制对环境密钥的访问,但是这些工作流程不是在隔离的环境中运行,在自托管运行程器上运行时仍然容易遭受相同的风险。

出于这些和其他原因,你可能会决定阻止用户在存储库级别创建自托管运行器。有关在存储库级别创建自托管运行器的详细信息,请参阅“添加自托管的运行器”。

默认情况下,对存储库具有管理员访问权限的任何人都可以为存储库添加自托管运行器。 通过企业设置,可以在企业中的所有存储库中禁用存储库级别的自托管运行器。 如果在企业设置中允许使用存储库级别的自托管运行器,组织所有者可以选择允许或阻止为其组织中的部分或所有存储库创建存储库级别自托管运行器。 有关详细信息,请参阅“禁用或限制组织的 GitHub Actions”。

注意:禁止创建存储库级自托管运行器后,工作流仍可访问已在企业或组织级别设置的自托管运行器。

  1. 在 GitHub Enterprise Server 的右上角,单击你的个人资料照片,然后单击“企业设置”****。

    单击 GitHub Enterprise Server 上的个人资料照片时显示的下拉菜单的屏幕截图。 “企业设置”选项以深橙色边框突出显示。

  2. 在页面左侧的企业帐户边栏中,单击 策略”。

  3. 在“ 策略”下,单击“操作”。****

  4. 在“运行器”部分中选择“为所有组织禁用”。

  5. 单击“保存”应用更改****。

在企业中实施构件和日志保留策略

GitHub Actions 可以存储构件和日志文件。 有关详细信息,请参阅“下载工作流程构件”。

默认情况下,工作流程生成的构件和日志文件将保留 90 天,然后自动删除。 可以将此保持期更改为 1 天或 400 天之间的任何时长。

自定义保留期时,它仅适用于新构件和日志文件,并且不追溯性地应用于现有对象。 对于托管的仓库和组织,最长保留期不能超过管理组织或企业设置的限制。

  1. 在 GitHub Enterprise Server 的右上角,单击你的个人资料照片,然后单击“企业设置”****。

    单击 GitHub Enterprise Server 上的个人资料照片时显示的下拉菜单的屏幕截图。 “企业设置”选项以深橙色边框突出显示。

  2. 在页面左侧的企业帐户边栏中,单击 策略”。

  3. 在“ 策略”下,单击“操作”。****

  4. 在“项目、日志和缓存设置”部分中,在“项目和日志保留”下,输入一个新值。

  5. 单击“保存”应用更改****。

在企业中实施复刻拉取请求的策略

可以实施策略以控制当企业成员从分支运行工作流时 GitHub Actions 对 你的 GitHub Enterprise Server 实例 的行为方式。

在私有仓库中实施复刻拉取请求的策略

如果依赖于使用专用存储库的分支,你可以配置策略来控制用户如何在 pull_request 事件上运行工作流。 适用于专用存储库和内部存储库,可以为你的企业、组织或存储库配置这些策略设置。

如果为企业启用了某个策略,可以在单个组织或存储库中选择性禁用该策略。 如果为企业禁用了某个策略,则单个组织或存储库无法启用该策略。

  • 从分支拉取请求运行工作流 - 允许用户使用具有只读权限、没有密码访问权限的 GITHUB_TOKEN,从分支拉取请求运行工作流。
  • 从拉取请求向工作流发送写入令牌 - 允许来自分支的拉取请求使用具有写入权限的 GITHUB_TOKEN
  • 从拉取请求向工作流发送机密 - 使所有机密都可用于拉取请求。
  • 需要批准拉取请求分支工作流 - 如果工作流在没有写权限的协作者发出的拉取请求上运行,则需要获得具有写权限的人员的批准,然后才能运行。
  1. 在 GitHub Enterprise Server 的右上角,单击你的个人资料照片,然后单击“企业设置”****。

    单击 GitHub Enterprise Server 上的个人资料照片时显示的下拉菜单的屏幕截图。 “企业设置”选项以深橙色边框突出显示。

  2. 在页面左侧的企业帐户边栏中,单击 策略”。

  3. 在“ 策略”下,单击“操作”。****

  4. 在“复刻拉取请求工作流”下,选择选项。

  5. 单击“保存”以应用设置。

在企业中实施工作流程权限策略

可以设置授予 GITHUB_TOKEN 的默认权限。 有关 GITHUB_TOKEN 的详细信息,请参阅“自动令牌身份验证”。 你可以选择一组有限的权限作为默认项或应用权限设置。

可以在企业、组织或存储库的设置中为 GITHUB_TOKEN 设置默认权限。 如果你在企业设置中选择受限制的选项作为默认值,这将防止在组织或存储库设置中选择更宽松的设置。

任何拥有存储库写入权限的人都可以通过编辑工作流文件中的 permissions 键来修改授予 GITHUB_TOKEN 的权限,或者根据需要添加或删除权限。 有关详细信息,请参阅 permissions

配置默认 GITHUB_TOKEN 权限

默认情况下,创建新企业时,GITHUB_TOKEN 仅对 contentspackages 范围具有读取访问权限。

  1. 在 GitHub Enterprise Server 的右上角,单击你的个人资料照片,然后单击“企业设置”****。

    单击 GitHub Enterprise Server 上的个人资料照片时显示的下拉菜单的屏幕截图。 “企业设置”选项以深橙色边框突出显示。

  2. 在页面左侧的企业帐户边栏中,单击 策略”。

  3. 在“ 策略”下,单击“操作”。****

  4. 在“工作流权限”下,选择是要让 GITHUB_TOKEN 对所有范围具有读写访问权限(允许设置),还是仅对 contentspackages 范围具有读取访问权限(受限设置)。

  5. 单击“保存”以应用设置。

阻止 GitHub Actions 创建或批准拉取请求

可选择允许或阻止GitHub Actions工作流创建或审批拉取请求。

默认情况下,创建新的企业时,不允许工作流创建或批准拉取请求。

  1. 在 GitHub Enterprise Server 的右上角,单击你的个人资料照片,然后单击“企业设置”****。

    单击 GitHub Enterprise Server 上的个人资料照片时显示的下拉菜单的屏幕截图。 “企业设置”选项以深橙色边框突出显示。

  2. 在页面左侧的企业帐户边栏中,单击 策略”。

  3. 在“ 策略”下,单击“操作”。****

  4. 在“工作流权限”下,使用“允许 GitHub Actions 创建和批准拉取请求”设置配置 GITHUB_TOKEN 是否可以创建和批准拉取请求。

  5. 单击“保存”以应用设置。

在企业中强制实施缓存存储策略

默认情况下,GitHub Actions 在 你的 GitHub Enterprise Server 实例 的外部存储上使用的总缓存存储限制为每个存储库最多 10 GB,可以为存储库设置的最大允许大小为 25 GB。 如果超过此限制,GitHub 将保存新缓存,但会开始收回缓存,直到总大小小于存储库限制。

但是,可以设置企业策略来自定义每个存储库的默认总缓存大小,以及存储库允许的最大总缓存大小。 例如,你可能希望每个存储库的默认总缓存大小为 5 GB,但也允许组织所有者和存储库管理员根据需要配置最大 15 GB 的总缓存大小。

组织所有者可以设置一个较小的总缓存大小,适用于他们组织中的每个存储库。 对存储库具有管理员访问权限的人员可以将其存储库的总缓存大小设置为企业或组织策略设置允许的最大缓存大小。

  1. 在 GitHub Enterprise Server 的右上角,单击你的个人资料照片,然后单击“企业设置”****。

    单击 GitHub Enterprise Server 上的个人资料照片时显示的下拉菜单的屏幕截图。 “企业设置”选项以深橙色边框突出显示。

  2. 在页面左侧的企业帐户边栏中,单击 策略”。

  3. 在“ 策略”下,单击“操作”。****

  4. 在“项目、日志和缓存设置”部分的“缓存大小上限”下,输入一个值,然后单击“保存”以应用设置 。

  5. 在“项目、日志和缓存设置”部分的“默认缓存大小限制”下,输入一个值,然后单击“保存”以应用设置 。