GitHubRepoForker

GitHubRepoForker

GitHub API를 통해 이슈 URL에서 GitHub 저장소를 포크하는 구성 요소예요.

출처: 문서

본문

GitHubRepoForker는 GitHub 이슈 URL을 받아 저장소 정보를 추출하고, 그 저장소의 포크를 생성하거나 동기화하며, 선택적으로 이슈별 브랜치를 생성해요. pull request를 만들어야 하거나 저장소 포크로 작업해야 하는 자동화 워크플로에 특히 유용해요.

주요 기능:

  • 자동 동기화: 기존 포크를 업스트림 저장소와 자동 동기화
  • 브랜치 생성: 이슈별 브랜치 생성(예: 이슈 #123의 fix-123)
  • 완료 대기: 포크 생성 완료를 선택적으로 대기
  • 포크 관리: 기존 포크를 지능적으로 처리

Authorization ​

이 컴포넌트는 개인 액세스 토큰을 사용한 GitHub 인증이 필요해요. GITHUB_TOKEN 환경 변수로 토큰을 설정하거나, 초기화 시점에 github_token 파라미터로 직접 전달할 수 있어요. 개인 액세스 토큰을 만들려면 GitHub의 토큰 설정 페이지를 방문하고, 저장소 포킹과 관리를 위한 적절한 권한을 부여하세요.

Installation ​

pip install github-haystack
  • 대표적인 파이프라인 위치: 파이프라인의 맨 시작, 그리고 GitHub 브랜치 이름을 입력으로 기대하는 Agent 구성 요소 앞
  • 필수 init 변수: github_token — GitHub 개인 액세스 토큰. GITHUB_TOKEN env var로 설정 가능.
  • 필수 run 변수: url — 포크할 저장소의 GitHub 이슈 URL
  • 출력 변수: repo — 포크 저장소 경로 / issue_branch — 이슈별 브랜치 이름(생성된 경우)
  • API reference: GitHub
  • 패키지명: github-haystack

Usage ​

저장소 플레이스홀더: 아래 코드 스니펫을 실행하려면 owner/repo를 자신의 GitHub 저장소 이름으로 바꿔야 해요.

On its own ​

from haystack_integrations.components.connectors.github import GitHubRepoForker

forker = GitHubRepoForker()
result = forker.run(url="https://github.com/owner/repo/issues/123")
print(result)
{'repo': 'owner/repo', 'issue_branch': 'fix-123'}