注意
Copilot 编码智能体 is in 公共预览版 and subject to change.
简介
可以将 GitHub 议题分配给 Copilot,就像对待人类软件开发人员一样。 Copilot 将开始处理该议题,提出拉取请求,并在处理完成后请求你进行审查。 有关详细信息,请参阅“关于将任务分配到 Copilot”。
如果之前没有使用过 Copilot 来处理议题,可以在 Best practices for using Copilot to work on tasks 中找到一些有用的建议,以便获得良好的结果。
将议题分配给 Copilot
可以通过将议题分配给 Copilot 来要求 Copilot 开始处理议题。
可以通过以下方式将议题分配给 Copilot:
- 在 GitHub.com 上(请参阅下一节)
- 在 GitHub Mobile 上
- 通过 GitHub API(请参阅本文后面的内容)
- 使用 GitHub CLI(请参阅
gh issue edit
)
在 GitHub.com 上将议题分配给 Copilot
可以在 GitHub.com 上将议题分配给 Copilot,方法与分配其他用户完全相同。
-
在 GitHub 上,导航到存储库的主页面。
-
在存储库名称下,单击 “问题”。
-
打开想要分配给 Copilot 的议题。
-
在右侧菜单中,单击“分配”。
-
从被分配者列表中单击“Copilot”****。
提示
将议题分配给 Copilot 时,系统会发送议题标题、描述和当前存在的任何评论。 分配议题后,Copilot 不会知道添加到该议题的任何进一步评论,因此也不会对其做出反应。 如果有更多信息,或要对原始要求进行更改,请将其作为评论添加到 Copilot 提出的拉取请求中。
还可以从 GitHub.com 上的其他位置将议题分配给 Copilot:
- 从仓库的“ Issues”页上的议题列表中****。
- 在 GitHub 项目 中查看议题时。
通过 GitHub API 将议题分配给 Copilot
可以通过向 GraphQL API 发出请求将议题分配给 Copilot。
-
确保使用用户令牌对 API 进行身份验证,例如 personal access token 或 GitHub App 用户到服务器令牌。
-
通过检查 GraphQL API 中仓库的
suggestedActors
是否包含 Copilot,验证仓库中是否启用了 Copilot 编码智能体。 将monalisa
替换为仓库所有者,将octocat
替换为名称。GraphQL query { repository(owner: "monalisa", name: "octocat") { suggestedActors(capabilities: [CAN_BE_ASSIGNED], first: 100) { nodes { login __typename ... on Bot { id } ... on User { id } } } } }
query { repository(owner: "monalisa", name: "octocat") { suggestedActors(capabilities: [CAN_BE_ASSIGNED], first: 100) { nodes { login __typename ... on Bot { id } ... on User { id } } } } }
如果为用户启用了 Copilot 编码智能体 且其位于仓库中,则从查询返回的第一个节点的
login
值为copilot-swe-agent
。 -
获取想要分配给 Copilot 的议题的 GraphQL 全局 ID,将
monalisa
替换为仓库所有者,将octocat
替换为名称,将9000
替换为议题编号。GraphQL query { repository(owner: "monalisa", name: "octocat") { issue(number: 9000) { id title } } }
query { repository(owner: "monalisa", name: "octocat") { issue(number: 9000) { id title } } }
-
使用
replaceActorsForAssignable
GraphQL 突变将议题分配给 Copilot。 将ISSUE_ID
替换为上一步返回的 ID,并将BOT_ID
替换为上上个步骤返回的 ID。GraphQL mutation { replaceActorsForAssignable(input: {assignableId: "ISSUE_ID", assigneeIds: ["BOT_ID"]}) { assignable { ... on Issue { id title assignees(first: 10) { nodes { login } } } } } }
mutation { replaceActorsForAssignable(input: {assignableId: "ISSUE_ID", assigneeIds: ["BOT_ID"]}) { assignable { ... on Issue { id title assignees(first: 10) { nodes { login } } } } } }
跟踪 Copilot 处理议题的进度
在将议题分配给 Copilot 后不久,Copilot 会在该议题上留下一个 👀 表情符号。
几秒钟后,Copilot 将打开一个链接到原始议题的草稿拉取请求。 议题的时间线中会出现一个事件,链接到拉取请求。
Copilot 将启动代理会话来处理你的议题****。 拉取请求时间线中将出现“Copilot started work”事件,并且随着 Copilot 进行工作,它会使用常规状态更新来更新拉取请求正文,并将提交推送到分支。
如果要检查 Copilot 正在执行的操作,请单击“View session”。 会话日志查看器随即出现,显示 Copilot 处理该议题时的实时日志。 如果想阻止 Copilot 处理议题,请单击“Stop session”。 请参阅“使用 Copilot 编码智能体日志”。
Copilot 完成后,代理会话即会结束,并且 Copilot 会请求你进行审查,从而触发通知。 此外,拉取请求时间线中会显示“Copilot finished work”事件。
与 Copilot 合作处理拉取请求
在 Copilot 完成议题处理后,应该彻底审查拉取请求并对任何需要更改的内容进行评论。 请参阅“审查 Copilot 创建的拉取请求”。