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