Skip to main content

Enforcing policies for GitHub Actions in your enterprise

You can enforce policies for GitHub Actions within your enterprise's organizations, or allow policies to be set in each organization.

Who can use this feature

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

About policies for GitHub Actions in your enterprise

GitHub Actions helps members of your enterprise automate software development workflows on GitHub Enterprise Cloud. For more information, see "Understanding GitHub Actions."

Any organization on GitHub.com can use GitHub Actions. You can enforce policies to control how members of your enterprise on GitHub Enterprise Cloud use GitHub Actions. By default, organization owners can manage how members use GitHub Actions. For more information, see "Disabling or limiting GitHub Actions for your organization."

Enforcing a policy to restrict the use of GitHub Actions in your enterprise

You can choose to disable GitHub Actions for all organizations in your enterprise, or only allow specific organizations. You can also limit the use of public actions and reusable workflows, so that people can only use local actions and reusable workflows that exist in your enterprise.

  1. 在 GitHub.com 的右上角,单击你的个人资料照片,然后单击“你的企业”。 GitHub Enterprise Cloud 上个人资料照片下拉菜单中的“你的企业”

  2. 在企业列表中,单击您想要查看的企业。 企业列表中的企业名称

  3. 在企业边栏中,单击 “策略”。 企业帐户边栏中的“策略”选项卡

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

  5. Under "Policies", select your options.

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

    如果仅允许从到企业的操作和可重用工作流,该策略会阻止对由 GitHub 创作的操作的所有访问。 例如,无法访问 actions/checkout 操作。

    Enable, disable, or limits actions for this enterprise account

  6. Click Save.

允许选择操作和可重用工作流以运行

如果选择 允许企业,并允许选择非企业、操作和可重用工作流,则允许本地操作和可重用工作流,并且还允许其他特定操作和可重用工作流的其他选项:

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

  • 允许经过验证的创建者执行的 Marketplace 操作:可以允许工作流使用由经过验证的创建者创建的所有 GitHub Marketplace 操作。 如果 GitHub 验证该操作的创建者为合作伙伴组织, 徽章将显示在 GitHub Marketplace 中的操作旁边。

  • 允许指定的操作和可重用的工作流:可以限制工作流使用特定组织和存储库中的操作和可重用工作流。

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

    • 对于操作,语法为 <OWNER>/<REPO>@<TAG OR SHA>。 例如,使用 actions/javascript-action@v1.0.1 选择标记或使用 actions/javascript-action@172239021f7ba04fe7327647b213799853a9eb89 选择 SHA。 有关详细信息,请参阅“查找和自定义操作”。
    • 对于可重用的工作流,语法为 <OWNER>/<REPO>/<PATH>/<FILENAME>@<TAG OR SHA>. 例如,octo-org/another-repo/.github/workflows/workflow.yml@v1。 有关详细信息,请参阅“重用工作流”。

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

    注意:“允许指定操作和可重用工作流”选项仅可用于具有 GitHub Free、GitHub Pro、组织的 GitHub Free 或 GitHub Team 计划的公共存储库。

此过程演示如何将特定操作和可重用工作流添加到允许列表。

  1. 在 GitHub.com 的右上角,单击你的个人资料照片,然后单击“你的企业”。 GitHub Enterprise Cloud 上个人资料照片下拉菜单中的“你的企业”

  2. 在企业列表中,单击您想要查看的企业。 企业列表中的企业名称

  3. 在企业边栏中,单击 “策略”。 企业帐户边栏中的“策略”选项卡

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

  5. Under "Policies", select 允许企业,并允许选择非企业、操作和可重用工作流 and add your required actions and reusable workflows to the list.

    Add actions and reusable workflows to the allow list

Enforcing a policy for artifact and log retention in your enterprise

GitHub Actions can store artifact and log files. For more information, see "Downloading workflow artifacts."

默认情况下,工作流程生成的构件和日志文件将保留 90 天,然后自动删除。 可以根据存储库类型调整保持期:

  • 对于公共仓库:您可以将此保留期更改为 1 至 90 天。
  • 对于专用和内部存储库:可以将此保持期更改为 1 天或 400 天之间的任何时长。

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

  1. 在 GitHub.com 的右上角,单击你的个人资料照片,然后单击“你的企业”。 GitHub Enterprise Cloud 上个人资料照片下拉菜单中的“你的企业”

  2. 在企业列表中,单击您想要查看的企业。 企业列表中的企业名称

  3. 在企业边栏中,单击 “策略”。 企业帐户边栏中的“策略”选项卡

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

  5. 在“工件和日志保留”下,输入新值。

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

Enforcing a policy for fork pull requests in your enterprise

You can enforce policies to control how GitHub Actions behaves for GitHub.com when members of your enterprise or outside collaborators run workflows from forks.

Enforcing a policy for approval of pull requests from outside collaborators

任何人都可以复刻公共仓库,然后提交建议更改仓库 GitHub Actions 工作流程的拉取请求。 虽然来自复刻的工作流程无法访问敏感数据(如密钥),但如果出于滥用目的进行修改,可能会让维护者感到烦恼。

为了帮助防止这种情况,某些外部贡献者向公共仓库提出的关于拉取请求的工作流程不会自动运行,可能需要先批准。 默认情况下,所有首次贡献者都需要批准才能运行工作流程。

注意:pull_request_target 事件触发的工作流在基础分支的上下文中运行。 由于基础分支被视为是受信任的,因此由这些事件触发的工作流将始终运行,无论审批设置如何。

  1. 在 GitHub.com 的右上角,单击你的个人资料照片,然后单击“你的企业”。 GitHub Enterprise Cloud 上个人资料照片下拉菜单中的“你的企业”

  2. 在企业列表中,单击您想要查看的企业。 企业列表中的企业名称

  3. 在企业边栏中,单击 “策略”。 企业帐户边栏中的“策略”选项卡

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

  5. 在“从外部协作者创建拉取请求工作流的分支”下,选择你的选项。 选项按照从限制最少到限制最多的顺序列出。

    公共复刻工作流程批准设置

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

有关审核此策略适用的工作流运行的详细信息,请参阅“审核来自公共分支的工作流运行”。

Enforcing a policy for fork pull requests in private repositories

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

If a policy is enabled for an enterprise, the policy can be selectively disabled in individual organizations or repositories. If a policy is disabled for an enterprise, individual organizations or repositories cannot enable it.

  • 从分支拉取请求运行工作流 - 允许用户使用具有只读权限、没有密码访问权限的 GITHUB_TOKEN,从分支拉取请求运行工作流。
  • 从拉取请求向工作流发送写入令牌 - 允许来自分支的拉取请求使用具有写入权限的 GITHUB_TOKEN
  • 从拉取请求向工作流发送机密 - 使所有机密都可用于拉取请求。
  1. 在 GitHub.com 的右上角,单击你的个人资料照片,然后单击“你的企业”。 GitHub Enterprise Cloud 上个人资料照片下拉菜单中的“你的企业”

  2. 在企业列表中,单击您想要查看的企业。 企业列表中的企业名称

  3. 在企业边栏中,单击 “策略”。 企业帐户边栏中的“策略”选项卡

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

  5. 在“复刻拉取请求工作流”下,选择选项。 例如:启用、禁用或限制此存储库的操作

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

Enforcing a policy for workflow permissions in your enterprise

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

You can set the default permissions for the GITHUB_TOKEN in the settings for your enterprise, organizations, or repositories. If you choose a restricted option as the default in your enterprise settings, this prevents the more permissive setting being chosen in the organization or repository settings.

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

Configuring the default GITHUB_TOKEN permissions

By default, when you create a new enterprise, GITHUB_TOKEN only has read access for the contents scope.

  1. 在 GitHub.com 的右上角,单击你的个人资料照片,然后单击“你的企业”。 GitHub Enterprise Cloud 上个人资料照片下拉菜单中的“你的企业”

  2. 在企业列表中,单击您想要查看的企业。 企业列表中的企业名称

  3. 在企业边栏中,单击 “策略”。 企业帐户边栏中的“策略”选项卡

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

  5. Under "Workflow permissions", choose whether you want the GITHUB_TOKEN to have read and write access for all scopes, or just read access for the contents scope.

    Set GITHUB_TOKEN permissions for this enterprise

  6. Click Save to apply the settings.

Preventing GitHub Actions from creating or approving pull requests

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

By default, when you create a new enterprise, workflows are not allowed to create or approve pull requests.

  1. 在 GitHub.com 的右上角,单击你的个人资料照片,然后单击“你的企业”。 GitHub Enterprise Cloud 上个人资料照片下拉菜单中的“你的企业”

  2. 在企业列表中,单击您想要查看的企业。 企业列表中的企业名称

  3. 在企业边栏中,单击 “策略”。 企业帐户边栏中的“策略”选项卡

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

  5. Under "Workflow permissions", use the Allow GitHub Actions to create and approve pull requests setting to configure whether GITHUB_TOKEN can create and approve pull requests.

    Set GITHUB_TOKEN permissions for this enterprise

  6. Click Save to apply the settings.