gito/agent-roadmap/phase/control-plane-foundation/milestones/platformless-git-operation-engine.md

2.5 KiB

Milestone: Platformless Git Operation Engine

위치

  • Roadmap: agent-roadmap/ROADMAP.md
  • Phase: agent-roadmap/phase/control-plane-foundation/PHASE.md

목표

GitHub/GitLab/Gitea 같은 플랫폼 API 없이 Git CLI와 local bare repository만으로 Git operation을 실행하고 검증한다. 이 Milestone은 Gito의 모든 provider adapter가 의존할 platformless Git 기준선을 만든다.

상태

[진행중]

승격 조건

  • 없음

구현 잠금

  • 상태: 해제
  • 결정 필요: 없음

범위

  • clone, fetch, pull, checkout, status, diff, commit, push operation
  • revision cursor와 changed file scan
  • operation input/output DTO
  • command timeout과 stderr/stdout capture boundary
  • local bare repo 기반 integration test

기능

Epic: [ops] Git operations

Provider API에 의존하지 않는 Git command 기능을 만든다.

  • [clone-fetch] clone/fetch operation을 구현한다. 검증: local bare repo를 remote로 사용해 fetch 후 revision을 확인한다.
  • [status-diff] status/diff operation을 구현한다. 검증: staged/unstaged/clean workspace 상태를 테스트한다.
  • [commit-push] commit/push operation을 구현한다. 검증: local bare repo에 push한 revision이 remote branch에 반영된다.
  • [branch-checkout] branch checkout과 source branch 기준을 구현한다. 검증: branch 변경 후 worktree revision을 확인한다.

Epic: [scan] Revision scan

branch revision 변화와 changed file을 normalized event 입력으로 만든다.

  • [cursor] repo/branch별 last seen revision cursor를 저장한다.
  • [changed-files] before..after changed file scan을 구현한다. 검증: 여러 commit 사이 변경 파일 목록이 기대와 일치한다.
  • [event-input] scan 결과를 RevisionEvent 후보로 변환한다.

완료 리뷰

  • 상태: 없음
  • 요청일: 없음
  • 완료 근거: 없음
  • 리뷰 필요:
    • 사용자가 완료 결과를 확인했다
    • archive 이동을 승인했다
  • 리뷰 코멘트: 없음

범위 제외

  • PR/MR 생성
  • provider webhook 처리
  • IOP CLI 실행
  • Flutter 표시

작업 컨텍스트

  • 관련 경로: services/core/internal/gitengine/, services/core/internal/core/, services/core/internal/storage/
  • 표준선(선택): webhook 없이도 fetch + revision diff + scan만으로 변경을 확인할 수 있어야 한다.
  • 선행 작업: Repo Registry and Workspace Lease
  • 후속 작업: Operation Event Outbox
  • 확인 필요: 없음