使用工作流执行保护,可以定义允许列表,用于控制谁可以触发 GitHub Actions 工作流以及允许哪些事件运行它们。 有关详细信息,请参阅 关于操作策略。
注意
GitHub 添加了一个默认策略,用于阻止 pull_request_target 公共存储库中的事件。 此策略将于 2026 年 11 月 2 日强制执行。 请参阅“安全地使用 pull_request_target”。
准备添加保护
与规则集一样,工作流执行保护会与同一仓库、组织或企业中的其他保护机制叠加生效。
建议跨帐户创建多个明确定义的策略和分层保护,而不是为每个帐户创建一个大型策略。 企业所有者可以在企业级别为广泛、不可谈判的策略创建保护。 然后,组织所有者和存储库管理员可以添加到这些限制。
对于定义的每个策略,请考虑:
-
哪些组织或存储库是你的保护将针对的对象。 例如,开放源代码存储库可能需要对可以触发工作流的人员进行更严格的限制。 您可以根据可见性、部署状态或自定义属性等因素筛选存储库。
- 部署状态源自组织的 linked artifacts page。 如果这是一个重要因素,请确保在部署构件时上传部署记录。 请参阅“关于关联的项目”。
- 若要创建和分配自定义属性,请参阅 管理组织中存储库的自定义属性。
-
将保护哪些工作流 。 例如,部署生产代码的工作流可能需要某种级别的保护,但不太敏感的自动化可能不需要相同的保护级别。 可以将策略范围限定为特定的工作流路径或所需的工作流。
-
谁应该能够在目标存储库中运行这些工作流 。 这可能是具有特定角色、所选机器人帐户或特定团队的用户。 请考虑将这些用户分组到组织或企业团队中,以便可以轻松地联系和引用多个规则集。 请参阅“创建组织团队”或“创建企业团队”。
创建工作流执行策略
首先,为正在使用的帐户级别创建新的操作策略。
在存储库或组织中:
- 单击“设置”选项卡。
- 在左侧边栏中的 “操作”下,单击“ 策略”。
在企业中:
- ** **单击“策略”选项卡。
- 在左侧栏中,单击“ 操作”,然后单击“ 策略”。
提示
若要以编程方式管理策略,请参阅 GitHub Actions 策略的 REST API 端点。
配置策略
接下来,创建新的策略。
- 选择策略的名称。
- 选择强制状态。 如果选择 评估(仅限 GitHub Enterprise Cloud),则可以在策略见解中查看用户何时会触发该限制。
- 以所需的工作流、组织或仓库为目标。
- 配置以下工作流执行保护。
限制参与者
默认情况下,对存储库具有写入访问权限的每个用户都可以触发工作流。 执行组件规则允许将参与代码的人员与运行 CI 的人员分开,以便你可以授予参与者写入访问权限,而无需授予他们执行工作流的能力。
只有允许的执行组件才能在目标存储库中运行指定的工作流。 如果还限制事件,则这些用户只能使用允许的事件触发工作流。 不允许执行组件根本无法运行指定的工作流。
GitHub 在其运行所在的 GitHub Actions 内置进程中,这些功能不受这些限制约束。 但是,如果您创建了需要由与 GitHub 功能关联的身份运行的工作流,例如 dependabot[bot],则必须将该身份添加为允许的执行者。
限制事件
事件规则控制允许的事件,例如push,pull_request``pull_request_target和workflow_dispatch。
评估策略
您可以查看策略洞察,了解哪些工作流运行已被阻止(对于处于活动状态的策略),或者哪些工作流运行本会被阻止(对于“评估”策略)。 这是检查策略是否按预期工作且不造成不必要的摩擦的好方法。
若要查看见解,请单击 “策略见解 ”页。 你将直接在存储库、组织或企业侧栏中的策略 GitHub Actions 页面下找到此信息。