gito/agent-roadmap/phase/provider-change-request-integration/milestones/change-request-abstraction.md

2.2 KiB

Milestone: Change Request Abstraction

위치

  • Roadmap: agent-roadmap/ROADMAP.md
  • Phase: agent-roadmap/phase/provider-change-request-integration/PHASE.md

목표

GitHub PR, GitLab MR, Gitea PR을 Gito의 provider-neutral ChangeRequest로 묶는다. 외부 소비자는 provider별 이름을 몰라도 create, update, comment, request review, merge, close 같은 공통 action을 사용할 수 있어야 한다.

상태

[계획]

승격 조건

  • 없음

구현 잠금

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

범위

  • ChangeRequest domain DTO
  • provider-neutral action set
  • provider adapter mapping
  • checks/review/comment 최소 공통 shape
  • provider-specific extension field 경계

기능

Epic: [cr-model] ChangeRequest model

PR/MR-like 객체를 공통 domain으로 표현한다.

  • [shape] source branch, target branch, title, body, draft, state, external id를 포함하는 ChangeRequest shape를 확정한다.
  • [actions] create, update, comment, request review, merge, close action을 정의한다.
  • [events] opened, updated, merged, closed event를 normalized event로 매핑한다.

Epic: [adapter-map] Adapter mapping

provider별 API 차이를 adapter 안에 격리한다.

  • [github-map] GitHub PR mapping 후보를 작성한다.
  • [gitlab-map] GitLab MR mapping 후보를 작성한다.
  • [gitea-map] Gitea PR mapping 후보를 작성한다.
  • [extension] provider-specific field를 공통 DTO 밖 확장 영역에 둔다.

완료 리뷰

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

범위 제외

  • provider별 완전한 API client 구현
  • CI provider integration
  • branch protection/permission API
  • Flutter PR/MR 화면

작업 컨텍스트

  • 관련 경로: services/core/internal/core/, services/core/internal/provider/, packages/contracts/notes/gito-control-plane.md
  • 표준선(선택): provider-neutral interface를 먼저 정의하고 provider-specific DTO는 adapter 내부에 둔다.
  • 선행 작업: Provider Adapter Foundation
  • 후속 작업: Webhook Revision Reconcile
  • 확인 필요: 없음