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_TOKEN env 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'}