참고 항목
Copilot 코딩 에이전트 is in 공개 미리 보기 and subject to change.
소개
소프트웨어 개발자에게 할당하는 것과 마찬가지로 GitHub 이슈를 Copilot에게 할당할 수 있습니다. Copilot은 해당 이슈에 대한 작업을 시작하고, 끌어오기 요청을 제기하여, 작업이 완료되면 검토를 요청할 것입니다. 자세한 내용은 Copilot에 작업 할당 정보을(를) 참조하세요.
이슈를 해결하기 위해 Copilot을 이전에 사용한 적이 없었다면 Best practices for using Copilot to work on tasks에서 좋은 결과를 얻기 위한 몇 가지 유용한 조언을 찾을 수 있습니다.
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에 이슈를 할당할 수 있습니다.
-
사용자 토큰(예: personal access token 또는 GitHub App 사용자-서버 토큰)을 사용하여 API 인증을 진행해야 합니다.
-
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 mutation을 사용하여 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에서 만든 끌어오기 요청 검토을(를) 참조하세요.