AI 코딩 에이전트를 위한 Git 플랫폼 통합 CLI 도구: Forge

by DD
1개월 전
조회수 6

GitHub, GitLab, Gitea 등 다양한 Git 플랫폼의 CLI를 통합하여 일관된 인터페이스를 제공

AI 코딩 에이전트(AI Coding Agents)와의 연동을 고려하여 설계, 자동화된 작업 흐름 지원

Go 언어로 개발되었으며, JSON 형식의 출력을 지원하여 스크립팅 및 파이핑(Scripting & Piping) 용이

커뮤니티에서는 자체 호스팅 GitLab 인스턴스 지원 여부에 대한 질문이 제기됨

다양한 Git 플랫폼 지원을 위한 설계

Forge는 GitHub, GitLab, Bitbucket, Gitea/Forgejo 등 다양한 Git 플랫폼의 CLI를 통합하여 일관된 사용자 경험을 제공한다. 각 플랫폼의 API 차이점(API Differences)을 흡수하여, 사용자는 단일 인터페이스를 통해 레포지토리(Repository) 관리, 이슈(Issue) 추적, 풀 리퀘스트(Pull Request) 검토 등 다양한 작업을 수행할 수 있다. 또한, `--forge-type` 옵션 또는 `.forge` 파일을 통해 플랫폼을 자동 감지한다.

AI 코딩 에이전트(AI Coding Agents)와의 통합

Forge는 AI 코딩 에이전트가 Git 플랫폼과 직접 상호 작용할 수 있도록 설계되었다. AI 코딩 에이전트(AI Coding Agents)는 Forge를 통해 이슈 생성, 풀 리퀘스트 생성, CI 트리거(CI Trigger) 등의 작업을 수행할 수 있으며, 이는 GitHub API에 하드코딩된 에이전트(Hardcoded Agents)의 종속성을 줄여준다. 단일 인터페이스(Single Interface)를 제공함으로써, 에이전트 코드의 단순화 및 플랫폼 선택의 유연성을 확보한다.

프로그래밍 방식 인터페이스(Programmatic Interface) 제공

Forge는 CLI뿐만 아니라 Go 모듈로도 제공되어, 프로그래밍 방식으로 Git 플랫폼에 접근할 수 있다. `forges.NewClient`를 사용하여 토큰 기반 인증을 지원하며, `FetchRepository``Issues().List`와 같은 메서드를 통해 레포지토리 및 이슈 정보를 가져올 수 있다. 공통 인터페이스(Common Interface)를 구현하여, 플랫폼별 조건 로직 없이 코드를 작성할 수 있도록 지원한다.

인증 및 출력 형식 지원

Forge는 다양한 인증 방식을 지원하며, CLI 플래그, 환경 변수, 설정 파일을 통해 토큰을 관리할 수 있다. `forge auth login` 명령어를 통해 대화형 인증을 지원하며, 스크립트 환경에서도 사용할 수 있다. 또한, 모든 명령어는 `--output json` 옵션을 지원하여, 스크립팅(Scripting)파이핑(Piping)에 용이하다. 이러한 기능은 자동화된 작업 흐름을 구축하는 데 기여한다.

Forge