关于组织的 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 Actions 实施策略”。
-
在 GitHub.com 的右上角,单击你的个人资料照片,然后单击“你的组织”。
2. 在组织旁边,单击“设置”。 1. 在左侧边栏中,单击“操作”,然后单击“常规”。 -
在“Policies(策略)”下,选择一个选项。
如果选择 允许 OWNER,并允许选择非 OWNER、操作和可重用工作流,则允许组织内的操作和可重用工作流,并且还有允许其他特定操作和可重用工作流的其他选项。 有关详细信息,请参阅“允许选择操作和可重用工作流来运行”。
如果仅允许从到组织的操作和可重用工作流,该策略会阻止对由 GitHub 创作的操作的所有访问。 例如,无法访问
actions/checkout
操作。 -
单击“ 保存”。
允许选择操作和可重用工作流以运行
如果选择 允许 OWNER,并允许选择非 OWNER、操作和可重用工作流,则允许本地操作和可重用工作流,并且还允许其他特定操作和可重用工作流的其他选项:
-
允许 GitHub 创建的操作: 可以允许工作流使用 GitHub 创建的所有操作。 GitHub 创建的操作位于
actions
和github
组织中。 有关详细信息,请参阅actions
和github
组织。 -
允许经过验证的创建者执行的 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 Actions 的工作流语法”。注意:“允许指定操作和可重用工作流”选项仅可用于具有 GitHub Free、GitHub Pro、组织的 GitHub Free 或 GitHub Team 计划的公共存储库。
- 对于操作,语法为
此过程演示如何将特定操作和可重用工作流添加到允许列表。
-
在 GitHub.com 的右上角,单击你的个人资料照片,然后单击“你的组织”。
2. 在组织旁边,单击“设置”。 1. 在左侧边栏中,单击“操作”,然后单击“常规”。 -
在“策略”下,选择 允许 OWNER,并允许选择非 OWNER、操作和可重用工作流 并向列表添加所需操作 和可重用工作流 。
-
单击“ 保存”。
配置公共复刻工作流程所需的批准
任何人都可以复刻公共仓库,然后提交建议更改仓库 GitHub Actions 工作流程的拉取请求。 虽然来自复刻的工作流程无法访问敏感数据(如密钥),但如果出于滥用目的进行修改,可能会让维护者感到烦恼。
为了帮助防止这种情况,某些外部贡献者向公共仓库提出的关于拉取请求的工作流程不会自动运行,可能需要先批准。 默认情况下,所有首次贡献者都需要批准才能运行工作流程。
注意:pull_request_target
事件触发的工作流在基础分支的上下文中运行。 由于基础分支被视为是受信任的,因此由这些事件触发的工作流将始终运行,无论审批设置如何。
您可以使用以下程序为组织配置此行为。 修改此设置会覆盖企业级别的配置集。
-
在 GitHub.com 的右上角,单击你的个人资料照片,然后单击“你的组织”。
2. 在组织旁边,单击“设置”。 1. 在左侧边栏中,单击“操作”,然后单击“常规”。 1. 在“从外部协作者创建拉取请求工作流的分支”下,选择你的选项。 选项按照从限制最少到限制最多的顺序列出。 -
单击“保存”以应用设置。
有关审核此策略适用的工作流运行的详细信息,请参阅“批准复刻中的工作流程运行”。
向组织添加必需工作流
注意:所需工作流目前处于 beta 版本阶段,可能会更改。
如果你是所有者,可将必需工作流配置为在组织中所有存储库或所选存储库中运行。 必需工作流由拉取请求触发,并且这些工作流必须先通过,然后拉取请求才能合并。 有关详细信息,请参阅“必需工作流”。
先决条件
在配置必需工作流之前,请注意以下先决条件:
- 必须在组织设置中为存储库启用 GitHub Actions 才能运行必需工作流。 在组织级别启用必需工作流后,即使在存储库设置中禁用了 GitHub Actions,必需工作流也会运行。 有关管理组织存储库中的 GitHub Actions 的详细信息,请参阅“禁用或限制组织的 GitHub Actions”。
- 必需工作流适用于组织,并且仅在组织计划支持必需状态检查的存储库中可用。 如果不支持必需状态检查,工作流仍将运行,但它不是必需检查,也不会阻止合并。 有关支持必需状态检查的详细信息,请参阅“关于受保护分支”。
- 存储库的默认分支必须与组织的默认分支设置匹配,必需工作流才能作为必需状态检查运行。 如果默认分支名称不匹配,工作流仍将运行,但它不是必需检查。 有关管理默认分支名称的详细信息,请参阅“管理组织中仓库的默认分支名称”和“更改默认分支”。
- 要运行必需工作流,拉取请求的源存储库必须与目标存储库位于同一组织中。 GitHub 将从包含工作流的存储库的默认分支的 HEAD 提交中获取必需工作流。
- 应在组织级别或目标存储库中创建必需工作流中使用的机密。
- 当工作流在目标存储库中运行时,不会提取源存储库中的机密。
源存储库的限制和行为
请注意源存储库和工作流的以下限制和行为:
-
必需工作流可以存储在任何存储库文件夹中,而不像普通工作流那样限制于
.github/workflows
文件夹。 如果必需工作流调用可重用工作流,则必须将可重用工作流存储在.github/workflows
文件夹中。 调用可重用工作流时,必需工作流必须使用完整路径,并引用该可重用工作流。 例如,{owner}/{repo}/.github/workflows/{filename}@{ref}
。 -
如果必需工作流包含在专用存储库中,则必须确保存储库中的工作流可由组织中的其他存储库访问。 有关详细信息,请参阅“管理存储库的 GitHub Actions 设置”。
-
可以将存储在公共存储库中的工作流配置为组织中任何存储库的必需工作流。 可以将存储在专用存储库中的工作流配置为组织中其他专用存储库的必需工作流。
-
必需工作流不支持 CodeQL,因为 CodeQL 需要在存储库级别进行配置。 有关配置代码扫描的信息,请参阅“为存储库配置代码扫描”。
-
要推送到在组织级别强制执行所需工作流的分支,请创建拉取请求以进行必要的更改。 不能直接推送到具有所需工作流强制执行的分支。
-
如果要允许直接推送特定存储库,则必须将该存储库作为目标从相应的所需工作流中删除。
-
可以使用包含工作流文件的存储库中的任何分支、标记或提交 SHA 来引用所需的工作流。
目标存储库的限制和行为
请注意目标存储库的以下限制和行为:
- 将必需工作流配置为在所有或所选存储库上运行时,包含必需工作流的存储库的可见性会影响组织中运行工作流的存储库。 存储在公共存储库中的必需工作流将在所有存储库上运行。 存储在专用存储库中的必需工作流将仅在其他专用存储库上运行。
- 无法将必需工作流配置为在创建工作流的存储库中运行。 应考虑创建单独的存储库来存储必需工作流。
- 将必需工作流配置为在所有或所选存储库上运行时,必需工作流不会在组织设置中禁用了其中的操作的存储库中运行。
为组织配置必需工作流
-
在 GitHub.com 的右上角,单击你的个人资料照片,然后单击“你的组织”。
2. 在组织旁边,单击“设置”。 1. 在左侧边栏中,单击“操作”,然后单击“常规”。 -
在“必需工作流”右侧,单击“添加工作流”。
-
在“必需工作流”下,使用下拉菜单选择包含工作流的存储库。 然后,在文本字段中输入工作流的路径。 可以使用
{path}@{ref}
语法从包含工作流文件的存储库引用任何分支、标记或提交 SHA。 -
(可选)若要指定要在其上强制执行必需工作流的目标分支,请在“目标分支”下的文本字段中输入一个或多个分支。 如果不输入目标分支,将在存储库的默认分支上强制执行必需工作流。
-
在“应用到存储库...”下,使用下拉菜单选择必需工作流适用的存储库。 选择“所有存储库”以将必需工作流应用于组织中的所有存储库,或选择“所选存储库”以选择要应用于哪些存储库 。
-
(可选)如果选择“所选存储库”,请单击 以打开存储库选择模式,然后使用复选框选择存储库并单击“应用所选内容”。 可使用筛选器缩小搜索范围。
-
要添加必需工作流,请单击“添加工作流”。
为私有仓库复刻启用工作流程
如果依赖于使用专用存储库的分支,你可以配置策略来控制用户如何在 pull_request
事件上运行工作流。 仅适用于专用存储库,可以为组织或存储库配置这些策略设置。
如果对组织禁用了某个策略,则无法对仓库启用该策略。 如果组织启用了某个策略,则可以对个别仓库禁用该策略。
- 从分支拉取请求运行工作流 - 允许用户使用具有只读权限、没有密码访问权限的
GITHUB_TOKEN
,从分支拉取请求运行工作流。 - 从拉取请求向工作流发送写入令牌 - 允许来自分支的拉取请求使用具有写入权限的
GITHUB_TOKEN
。 - 从拉取请求向工作流发送机密 - 使所有机密都可用于拉取请求。
- 需要批准拉取请求分支工作流 - 如果工作流在没有写权限的协作者发出的拉取请求上运行,则需要获得具有写权限的人员的批准,然后才能运行。
为组织配置私有复刻策略
-
在 GitHub.com 的右上角,单击你的个人资料照片,然后单击“你的组织”。
2. 在组织旁边,单击“设置”。 1. 在左侧边栏中,单击“操作”,然后单击“常规”。 1. 在“复刻拉取请求工作流”下,选择选项。 例如: -
单击“保存”以应用设置。
为组织设置 GITHUB_TOKEN
的权限
可以设置授予 GITHUB_TOKEN
的默认权限。 有关 GITHUB_TOKEN
的详细信息,请参阅“自动令牌身份验证”。 你可以选择一组有限的权限作为默认项或应用权限设置。
可以在组织或存储库的设置中为 GITHUB_TOKEN
设置默认权限。 如果你在组织设置中选择受限制的选项为默认值,那么在组织内的存储库设置中也会选择相同选项,并禁用允许选项。 如果你的组织属于 GitHub Enterprise 帐户,并且在企业设置中选择了更受限制的默认值,则你将无法在组织设置中选择更宽松的默认值。
任何拥有存储库写入权限的人都可以通过编辑工作流文件中的 permissions
键来修改授予 GITHUB_TOKEN
的权限,或者根据需要添加或删除权限。 有关详细信息,请参阅 permissions
。
配置默认 GITHUB_TOKEN
权限
默认情况下,在创建新组织时, GITHUB_TOKEN
仅对 contents
和 packages
范围具有读取权限。
-
在 GitHub.com 的右上角,单击你的头像照片,然后单击“你的个人资料”。
1. 在 GitHub.com 的右上角,单击你的个人资料照片,然后单击“你的组织”。 2. 在组织旁边,单击“设置”。 1. 在左侧边栏中,单击“操作”,然后单击“常规”。 -
在“工作流权限”下,选择是要让
GITHUB_TOKEN
对所有范围具有读写访问权限,还是仅对contents
和packages
范围具有读取访问权限。
-
单击“保存”以应用设置。
防止 GitHub Actions 创建或审批拉取请求
可选择允许或阻止GitHub Actions工作流创建或审批拉取请求。
默认情况下,创建新组织时,不允许工作流创建或审批拉取请求。
-
在 GitHub.com 的右上角,单击你的头像照片,然后单击“你的个人资料”。
1. 在 GitHub.com 的右上角,单击你的个人资料照片,然后单击“你的组织”。 2. 在组织旁边,单击“设置”。 1. 在左侧边栏中,单击“操作”,然后单击“常规”。 -
在“工作流权限”下,使用“允许 GitHub Actions 创建和审批拉取请求”设置,以配置
GITHUB_TOKEN
是否可以创建和审批拉取请求。
-
单击“保存”以应用设置。
管理组织的 GitHub Actions 缓存存储
组织管理员可以查看组织中所有存储库的 GitHub Actions 缓存存储。
按存储库查看 GitHub Actions 缓存存储
对于组织中的每个存储库,可查看存储库使用的缓存存储量、活动缓存的数量,以及存储库是否接近总缓存大小限制。 有关缓存使用情况和逐出过程的详细信息,请参阅“缓存依赖项以加快工作流程”。
-
在 GitHub.com 的右上角,单击你的头像照片,然后单击“你的个人资料”。
1. 在 GitHub.com 的右上角,单击你的个人资料照片,然后单击“你的组织”。 2. 在组织旁边,单击“设置”。 -
在左侧边栏中,单击 “操作”,然后单击“缓存”。
-
查看存储库列表,了解有关其 GitHub Actions 缓存的信息。 可单击存储库名称以查看有关存储库缓存的更多详细信息。