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

75 lines
2.5 KiB
Markdown

# 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 기능을 만든다.
- [x] [clone-fetch] clone/fetch operation을 구현한다. 검증: local bare repo를 remote로 사용해 fetch 후 revision을 확인한다.
- [x] [status-diff] status/diff operation을 구현한다. 검증: staged/unstaged/clean workspace 상태를 테스트한다.
- [x] [commit-push] commit/push operation을 구현한다. 검증: local bare repo에 push한 revision이 remote branch에 반영된다.
- [x] [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를 저장한다.
- [x] [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
- 확인 필요: 없음