Skip to main content

管理存储库的 GitHub Actions 设置

您可以对特定仓库禁用或配置 GitHub Actions。

关于仓库的 GitHub Actions 权限

默认情况下,GitHub Actions 将在所有仓库和组织上启用。 You can choose to disable GitHub Actions or limit it to actions and reusable workflows in your organization. 有关 GitHub Actions 的更多信息,请参阅“关于 GitHub Actions”。

您可以对您的仓库启用 GitHub Actions。 When you enable GitHub Actions, workflows are able to run actions and reusable workflows located within your repository and any other public repository. 您可以对您的仓库完全禁用 GitHub Actions。 禁用 GitHub Actions 时,仓库中不会运行任何工作流程。

或者,您也可以在存储库中启用 GitHub Actions,但限制工作流程可以运行的操作和可重用工作流程。

管理仓库的 GitHub Actions 权限

您可以禁用存储库的 GitHub Actions ,或设置策略来配置可在存储库中使用的 和可重用工作流 。

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

  1. 在 GitHub.com 上,导航到仓库的主页面。

  2. 在仓库名称下,单击 Settings(设置)仓库设置按钮

  3. In the left sidebar, click Actions, then click General.

  4. 在“Actions permissions(操作权限)”下,选择一个选项。

    If you choose Allow OWNER, and select non-OWNER, actions and reusable workflows, actions and reusable workflows within your organization are allowed, and there are additional options for allowing other specific actions and reusable workflows. For more information, see "Allowing select actions and reusable workflows to run."

    When you allow actions and reusable workflows from only in your organization, the policy blocks all access to actions authored by GitHub. For example, the actions/checkout action would not be accessible.

    为此存储库设置操作策略

  5. 单击 Save(保存)

允许所选操作 和可重启工作流程 运行

选择 Allow OWNER, and select non-OWNER, actions and reusable workflows 时,允许本地操作 和可重用工作流程 ,并且还有其他选项可用于允许其他特定操作 和可重用工作流程:

  • 允许 GitHub 创建的操作: 您可以允许 GitHub 创建的所有操作用于工作流程。 GitHub 创建的操作位于 actionsgithub 组织中。 更多信息请参阅 actionsgithub 组织。

  • 允许已验证的创建者执行市场操作: 您可以允许工作流程使用由经过验证的创建者创建的所有 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 Actions 的工作流程语法”。

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

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

  1. 在 GitHub.com 上,导航到仓库的主页面。

  2. 在仓库名称下,单击 Settings(设置)仓库设置按钮

  3. In the left sidebar, click Actions, then click General.

  4. 在 Actions permissions(操作权限)下,选择 Allow OWNER, and select non-OWNER, actions and reusable workflows 并将所需操作添加到列表中。

    将操作和可重用工作流程添加到允许列表

  5. 单击 Save(保存)

控制从复刻到公共存储库中工作流程的更改

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

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

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

您可以使用以下过程为存储库配置此行为。 修改此设置会覆盖组织或企业级别的配置集。

  1. 在 GitHub.com 上,导航到仓库的主页面。

  2. 在仓库名称下,单击 Settings(设置)仓库设置按钮

  3. In the left sidebar, click Actions, then click General.

  4. Fork pull request workflows from outside collaborators(从外部贡献者复刻拉取请求工作流程)下,选择您的选项。 选项按照从限制最少到限制最多的顺序列出。

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

  5. 单击 Save(保存)以应用设置。

有关批准此政策适用的工作流程运行的更多信息,请参阅“批准公共复刻中的工作流程运行”。

为私有仓库的复刻启用工作流程

如果您依赖于使用私有仓库的复刻,您可以配置策略来控制用户如何在 pull_request 事件上运行工作流程。 Available to private repositories only, you can configure these policy settings for organizations, or repositories.

如果为 组织禁用了某个策略,则无法为存储库启用该策略。

  • Run workflows from fork pull requests(从复刻拉取请求运行工作流程) - 允许用户使用具有只读权限、没有密码访问权限的 GITHUB_TOKEN从复刻拉取请求运行工作流程。
  • Send write tokens to workflows from pull requests(从拉取请求向工作流程发送写入令牌) - 允许从复刻拉取请求以使用具有写入权限的 GITHUB_TOKEN
  • Send secrets to workflows from pull requests(从拉取请求向工作流程发送密码) - 使所有密码可用于拉取请求。

为私有仓库配置复刻策略

  1. 在 GitHub.com 上,导航到仓库的主页面。
  2. 在仓库名称下,单击 Settings(设置)仓库设置按钮
  3. In the left sidebar, click Actions, then click General.
  4. Fork pull request workflows(复刻拉取请求工作流程)下,选择您的选项。 例如: 启用、禁用或限制此仓库的操作
  5. 单击 Save(保存)以应用设置。

为您的仓库设置 GITHUB_TOKENN 的权限

您可以设置授予 GITHUB_TOKEN 的默认权限。 For more information about the GITHUB_TOKEN, see "Automatic token authentication." You can choose a restricted set of permissions as the default, or apply permissive settings.

默认权限也可以在组织设置中配置。 如果您的存储库属于某个组织,并且在组织设置中选择了限制性更强的默认值,则会在存储库设置中选择相同的选项,并禁用允许选项。

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

配置默认 GITHUB_TOKENN 权限

默认情况下,当您在个人帐户中创建新存储库时,GITHUB_TOKEN 仅对 contents 范围具有读取访问权限。 如果您在组织中创建新存储库,则该设置将继承自组织设置中的配置。

  1. 在 GitHub.com 上,导航到仓库的主页面。

  2. 在仓库名称下,单击 Settings(设置)仓库设置按钮

  3. In the left sidebar, click Actions, then click General.

  4. 在“Workflow permissions(工作流程权限)”下,选择您是否想要 GITHUB_TOKENN 读写所有范围限, 或者只读内容范围。

    为此仓库设置 GITHUB_TOKENN 权限

  5. 单击 Save(保存)以应用设置。

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

You can choose to allow or prevent GitHub Actions workflows from creating or approving pull requests.

默认情况下,当您在个人帐户中创建新存储库时,不允许工作流程创建或批准拉取请求。 如果您在组织中创建新存储库,则该设置将继承自组织设置中的配置。

  1. 在 GitHub.com 上,导航到仓库的主页面。

  2. 在仓库名称下,单击 Settings(设置)仓库设置按钮

  3. In the left sidebar, click Actions, then click General.

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

    为此仓库设置 GITHUB_TOKENN 权限

  5. 单击 Save(保存)以应用设置。

为仓库中构件和日志的 GitHub Actions 配置保留期

您可以为仓库中的 GitHub Actions 构件和日志配置保留期。

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

  • 对于公共仓库:您可以将此保留期更改为 1 至 90 天。
  • 对于私有 存储库:您可以将此保留期更改为 1 天或 400 天之间的任何保留期。

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

您还可以为工作流程创建的特定构件自定义保留期。 更多信息请参阅“设置构件的保留期”。

设置仓库的保留期

  1. 在 GitHub.com 上,导航到仓库的主页面。
  2. 在仓库名称下,单击 Settings(设置)仓库设置按钮
  3. In the left sidebar, click Actions, then click General.
  4. Under Artifact and log retention, enter a new value.
  5. 单击 Save(保存)以应用更改。