Skip to main content

GitHub와 통신하도록 Copilot 에이전트 구성

Copilot agent을(를) 사용하여 페이로드를 확인하고 GitHub에서 리소스를 가져오는 방법을 알아봅니다.

Note

GitHub Copilot Extensions은(는) 공개 미리 보기 버전이며 변경될 수 있습니다.

필수 조건

Copilot agent이(가) GitHub와 통신하도록 구성하기 전에 Copilot agent이(가) Copilot 플랫폼과 통신하는 방법을 이해해야 합니다. "Copilot 플랫폼과 통신하도록 Copilot 에이전트 구성" 항목을 참조하세요.

GitHub에서 페이로드가 들어오는지 확인

Copilot agent이(가) 요청 처리를 시작하기 전에 요청이 GitHub에서 제공되었으며 에이전트용인지 확인해야 합니다. 모든 에이전트 요청에는 Github-Public-Key-IdentifierGithub-Public-Key-Signature 헤더가 포함됩니다. 특정 요청에 대한 서명을 확인하려면 Github-Public-Key-Signature 헤더의 서명을 https://api.github.com/meta/public_keys/copilot_api에 나열된 현재 공개 키를 사용하여 요청 본문의 서명된 복사본과 비교합니다.

특정 언어의 서명 확인에 대한 자세한 내용과 예제는 github-technology-partners/signature-verification 리포지토리를 참조하세요.

GitHub API에서 리소스 가져오기

Copilot agent에 대한 요청은 X-Github-Token 헤더를 받습니다. 이 헤더에는 에이전트와 상호 작용하는 사용자를 대신하여 GitHub API에서 리소스를 가져오는 데 사용할 수 있는 API 토큰이 포함되어 있습니다. 이 토큰의 사용 권한은 사용자 고유의 사용 권한과 GitHub App 설치에 부여된 사용 권한의 겹침입니다.

X-Github-Token을(를) 사용할 수 있는 방법의 예제는 다음 코드 샘플을 참조하세요.

async function whoami(req) {
  const response = await fetch(
    // The GitHub API endpoint for the authenticated user
    "https://api.github.com/user",
    {
      headers: {
        "Authorization": `Bearer ${req.headers.get("x-github-token")}`
      }
    }
  )

  const user = await response.json()
  return user
}

GitHub의 API 작업에 대해 자세히 알아보고 SDK(공식 소프트웨어 개발 키트)를 살펴보려면 octokit 조직을 참조하세요.