关于存储库的 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 Actions 策略”。
-
在 GitHub.com 上,导航到存储库的主页。
-
在你的存储库名称下,单击 设置。如果你看不到“设置”选项卡,请选择 下拉菜单,然后单击设置。
-
在左侧边栏中,单击 操作,然后单击常规。
-
在“操作权限”下,选择一个选项。
如果你选择允许所有者,并选择非所有者,操作和可重用工作流,则允许组织中的操作和可重用工作流,并且还有其他选项允许其他特定操作和可重用工作流。有关更多信息,请参阅“允许选择的操作和可重用工作流运行”。
当您仅允许来自您组织中的操作和可重用工作流时,该策略将阻止对 GitHub 创作的操作的所有访问。例如,
actions/checkout
操作将不可访问。 -
单击保存。
允许运行选定的操作和可重用工作流
当您选择允许所有者,并选择非所有者操作和可重用工作流时,将允许本地操作和可重用工作流,并且还有其他选项可用于允许其他特定操作和可重用工作流
注意:如果你的组织有覆盖策略或由有覆盖策略的企业管理,你可能无法管理这些设置。有关更多信息,请参阅“为你的组织禁用或限制 GitHub Actions”或“在你的企业中强制执行 GitHub Actions 策略”。
-
允许 GitHub 创建的操作:您可以允许工作流使用 GitHub 创建的所有操作。由 GitHub 创建的操作位于
actions
和github
组织中。有关更多信息,请参阅actions
和github
组织。 -
允许经过验证的创建者创建的 Marketplace 操作:您可以允许工作流使用经过验证的创建者创建的所有 GitHub Marketplace 操作。当 GitHub 已将操作的创建者验证为合作伙伴组织时, 徽章会显示在 GitHub Marketplace 中操作的旁边。
-
允许指定的操作和可重用工作流:您可以限制工作流在特定组织和存储库中使用操作和可重用工作流。指定的操作不能设置为超过 1000 个。
若要限制对操作或可重用工作流的特定标记或提交 SHA 的访问,请使用与工作流中用于选择操作或可重用工作流相同的语法。
- 对于操作,语法为
所有者/存储库@标记或 SHA
。例如,使用actions/[email protected]
选择标记或actions/javascript-action@a824008085750b8e136effc585c3cd6082bd575f
选择 SHA。有关更多信息,请参阅“查找和自定义操作”。 - 对于可重用工作流,语法为
所有者/存储库/路径/文件名@标记或 SHA
。例如,octo-org/another-repo/.github/workflows/workflow.yml@v1
。有关更多信息,请参阅“重用工作流”。
您可以使用
*
通配符来匹配模式。例如,若要允许所有以space-org
开头的组织中的操作和可重用工作流,您可以指定space-org*/*
。若要允许所有以 octocat 开头的存储库中的操作和可重用工作流,您可以使用*/octocat**@*
。有关使用*
通配符的更多信息,请参阅“GitHub Actions 的工作流语法”。注意:对于 GitHub Free、GitHub Pro、GitHub Free for organizations 或 GitHub Team 计划,允许指定操作和可重用工作流选项仅在公开仓库中可用。
- 对于操作,语法为
此过程演示如何将特定操作和可重用工作流添加到允许列表中。
-
在 GitHub.com 上,导航到存储库的主页。
-
在你的存储库名称下,单击 设置。如果你看不到“设置”选项卡,请选择 下拉菜单,然后单击设置。
-
在左侧边栏中,单击 操作,然后单击常规。
-
在“操作权限”下,选择允许所有者,并选择非所有者操作和可重用工作流,并将所需操作添加到列表中。
-
单击保存。
控制公开仓库中分支到工作流的更改
任何人都可以分叉公开仓库,然后提交拉取请求,提议更改仓库的 GitHub Actions 工作流。虽然来自分支的工作流无法访问敏感数据(例如密钥),但如果出于滥用目的而对其进行修改,它们可能会给维护人员带来困扰。
为帮助防止这种情况,来自某些外部贡献者的公开仓库拉取请求中的工作流将不会自动运行,并且可能需要先获得批准。默认情况下,所有首次贡献者都需要获得批准才能运行工作流。
注意:由pull_request_target
事件触发的工作流在基本分支的上下文中运行。由于基本分支被认为是受信任的,因此无论批准设置如何,由这些事件触发的工作流始终会运行。有关pull_request_target
事件的更多信息,请参阅“触发工作流的事件”。
您可以使用以下过程为仓库配置此行为。修改此设置将覆盖在组织或企业级别设置的配置。
-
在 GitHub.com 上,导航到存储库的主页。
-
在你的存储库名称下,单击 设置。如果你看不到“设置”选项卡,请选择 下拉菜单,然后单击设置。
-
在左侧边栏中,单击 操作,然后单击常规。
-
在外部合作者的分支拉取请求工作流下,选择其中一个选项。
- 要求首次使用 GitHub 的首次贡献者获得批准。此选项要求从未提交到仓库且拥有新 GitHub 帐户的用户获得批准才能运行工作流。
- 要求首次贡献者获得批准。此选项要求从未提交到仓库的用户获得批准才能运行工作流。
- 要求所有外部合作者获得批准。此选项要求所有不是仓库合作者的用户获得批准才能运行工作流。如果仓库归组织所有,则此选项要求所有不是组织成员的仓库合作者获得批准才能运行工作流。
-
单击保存以应用设置。
有关批准此策略适用的工作流运行的更多信息,请参阅“批准来自公共分支的工作流运行”。
为私有存储库的分支启用工作流
如果您依赖于使用私有存储库的分支,您可以配置策略来控制用户如何对pull_request
事件运行工作流。这些策略设置仅适用于私有存储库,您可以为组织或存储库配置这些设置。
如果某个策略对组织禁用,则无法对存储库启用该策略。
- 从分支拉取请求运行工作流 - 允许用户使用具有只读权限的
GITHUB_TOKEN
从分支拉取请求运行工作流,并且无法访问机密。 - 向工作流发送来自拉取请求的写令牌 - 允许来自分支的拉取请求使用具有写权限的
GITHUB_TOKEN
。 - 向工作流发送来自拉取请求的机密 - 使所有机密对拉取请求可用。
- 要求批准分支拉取请求工作流 - 在没有写权限的合作者的拉取请求上运行工作流,在运行之前需要获得具有写权限的人员的批准。
为私有存储库配置分支策略
-
在 GitHub.com 上,导航到存储库的主页。
-
在你的存储库名称下,单击 设置。如果你看不到“设置”选项卡,请选择 下拉菜单,然后单击设置。
-
在左侧边栏中,单击 操作,然后单击常规。
-
在分支拉取请求工作流下,选择您的选项。
-
单击保存以应用设置。
为存储库的GITHUB_TOKEN
设置权限
您可以设置授予GITHUB_TOKEN
的默认权限。有关GITHUB_TOKEN
的更多信息,请参阅“自动令牌身份验证”。您可以选择一组受限的权限作为默认权限,或应用宽松的设置。
默认权限也可以在组织设置中配置。如果您的存储库属于某个组织,并且在组织设置中选择了更严格的默认权限,则在您的存储库设置中选择相同的选项,并且禁用宽松选项。
具有对存储库的写访问权限的任何人都可以通过编辑工作流文件中的permissions
键来修改授予GITHUB_TOKEN
的权限,根据需要添加或删除访问权限。有关更多信息,请参阅permissions
。
配置默认GITHUB_TOKEN
权限
默认情况下,当您在个人帐户中创建新存储库时,GITHUB_TOKEN
仅对contents
和packages
范围具有读取访问权限。如果您在组织中创建新存储库,则该设置将从组织设置中配置的内容继承。
-
在 GitHub.com 上,导航到存储库的主页。
-
在你的存储库名称下,单击 设置。如果你看不到“设置”选项卡,请选择 下拉菜单,然后单击设置。
-
在左侧边栏中,单击 操作,然后单击常规。
-
在“工作流权限”下,选择您希望
GITHUB_TOKEN
对所有范围具有读写访问权限(宽松设置),还是仅对contents
和packages
范围具有读取访问权限(受限设置)。 -
单击保存以应用设置。
防止 GitHub Actions 创建或批准拉取请求
你可以选择允许或阻止 GitHub Actions 工作流创建或批准拉取请求。
默认情况下,当你创建个人帐户中的新存储库时,不允许工作流创建或批准拉取请求。如果你在组织中创建新存储库,则设置会从组织设置中继承。
-
在 GitHub.com 上,导航到存储库的主页。
-
在你的存储库名称下,单击 设置。如果你看不到“设置”选项卡,请选择 下拉菜单,然后单击设置。
-
在左侧边栏中,单击 操作,然后单击常规。
-
在“工作流权限”下,使用允许 GitHub Actions 创建和批准拉取请求设置来配置
GITHUB_TOKEN
是否可以创建和批准拉取请求。 -
单击保存以应用设置。
允许访问私有存储库中的组件
私有存储库中的操作和可重用工作流可以与同一用户或组织拥有的其他私有存储库共享。有关私有存储库的信息,请参阅“关于存储库”。
你可以使用以下步骤配置是否可以从存储库外部访问私有存储库中的操作和可重用工作流。有关更多信息,请参阅“从私有存储库共享操作和工作流”和“与组织共享操作和工作流”。或者,你可以使用 REST API 设置或获取访问级别的详细信息。有关更多信息,请参阅“GitHub Actions 权限的 REST API 端点”和“GitHub Actions 权限的 REST API 端点”。
管理私有存储库的访问权限
-
在 GitHub 上,导航到私有存储库的主页。
-
在你的存储库名称下,单击 设置.
-
在左侧边栏中,单击 操作,然后单击常规。
-
在访问权限下,选择一个访问权限设置
- 不可访问 - 其他存储库中的工作流无法访问此存储库。
- 可从“用户名”用户拥有的存储库访问 - 由同一用户拥有的其他存储库中的工作流可以访问此存储库中的操作和可重用工作流。仅允许从私有存储库访问。
-
单击保存以应用设置。
管理组织中私有存储库的访问权限
-
在 GitHub 上,导航到私有存储库的主页。
-
在你的存储库名称下,单击 设置.
-
在左侧边栏中,单击 操作,然后单击常规。
-
在访问权限下,选择一个访问权限设置
- 不可访问 - 其他存储库中的工作流无法访问此存储库。
- 可从“组织名称”组织中的存储库访问 - 属于“组织名称”组织的其他存储库中的工作流可以访问此存储库中的操作和可重用工作流。仅允许从私有存储库访问。
-
单击保存以应用设置。
配置存储库中 GitHub Actions 工件和日志的保留期
你可以配置存储库中 GitHub Actions 工件和日志的保留期。
默认情况下,工作流生成的制品和日志文件在自动删除之前会保留 90 天。你可以根据存储库的类型调整保留期限
- 对于公共存储库:你可以将此保留期限更改为 1 天到 90 天之间的任意时间。
- 对于私有存储库:你可以将此保留期限更改为 1 天到 400 天之间的任意时间。
当你自定义保留期限时,它仅适用于新的制品和日志文件,并且不会追溯应用于现有对象。对于托管存储库和组织,最大保留期限不能超过管理组织或企业设置的限制。
你还可以为工作流创建的特定制品定义自定义保留期限。有关详细信息,请参阅“移除工作流制品”。
设置存储库的保留期限
-
在 GitHub.com 上,导航到存储库的主页。
-
在你的存储库名称下,单击 设置。如果你看不到“设置”选项卡,请选择 下拉菜单,然后单击设置。
-
在左侧边栏中,单击 操作,然后单击常规。
-
在制品和日志保留下,输入一个新值。
-
单击保存以应用更改。