- Add agent-task for provider adapter foundation - Update roadmap PHASE.md and milestone for provider-adapter-foundation - Implement router.go, router_test.go, runtime.go controlplane changes
3.2 KiB
3.2 KiB
Milestone: Provider Adapter Foundation
위치
- Roadmap:
agent-roadmap/ROADMAP.md - Phase:
agent-roadmap/phase/provider-change-request-integration/PHASE.md
목표
GitHub, GitLab, Forgejo, Plane, Jira 같은 외부 시스템을 provider adapter로 붙일 수 있는 공통 foundation을 만든다. Git 자체 조작은 platformless Git engine에 남기고, provider adapter는 플랫폼 API와 webhook 세부만 소유한다.
상태
[진행중]
승격 조건
- 없음
구현 잠금
- 상태: 해제
- 결정 필요: 없음
범위
- provider registry와 capability model
- provider config와 credential ref
- webhook intake REST endpoint
- provider read/write client interface
- provider event normalization boundary
기능
Epic: [registry] Provider registry
provider별 capability와 config를 등록한다.
- [provider-model] provider id, endpoint, credential ref, capabilities를 model로 정의한다.
- [provider-store] provider config를 저장하고 조회하는 store boundary를 만든다.
- [capability] ChangeRequest, webhook, checks, comment 같은 capability flag를 정의한다.
Epic: [webhook] Webhook intake
provider webhook을 normalized event 입력으로 받는다.
- [callback] provider callback REST endpoint 경계를 만든다. 검증: fake webhook이
provider.webhook.receivedevent를 남긴다. - [verify] webhook signature 검증 hook을 adapter별로 꽂을 수 있게 한다.
- [normalize] provider payload를 provider-neutral event 후보로 변환한다.
완료 리뷰
- 상태: 없음
- 요청일: 없음
- 완료 근거: 없음
- 리뷰 필요:
- 사용자가 완료 결과를 확인했다
- archive 이동을 승인했다
- 리뷰 코멘트: 없음
범위 제외
- provider별 PR/MR 실제 생성
- provider별 CI/checks 상세 구현
- Git operation 실행
- UI 설정 화면
작업 컨텍스트
- 관련 경로:
services/core/internal/provider/,services/core/internal/controlplane/,services/core/internal/events/,packages/contracts/notes/gito-control-plane.md - 표준선(선택): provider adapter는 platform API만 소유하고 Git object 상태는 Git engine으로 확인한다.
- 결정 반영(2026-06-19): 현재 사용 중인 Forgejo webhook/revision path를 기존 baseline으로 인정하고, Provider Adapter Foundation에서 새 provider 우선순위는 GitHub로 둔다.
- 결정 반영(2026-06-19):
credential_ref는 SOPS로 관리되는 secret material을 가리키는 ref를 기준으로 한다. 런타임은 decrypt된 ignored env/local secret을 resolver로 읽고, tracked docs와 event/log에는 raw secret을 남기지 않는다. - 작업현황 동기화(2026-06-19):
agent-task/archive/2026/06/m-provider-adapter-foundation/02+01_postgres_provider_store/complete.log의Roadmap Completion근거로provider-store완료를 반영했다. - 작업현황 동기화(2026-06-19): generic provider callback route와
provider.webhook.receivedevent 기록을 추가하고cd services/core && go test ./...통과 근거로callback완료를 반영했다. - 선행 작업: Command Policy and Cancellation
- 후속 작업: Change Request Abstraction
- 확인 필요: 없음