Overview
使用 automations,您可以将 Copilot云代理 设置为自动运行,可以按计划运行,也可以在响应存储库中的事件时运行。 Automations 可以在其配置所在的仓库中执行操作,例如发起拉取请求或为议题添加标签。
对于手动启动的 Copilot云代理 会话,每次你想让其执行工作时,都需要向 Copilot 分配一项任务。 使用 automations 时,只需定义一次任务;每当 Copilot 的触发器被触发时,自动化 都会自动运行该任务。
例如,您可以使用 automations 来:
- 会审传入问题:根据新问题的内容自动将新问题标记为 bug、增强或其他问题。
- 每晚修复失败的测试:每晚检查
main分支上失败的测试,尝试修复,并创建草稿拉取请求。 - 准备每周发布说明:按计划起草发布说明并创建拉取请求。
创建 自动化时,定义:
- 用于标识 自动化 的名称。
- 描述你希望Copilot执行的任务的提示词。
- 一个或多个 触发器 ,用于确定 自动化 何时运行。
- 模型Copilot使用。
- 这些工具Copilot可以使用,用于控制可在存储库中执行的操作。
有关创建和管理 automations的说明,请参阅 使用 Copilot 云代理创建自动化。
可用性和权限
若要 automations 在存储库中可用,以下所有内容都必须为 true:
- 存储库必须是 专用存储库或内部存储库。 Automations 在公共存储库中不可用。
- 必须为该存储库启用 Copilot云代理。 如果您拥有 Copilot业务 或 Copilot Enterprise,则管理员必须启用 Copilot云代理 策略。 请参阅“管理对 GitHub Copilot 云代理的访问权限”。
- 组织必须在存储库中同时允许 Copilot云代理 和 automations(二者默认均处于启用状态)。 请参阅“将GitHub Copilot云代理添加到组织”。
Automations可用于GitHub Copilot Pro、GitHub Copilot Pro+、GitHub Copilot Max、GitHub Copilot业务和GitHub Copilot Enterprise计划。
对存储库具有 写入访问权限 的任何用户都可以在该存储库中创建 automations 。
可以从以下方法创建和管理 automations :
- 在 GitHub 上某个仓库的 代理 选项卡中,位于 Automations 窗格内。
- Automations中的GitHub Copilot 应用 选项卡。
触发器
当其某个触发器被触发时,自动化 就会执行。 以下触发器可用:
- 按计划:按 自动化 定期间隔(每小时、每天或每周)运行。
- 创建问题时:自动化 会在每次在仓库中创建问题时运行。
- 创建拉取请求时:自动化 会在存储库中每次创建拉取请求时运行。
- 当拉取请求同步时:每次向仓库中的拉取请求推送新提交时,自动化 都会运行。
可以选择为基于事件的触发器配置筛选器:
- 对于 何时创建问题,请添加搜索查询筛选器。
- 对于 打开拉取请求时 以及 同步拉取请求时 这两种情况,请添加搜索查询筛选条件,以及针对拉取请求中已更改文件的筛选条件。
若要降低提示注入的风险, automations 请忽略默认情况下没有存储库写入访问权限的用户触发的事件。 这有助于防止不受信任的用户(例如创建议题的外部参与者)导致 Copilot 采取措施。 如果需要,您可以选择允许这些事件。 有关详细信息,请参阅 安全和安全。
工具和操作
你在创建自动化时选择的工具,决定了Copilot运行时自动化可以执行哪些操作。
例如,可以允许 Copilot 推送更改、更新问题标签或创建拉取请求。
选择工具是控制 自动化 范围的主要方式。 仅授予任务所需的工具,以便 Copilot 无法执行你不打算执行的操作。
您可以手动选择要启用的工具,也可以使用建议工具按钮,让Copilot根据您的提示建议工具。
自动化 只能在其作用域限定的单个仓库中执行操作。
从存储库继承的配置
Automations 使用其作用域所属存储库的 Copilot云代理 配置,包括:
- 自定义说明。 请参阅“为GitHub Copilot添加存储库自定义说明”。
- 代理技能。 请参阅“为 GitHub Copilot 添加代理技能”。
- 防火墙规则。 请参阅“自定义或禁用 GitHub Copilot 云代理的防火墙”。
- 机密和变量。 请参阅“为 Copilot 云代理配置机密和变量”。
Automations 与存储库的内容分开存储。 它们不会提交到 Git 仓库,因此既不会与你的代码一同进行版本控制,也不会通过拉取请求来管理。
Visibility
自动化仅对创建它的用户可见。 其他人,包括存储库管理员,看不到你的 automations。
但是,由 Copilot云代理 启动的 自动化会话 对其他有权访问代码库的人可见,就像任何其他 Copilot云代理 会话一样。 任何可以查看这些会话的人都可以看到提示内容、会话日志,以及 Copilot 创建的任何拉取请求或其他更改。
由于会话及其日志对其他人可见,因此不应直接在提示中包含 自动化机密或其他敏感信息。 若要授予 Copilot 对敏感值的访问权限,请改用存储库机密。 请参阅“为 Copilot 云代理配置机密和变量”。
Billing
每次自动化运行时,它都会启动一个Copilot云代理会话,该会话会使用GitHub Actions分钟和GitHub AI Credits。 此用量将向创建了 自动化 的用户计费。 有关详细信息,请参阅“GitHub Copilot许可证”。
安全和安全
Automations 无需由人工发起每项任务即可运行 Copilot ,因此会带来一些额外的风险。 GitHub 提供内置保护来帮助缓解这些风险。
- 归 因。 由 自动化 打开的拉取请求和推送的代码归属于创建 自动化 的用户。 与用户自行创建的拉取请求一样,他们无法批准这些拉取请求,从而保留了预期的评审控制机制。
- 最小权限工具。 你可以准确选择可以使用的工具 自动化 ,因此你可以将其限制为仅任务所需的操作。
- 不受信任的输入。 默认情况下, automations 忽略不具有存储库写入访问权限的用户触发的事件,以减少不受信任的用户出现提示注入的风险。
- 工作流运行情况。 与所有 Copilot云代理 工作一样,在具有写入访问权限的用户批准之前, GitHub Actions 工作流不会在拉取请求上运行。 这可降低由 自动化 发起的拉取请求自动触发工作流的风险。
有关如何GitHub缓解Copilot云代理风险的详细信息,请参阅GitHub Copilot云代理的风险和缓解措施。