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_TOKENenv 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'}