GitHubRepoViewer

GitHubRepoViewer

GitHub API를 통해 GitHub 저장소를 탐색하고 콘텐츠를 가져오는 구성 요소예요.

출처: 문서

본문

GitHubRepoViewer는 경로 유형에 따라 다른 동작을 제공해요:

  • 디렉토리: 각 항목(파일과 하위 디렉토리)에 대해 하나씩 문서 리스트 반환
  • 파일: 파일 콘텐츠를 담은 단일 문서 반환

각 문서에는 경로, 유형, 크기, URL 등의 풍부한 메타데이터가 포함돼요.

Authorization ​

공개 저장소의 경우 인증 없이 작동할 수 있지만, 비공개 저장소이거나 rate limiting을 피하려면 GitHub 개인 액세스 토큰을 제공할 수 있어요. 초기화 시점에 github_token 파라미터로 전달하세요, 예: github_token=Secret.from_env_var("GITHUB_TOKEN"). 이 컴포넌트에는 토큰의 기본 환경 변수가 없어요. 개인 액세스 토큰을 만들려면 GitHub의 토큰 설정 페이지를 방문하세요.

Installation ​

pip install github-haystack
  • 대표적인 파이프라인 위치: 파이프라인의 맨 시작, 그리고 GitHub 파일 콘텐츠를 입력으로 기대하는 ChatPromptBuilder 앞
  • 필수 run 변수: path — 볼 저장소 경로 / repo — owner/repo 형식의 저장소
  • 출력 변수: documents — 저장소 콘텐츠를 담은 문서 리스트
  • API reference: GitHub
  • 패키지명: github-haystack

Usage ​

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

On its own ​

디렉토리 목록 보기:

from haystack_integrations.components.connectors.github import GitHubRepoViewer

viewer = GitHubRepoViewer()
result = viewer.run(
    repo="deepset-ai/haystack",
    path="haystack/components",
    branch="main",
)
print(result)
{'documents': [Document(id=..., content: 'agents', meta: {'path': 'haystack/components/agents', 'type': 'dir', 'size': 0, 'url': 'https://github.com/deepset-ai/haystack/tree/main/haystack/components/agents'}), ...]}

특정 파일 보기:

from haystack_integrations.components.connectors.github import GitHubRepoViewer

viewer = GitHubRepoViewer(repo="deepset-ai/haystack", branch="main")
result = viewer.run(path="README.md")
print(result)
{'documents': [Document(id=..., content: '<div align="center">  <a href="https://haystack.deepset.ai/"><img src="https://raw.githubuserconten...', meta: {'path': 'README.md', 'type': 'file_content', 'size': 11979, 'url': 'https://github.com/deepset-ai/haystack/blob/main/README.md'})]}