关于 GitHub Actions 贵组织的权限
默认情况下,GitHub Actions 会在所有存储库和组织上启用。 可以选择禁用 GitHub Actions 或将其限制为企业中的操作 和可重用工作流。 有关详细信息 GitHub Actions,请参阅 撰写工作流程。
可以为组织中的所有存储库启用 GitHub Actions 。 启用 GitHub Actions 时,工作流能够运行位于您的存储库或任何其他公共或内部存储库中的操作和可重用工作流。 可以为组织中的所有存储库禁用 GitHub Actions 。 禁用 GitHub Actions 时,仓库中不会运行任何工作流程。
或者,可以为组织中的所有存储库启用 GitHub Actions ,但限制工作流可以运行的操作 和可重用工作流 。
管理您的组织的 GitHub Actions 权限
可以选择为组织中的所有存储库禁用 GitHub Actions ,或仅允许特定存储库。 还可以限制公共操作和可重用工作流的使用,以便用户只能使用企业组织中存在的本地操作。
注意
如果组织由具有替代策略的企业管理,则可能无法管理这些设置。 有关详细信息,请参阅“在企业中强制实施GitHub Actions策略”。
-
在 GitHub 的右上角,单击个人资料图片,然后单击“ Your organizations”****。
-
单击以选择一个组织。
-
在组织名称下,单击 “Settings”****。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”********。

-
在左侧边栏中,单击“ Actions”,然后单击“General”********。
-
在“Policies(策略)”下,选择一个选项。
如果选择 允许企业,并允许选择非企业、操作和可重用工作流____,则允许企业内的操作和可重用工作流,并且还有允许其他特定操作和可重用工作流的其他选项。 有关详细信息,请参阅允许选择操作和可重用工作流来运行。
如果仅允许从到企业的操作和可重用工作流,该策略会阻止对由 GitHub 创作的操作的所有访问。 例如,无法访问
actions/checkout操作。启用“Require actions to be pinned to a full-length commit SHA”后,**** 所有操作都必须关联到完整长度的提交 SHA 才能使用。 这包括来自企业的操作以及 GitHub 创作的操作。 可重用工作流仍可通过标记引用。有关详细信息,请参阅 安全使用指南。
-
单击“ 保存”。
允许选定的操作和可复用工作流运行
选择 允许企业,并允许选择非企业、操作和可重用工作流____时,允许本地操作 和可重用工作流 ,还有其他选项可用于允许其他特定操作 和可重用工作流:
注意
如果你的组织有覆盖策略或由具有覆盖策略的企业帐户管理,则可能无法管理这些设置。 有关详细信息,请参阅“禁用或限制组织的 GitHub Actions”或“在企业中强制实施GitHub Actions策略”。
-
允许使用由 GitHub 创建的操作: 可允许工作流使用由 GitHub 创建的所有操作。 由GitHub创建的操作位于
actions和github组织中。 有关更多信息,请参阅actions和github组织。 -
允许经验证的创作者执行 Marketplace 操作: 可以允许工作流使用由已验证的创建者创建的所有 GitHub Marketplace 操作。 当GitHub已将操作的创建者验证为合作伙伴组织时,该徽章将显示在操作的GitHub Marketplace旁边。
-
允许 或阻止 指定的操作 和可重用工作流: 可以限制工作流以在特定组织和存储库中使用操作 和可重用工作流 。 设置时,指定的操作数不能超过 1000。
若要限制对特定标记的访问或提交操作 或可重用工作流的 SHA,请使用工作流中使用的相同语法来选择操作 或可重用工作流。
- 对于操作,语法为
OWNER/REPOSITORY@TAG-OR-SHA。 例如,使用actions/javascript-action@v1.0.1选择标记或使用actions/javascript-action@a824008085750b8e136effc585c3cd6082bd575f选择 SHA。 有关详细信息,请参阅“在工作流中使用预编写的构建基块”。 - 对于可重用的工作流,语法为
OWNER/REPOSITORY/PATH/FILENAME@TAG-OR-SHA. 例如,octo-org/another-repo/.github/workflows/workflow.yml@v1。 有关详细信息,请参阅“重用工作流”。
可以使用
*通配符来匹配模式。 例如,若要允许名称以space-org开头的组织中的所有操作和可重用工作流,可以指定space-org*/*。 若要允许名称以 octocat 开头的仓库中的所有操作和可重用工作流,可以使用*/octocat**@*。 有关使用*通配符的更多信息,请参阅 GitHub Actions 的工作流语法。使用
,分隔模式。 例如,若要允许来自octocat和octokit组织的所有操作和可重用工作流,您可以指定octocat/*, octokit/*。使用
!前缀来屏蔽模式。 例如,若要允许来自space-org组织的所有操作和可重用工作流,但阻止特定操作(如space-org/action),则可以指定space-org/*, !space-org/action@*。 默认情况下,仅允许列表中指定的操作 和可重用工作流 。 若要允许所有操作 和可重用工作流 同时阻止特定操作,可以指定*, !space-org/action@*。 - 对于操作,语法为
此过程演示如何将特定操作 和可重用工作流 添加到列表中。
-
在 GitHub 的右上角,单击个人资料图片,然后单击“ Your organizations”****。
-
单击以选择一个组织。
-
在组织名称下,单击 “Settings”****。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”********。

-
在左侧边栏中,单击“ Actions”,然后单击“General”********。
-
在“策略”下,选择 允许企业,并允许选择非企业、操作和可重用工作流____ 所需操作 并将可重用工作流 添加到列表中。
-
单击“ 保存”。
限制自托管运行器的使用
GitHub 的自托管运行器不一定会被托管到无威胁的临时虚拟机上。 因此,工作流中不受信任的代码可能会危及它们。
同样,任何可以创建存储库分支并打开拉取请求的人(通常是那些对存储库具有读取访问权限的人)都能够损害自托管运行器环境,包括获得对机密和 GITHUB_TOKEN 的访问权限,根据其设置,可以授予对存储库的写入权限。 尽管工作流程可以通过使用环境和必需的审查来控制对环境密钥的访问,但是这些工作流程不是在隔离的环境中运行,在自托管运行程器上运行时仍然容易遭受相同的风险。
出于这些和其他原因,你可能会决定阻止用户在存储库级别创建自托管运行器。
注意
如果您的组织属于企业,则可能是在企业范围设置中禁用了在存储库级别创建自托管运行器的功能。 如果已经这样做了,则无法在组织设置中启用存储库级自托管运行器。 有关详细信息,请参阅“在企业中强制实施GitHub Actions策略”。
如果存储库在设置禁用自托管运行器时已有自托管运行器,则这些运行器将列为“已禁用”状态,且系统不会为它们分配任何新的工作流作业。

注意
禁止创建存储库级自托管运行器后,工作流仍可访问企业或组织级别的自托管运行器。
-
在 GitHub 的右上角,单击个人资料图片,然后单击“ Your organizations”****。
-
单击以选择一个组织。
-
在组织名称下,单击 “Settings”****。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”********。

-
在左侧边栏中,单击“ Actions”,然后单击“General”********。
-
在“运行器”下,使用下拉菜单选择首选设置:
- 所有存储库 - 自托管运行器可用于组织中的任何存储库。
- 所选存储库 - 自托管运行器只能用于所选存储库。
- 已禁用 - 无法在存储库级别创建自托管运行器。
-
如果选择“所选存储库”:
- 单击 。
- 勾选要允许使用自托管运行器的存储库的复选框。
- 单击“选择存储库”。
禁用标准托管运行器
您可以在组织级别禁用标准的 GitHub托管运行器。 此设置要求工作流通过运行器组将运行器指定为目标,并有助于强制执行一致的访问控制和治理策略。
有关 GitHub 托管的运行器的作业并发限制信息,请参阅 Actions 限制。
-
在 GitHub 的右上角,单击个人资料图片,然后单击“ Your organizations”****。
-
单击以选择一个组织。
-
在组织名称下,单击 “Settings”****。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”********。

-
在左侧边栏中,单击“ Actions”,然后单击“General”********。
-
滚动到“标准托管运行程序”部分,然后单击 “对所有存储库禁用”。
-
单击“ 保存”。
配置公共复刻工作流程所需的批准
任何人都可以创建公共存储库分支,然后提交一个拉取请求,该请求建议对存储库的 GitHub Actions 工作流进行更改。 虽然来自复刻的工作流程无法访问敏感数据(如密钥),但如果出于滥用目的进行修改,可能会让维护者感到烦恼。
为了帮助防止这种情况,某些外部贡献者向公共仓库提出的关于拉取请求的工作流程不会自动运行,可能需要先批准。 根据“贡献者运行分支拉取请求工作流的审批”设置,对公共存储库的拉取请求的工作流不会自动运行,并且在以下情况下可能需要审批:
- 拉取请求由用户创建,需要根据所选策略进行审批****。
- 拉取请求事件由用户触发,需要根据所选策略进行审批****。
默认情况下,所有首次贡献者都需要批准才能运行工作流程。
pull_request_target 事件触发的工作流在基础分支的上下文中运行。 由于基础分支被视为是受信任的,因此由这些事件触发的工作流将始终运行,无论审批设置如何。 有关 pull_request_target 事件的详细信息,请参阅“触发工作流的事件”。
警告
这些工作流审批策略旨在限制可在运行器中 GitHub Actions 执行工作流的用户集,这些工作流可能会导致使用 GitHub托管运行程序时出现意外的资源和计算消耗。 如果您使用自托管运行器,并且用户被允许绕过已设置的审批策略中的审批,或者拉取请求已获得批准,则由用户控制的、可能具有恶意的工作流代码将自动执行。 您必须考虑在您的基础设施中执行此代码的风险,并且无论采用何种审批设置,都应审查并遵循自托管运行器的安全建议。 请参阅“安全使用指南”。
您可以使用以下程序为组织配置此行为。 修改此设置会覆盖企业级别的配置集。
-
在 GitHub 的右上角,单击个人资料图片,然后单击“ Your organizations”****。
-
单击以选择一个组织。
-
在组织名称下,单击 “Settings”****。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”********。

-
在左侧边栏中,单击“ Actions”,然后单击“General”********。
-
在“贡献者运行分支拉取请求工作流的审批”下,选择在拉取请求上运行工作流前需要审批的用户子集****。 将检查拉取请求作者以及触发工作流的拉取请求事件的触发者,以确定是否需要批准。 如果需要审批,对存储库具有写入访问权限的用户必须批准要运行的拉取请求工作流。 请参阅“批准来自分支的工作流运行”。
警告
当仅需要审批首次贡献者时(前两种设置),已将任何提交或拉取请求合并到存储库的用户将不需要审批。 恶意用户可以通过获取维护者接受的简单拼写错误或其他无害更改来满足此要求,无论是作为他们创作的拉取请求的一部分,还是作为其他用户拉取请求的一部分。
- 要求批准首次向GitHub贡献的贡献者 只有那些既是刚开始使用 GitHub 的新用户、其提交或拉取请求又从未被合并到此仓库的用户,才需要先获得批准才能运行工作流。
- 首次参与者须经审批****。 只有从未将提交或拉取请求合并到此存储库的用户才需要先获得批准然后才能运行工作流。
- 需要审批所有外部贡献者 不是此存储库的成员或所有者,也不是组织成员的所有用户都需要批准才能运行工作流。
-
单击“保存”以应用设置。
有关审批此策略适用的工作流运行的详细信息,请参阅“批准来自分支的工作流运行”。
为专用仓库复刻启用工作流程
如果依赖于使用专用存储库的分支,你可以配置策略来控制用户如何在 pull_request 事件上运行工作流。 适用于专用存储库和内部存储库,可以为各个企业、组织或存储库配置这些策略设置。
如果为企业禁用了策略,则无法为组织启用该策略。 如果为组织禁用了策略,则无法为存储库启用该策略。 如果组织启用了某个策略,则可以对个别仓库禁用该策略。
- 从分支拉取请求运行工作流 - 允许用户使用具有只读权限、没有密码访问权限的
GITHUB_TOKEN,从分支拉取请求运行工作流。 - 从拉取请求向工作流发送写入令牌 - 允许来自分支的拉取请求使用具有写入权限的
GITHUB_TOKEN。 - 从拉取请求向工作流发送机密 - 使所有机密都可用于拉取请求。
- 需要批准拉取请求分支工作流 - 如果工作流在没有写权限的协作者发出的拉取请求上运行,则需要获得具有写权限的人员的批准,然后才能运行。
为组织配置专用复刻策略
-
在 GitHub 的右上角,单击个人资料图片,然后单击“ Your organizations”****。
-
单击以选择一个组织。
-
在组织名称下,单击 “Settings”****。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”********。

-
在左侧边栏中,单击“ Actions”,然后单击“General”********。
-
在“复刻拉取请求工作流”下,选择选项。
-
单击“保存”以应用设置。
为组织设置 GITHUB_TOKEN 的权限
您可以设置授予 GITHUB_TOKEN 的默认权限。 有关 GITHUB_TOKEN 的详细信息,请参阅 在工作流中使用 GITHUB_TOKEN 进行身份验证。 你可以选择一组有限的权限作为默认项或应用权限设置。
可以在组织或存储库的设置中为 GITHUB_TOKEN 设置默认权限。 如果你在组织设置中选择受限制的选项为默认值,那么在组织内的存储库设置中也会选择相同选项,并禁用允许选项。 如果组织属于 GitHub Enterprise 帐户,并且企业设置中选择了限制性更高的默认值,则无法在组织设置中选择更宽松的默认值。
任何拥有存储库写入权限的人都可以通过编辑工作流文件中的 GITHUB_TOKEN 键来修改授予 permissions 的权限,或者根据需要添加或删除权限。 有关详细信息,请参阅 permissions。
配置默认 GITHUB_TOKEN 权限
默认情况下,创建新组织时, 该设置继承自企业设置中配置的内容。
-
在 GitHub 的右上角,单击你的个人资料图片,然后单击你的个人资料****。

-
在 GitHub 的右上角,单击个人资料图片,然后单击“ Your organizations”****。
-
单击以选择一个组织。
-
在组织名称下,单击 “Settings”****。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”********。

-
在左侧边栏中,单击“ Actions”,然后单击“General”********。
-
在“工作流权限”下,选择是要让
GITHUB_TOKEN对所有权限具有读写访问权限(允许设置),还是仅对contents和packages权限具有读取访问权限(受限设置)。 -
单击“保存”以应用设置。
阻止 GitHub Actions 创建或批准拉取请求
可选择允许或阻止 GitHub Actions 工作流创建或审批拉取请求。
默认情况下,创建新的组织时,不允许工作流创建或批准拉取请求。
-
在 GitHub 的右上角,单击你的个人资料图片,然后单击你的个人资料****。

-
在 GitHub 的右上角,单击个人资料图片,然后单击“ Your organizations”****。
-
单击以选择一个组织。
-
在组织名称下,单击 “Settings”****。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”********。

-
在左侧边栏中,单击“ Actions”,然后单击“General”********。
-
在“工作流权限”下,使用 Allow GitHub Actions创建和批准拉取请求设置来配置
GITHUB_TOKEN是否可以创建和批准拉取请求。 -
单击“保存”以应用设置。
管理你所在组织的 GitHub Actions 缓存存储
组织管理员可以查看 GitHub Actions 组织中所有存储库的缓存存储。
按存储库查看 GitHub Actions 缓存存储空间
对于组织中的每个存储库,可查看存储库使用的缓存存储量、活动缓存的数量,以及存储库是否接近总缓存大小限制。 有关缓存使用情况和逐出过程的详细信息,请参阅“依赖项缓存参考”。
-
在 GitHub 的右上角,单击你的个人资料图片,然后单击你的个人资料****。

-
在 GitHub 的右上角,单击个人资料图片,然后单击“ Your organizations”****。
-
单击以选择一个组织。
-
在组织名称下,单击 “Settings”****。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”********。

-
在左侧栏中,单击“操作”,然后单击“缓存”。
-
查看存储库列表,了解有关其 GitHub Actions 缓存的信息。 可单击存储库名称以查看有关存储库缓存的更多详细信息。
为组织配置 GitHub Actions 缓存设置
可以配置将应用于组织中所有存储库的缓存保留和大小设置。 此功能需用户主动选择使用,并且可供具有已登记付款方式的用户使用。
如果组织归已配置缓存设置的企业所有,则只能配置限制,最多只能由企业设置上限。 如果你的组织不是企业所有(或企业尚未配置缓存设置),则可以最多配置全局最大值。
存储库管理员可以选择为其存储库配置限制,但不能超过组织级别设置的限制。
-
在 GitHub 的右上角,单击你的个人资料图片,然后单击你的个人资料****。

-
在 GitHub 的右上角,单击个人资料图片,然后单击“ Your organizations”****。
-
单击以选择一个组织。
-
在组织名称下,单击 “Settings”****。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”********。

-
在左侧边栏中,单击“ Actions”,然后单击“General”********。
-
在“缓存”部分中,配置更改并将其保存到以下设置:
- 缓存保留期:自动删除之前保留缓存的最大天数。 默认值为 7 天。 你最多可以配置 365 天(或企业设置的上限)。 单击“ 保存 ”以应用所做的任何更改。
- 缓存大小逐出限制:存储库中所有缓存的最大总大小。 默认值为 10 GB。 每个存储库最多可以配置 10,000 GB(或高达企业设置的限制)。 超过此限制后,将逐出较旧的缓存,以便为新缓存腾出空间。 单击“ 保存 ”以应用所做的任何更改。
有关缓存逐出的详细信息,请参阅 依赖项缓存参考。