Skip to main content

管理存储库的 GitHub Actions 设置

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

Note

GitHub Enterprise Server 目前不支持 GitHub 托管的运行器。 可以在 GitHub public roadmap 上查看有关未来支持计划的更多信息。

关于仓库的 GitHub Actions 权限

默认情况下,在 GitHub Enterprise Server 上启用 GitHub Actions 之后,它 会在所有存储库和组织上启用。 可以选择禁用 GitHub Actions 或将其限制为企业中的操作 。有关 GitHub Actions 的详细信息,请参阅 写入工作流

您可以对您的仓库启用 GitHub Actions。 启用 GitHub Actions 时,工作流能够运行位于您的存储库或任何其他公共或内部存储库中的操作。 你可以对存储库完全禁用 GitHub Actions。 禁用 GitHub Actions 时,仓库中不会运行任何工作流程。

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

管理仓库的 GitHub Actions 权限

可以为存储库禁用 GitHub Actions,或者设置一个策略,用于配置可在存储库中使用哪些操作。

Note

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

  1. 在 GitHub 上,导航到存储库的主页面。

  2. 在存储库名称下,单击 “设置”。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”。

    存储库标头的屏幕截图,其中显示了选项卡。 “设置”选项卡以深橙色边框突出显示。

  3. 在左侧边栏中,单击 “操作”,然后单击“常规” 。

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

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

    本地到企业的操作

  5. 单击“ 保存”。

允许选择操作以运行

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

Note

如果你的组织有覆盖策略或由具有覆盖策略的企业帐户管理,则可能无法管理这些设置。 有关详细信息,请参阅“禁用或限制组织的 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 的工作流语法”。

    使用 , 分隔模式。 例如,要允许使用 octocatoctokit,可以指定 octocat/*, octokit/*

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

  1. 在 GitHub 上,导航到存储库的主页面。

  2. 在存储库名称下,单击 “设置”。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”。

    存储库标头的屏幕截图,其中显示了选项卡。 “设置”选项卡以深橙色边框突出显示。

  3. 在左侧边栏中,单击 “操作”,然后单击“常规” 。

  4. 在“操作权限”下,选择 允许选择操作____ 并将所需的操作添加到列表中。

  5. 单击“ 保存”。

为专用存储库的分支启用工作流

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

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

  • 从分支拉取请求运行工作流 - 允许用户使用具有只读权限、没有密码访问权限的 GITHUB_TOKEN,从分支拉取请求运行工作流。
  • 从拉取请求向工作流发送写入令牌 - 允许来自分支的拉取请求使用具有写入权限的 GITHUB_TOKEN
  • 从拉取请求向工作流发送机密 - 使所有机密都可用于拉取请求。
  • 需要批准拉取请求分支工作流 - 如果工作流在没有写权限的协作者发出的拉取请求上运行,则需要获得具有写权限的人员的批准,然后才能运行。

为专用存储库配置分支策略

  1. 在 GitHub 上,导航到存储库的主页面。

  2. 在存储库名称下,单击 “设置”。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”。

    存储库标头的屏幕截图,其中显示了选项卡。 “设置”选项卡以深橙色边框突出显示。

  3. 在左侧边栏中,单击 “操作”,然后单击“常规” 。

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

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

为存储库设置 GITHUB_TOKEN 的权限

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

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

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

配置默认 GITHUB_TOKEN 权限

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

  1. 在 GitHub 上,导航到存储库的主页面。

  2. 在存储库名称下,单击 “设置”。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”。

    存储库标头的屏幕截图,其中显示了选项卡。 “设置”选项卡以深橙色边框突出显示。

  3. 在左侧边栏中,单击 “操作”,然后单击“常规” 。

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

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

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

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

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

  1. 在 GitHub 上,导航到存储库的主页面。

  2. 在存储库名称下,单击 “设置”。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”。

    存储库标头的屏幕截图,其中显示了选项卡。 “设置”选项卡以深橙色边框突出显示。

  3. 在左侧边栏中,单击 “操作”,然后单击“常规” 。

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

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

允许访问内部存储库中的组件

内部仓库中的操作和可重用工作流可以与同一组织或企业中的内部和专用仓库共享。有关内部仓库的信息,请参阅 关于仓库

可以使用以下步骤配置是否可以从仓库外部访问内部仓库中的操作和可重用工作流。有关详细信息,请参阅 与企业共享操作和工作流。 或者,你可以使用 REST API 来设置或获取访问级别的详细信息。 有关详细信息,请参阅 GitHub Actions 权限的 REST API 终结点GitHub Actions 权限的 REST API 终结点

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

  2. 在存储库名称下,单击 “设置”。

  3. 在左侧边栏中,单击 “操作”,然后单击“常规” 。

  4. 在“访问”下,选择其中一个访问设置:

    • 无法访问- 其他存储库中的工作流无法访问此存储库。
    • 可从“ORGANIZATION NAME”组织中的存储库访问 - 属于“ORGANIZATION NAME”组织的其他存储库中的工作流可以访问此存储库中的操作和可重用工作流。 仅允许从私有或内部存储库进行访问。
    • 可从“ENTERPRISE NAME”企业中的存储库访问 - 属于“ENTERPRISE NAME”企业的其他存储库中的工作流可以访问此存储库中的操作和可重用工作流。 仅允许从私有或内部存储库进行访问。
  5. 单击“保存”以应用设置。

允许访问专用存储库中的组件

专用存储库中的操作和可重用工作流可以与其他专用存储库共享。 有关专用仓库的详细信息,请参阅 关于仓库

可以使用以下步骤配置是否可以从存储库外部访问专用存储库中的操作和可重用工作流。 有关详细信息,请参阅 与企业共享操作和工作流。或者,可以使用 REST API 来设置或获取访问级别的详细信息。 有关详细信息,请参阅 GitHub Actions 权限的 REST API 终结点GitHub Actions 权限的 REST API 终结点

  1. 在 GitHub 上,导航到专用存储库的主页面。
  2. 在存储库名称下,单击 “设置”。
  3. 在左侧边栏中,单击 “操作”,然后单击“常规” 。
  4. 在“访问”下,选择其中一个访问设置:
    • 无法访问- 其他存储库中的工作流无法访问此存储库。
    • 可从 'ORGANIZATION NAME' 组织中的存储库访问 - 属于 'ORGANIZATION NAME' 组织的其他存储库中的工作流可以访问此存储库中的操作和可重用工作流。 仅允许从专用存储库访问。
    • 可从 'ENTERPRISE NAME' 企业中的存储库访问 - 属于 'ENTERPRISE NAME' 企业的其他存储库中的工作流可以访问此存储库中的操作和可重用工作流。 仅允许从专用存储库访问。
  5. 单击“保存”以应用设置。

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

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

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

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

您还可以为工作流程创建的特定构件自定义保留期。 有关详细信息,请参阅“删除工作流程构件”。

设置仓库的保留期

  1. 在 GitHub 上,导航到存储库的主页面。

  2. 在存储库名称下,单击 “设置”。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”。

    存储库标头的屏幕截图,其中显示了选项卡。 “设置”选项卡以深橙色边框突出显示。

  3. 在左侧边栏中,单击 “操作”,然后单击“常规” 。

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

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

为存储库配置缓存存储

默认情况下,GitHub Actions 在 GitHub 的外部存储上使用的总缓存存储限制为每个存储库最多 10 GB,可以为存储库设置的最大允许大小为 25 GB。但是,如果企业所有者更改了这些默认大小,则这些默认大小可能有所不同。 如果超过此限制,GitHub 将保存新缓存,但会开始收回缓存,直到总大小小于存储库限制。

可以将存储库的总缓存存储大小设置为 组织或企业策略设置允许的最大大小。

  1. 在 GitHub 上,导航到存储库的主页面。

  2. 在存储库名称下,单击 “设置”。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”。

    存储库标头的屏幕截图,其中显示了选项卡。 “设置”选项卡以深橙色边框突出显示。

  3. 在左侧边栏中,单击 “操作”,然后单击“常规” 。

  4. 在“缓存大小限制”下,输入新值。

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