GitHubFileEditor

GitHubFileEditor

GitHub API를 통해 GitHub 저장소의 파일을 편집하는 구성 요소예요.

출처: 문서

본문

GitHubFileEditor는 기존 파일 편집, 새 파일 생성, 파일 삭제, 최근 변경 사항 되돌리기를 포함한 여러 파일 작업을 지원해요. 네 가지 주요 명령이 있어요:

  • EDIT: 특정 콘텐츠를 교체해 기존 파일 편집
  • CREATE: 지정된 콘텐츠로 새 파일 생성
  • DELETE: 기존 파일 삭제
  • UNDO: 같은 사용자가 만든 마지막 커밋 되돌리기

Authorization ​

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

Installation ​

pip install github-haystack
  • 대표적인 파이프라인 위치: Chat Generator 뒤, 또는 파이프라인의 맨 시작
  • 필수 init 변수: github_token — GitHub 개인 액세스 토큰. GITHUB_TOKEN env var로 설정 가능.
  • 필수 run 변수: command — 작업 유형(edit, create, delete, undo) / payload — 명령별 파라미터
  • 출력 변수: result — 작업 결과를 나타내는 문자열
  • API reference: GitHub
  • 패키지명: github-haystack

Usage ​

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

On its own ​

기존 파일 편집:

from haystack_integrations.components.connectors.github import GitHubFileEditor, Command

editor = GitHubFileEditor(repo="owner/repo", branch="main")
result = editor.run(
    command=Command.EDIT,
    payload={
        "path": "src/example.py",
        "original": "def old_function():",
        "replacement": "def new_function():",
        "message": "Renamed function for clarity",
    },
)
print(result)
{'result': 'Edit successful'}

새 파일 생성:

from haystack_integrations.components.connectors.github import GitHubFileEditor, Command

editor = GitHubFileEditor(repo="owner/repo")
result = editor.run(
    command=Command.CREATE,
    payload={
        "path": "docs/new_file.md",
        "content": "# New Documentation\n\nThis is a new file.",
        "message": "Add new documentation file",
    },
)
print(result)
{'result': 'File created successfully'}