GitHubPRCreator
GitHubPRCreator
GitHub API를 통해 포크에서 원본 저장소로 pull request를 생성하는 구성 요소예요.
출처: 문서
본문
GitHubPRCreator는 GitHub 이슈 URL을 받아 포크에서 원본 저장소로 pull request를 생성하고, 지정된 이슈에 자동으로 연결해요. 기존 포크를 대상으로 설계되었으며, 브랜치에 이미 변경 사항을 만들었다고 가정해요.
주요 기능:
- 교차 저장소 PR: 포크에서 원본 저장소로 PR 생성
- 이슈 연결: PR을 지정된 GitHub 이슈에 자동 연결
- Draft 지원: draft pull request 생성 옵션
- 포크 검증: PR 생성 전에 필요한 포크가 존재하는지 확인
선택 파라미터로 body를 설정해 pull request 설명을 제공할 수 있고, boolean 파라미터 draft로 draft pull request를 열 수 있어요.
Authorization
이 컴포넌트는 포크 소유자의 개인 액세스 토큰을 사용한 GitHub 인증이 필요해요. GITHUB_TOKEN 환경 변수로 토큰을 설정하거나, 초기화 시점에 github_token 파라미터로 직접 전달할 수 있어요. 개인 액세스 토큰을 만들려면 GitHub의 토큰 설정 페이지를 방문하고, 저장소 접근과 pull request 생성을 위한 적절한 권한을 부여하세요.
Installation
pip install github-haystack
- 대표적인 파이프라인 위치: 파이프라인 끝,
GitHubRepoForker,GitHubFileEditor그리고 제출할 변경 사항을 준비하는 다른 컴포넌트 뒤 - 필수 init 변수:
github_token— GitHub 개인 액세스 토큰.GITHUB_TOKENenv var로 설정 가능. - 필수 run 변수:
issue_url— GitHub 이슈 URL /title— PR 제목 /branch— 소스 브랜치 /base— 대상 브랜치 - 출력 변수:
result— pull request 생성 결과를 나타내는 문자열 - API reference: GitHub
- 패키지명:
github-haystack
Usage
저장소 플레이스홀더: 아래 코드 스니펫을 실행하려면 owner/repo를 자신의 GitHub 저장소 이름으로 바꿔야 해요.
On its own
from haystack_integrations.components.connectors.github import GitHubPRCreator
pr_creator = GitHubPRCreator()
result = pr_creator.run(
issue_url="https://github.com/owner/repo/issues/123",
title="Fix issue #123",
body="This PR addresses issue #123 by implementing the requested changes.",
branch="fix-123", # Branch in your fork with the changes
base="main", # Branch in original repo to merge into
)
print(result)
{'result': 'Pull request #456 created successfully and linked to issue #123'}