- ProviderAdapter 인터페이스를 정의하고 AWS/GitLab provider 구현체를 추가한다 - CRD model에 ProviderRef 및 status 필드를 추가하여 provider 관리를 표준화한다 - ControlPlane에 provider registry를 통합하여 runtime/periodic event routing을 provider별로 분기한다 - Router에 routeByProvider 메서드를 추가하여 provider별 event 라우팅을 지원한다 - Event 시스템에 outbound event 전송 기능을 추가한다 - 관련 테스트를 추가하여 provider별 동작을 검증한다
32 lines
939 B
Go
32 lines
939 B
Go
package events
|
|
|
|
import "time"
|
|
|
|
type Event struct {
|
|
ID string
|
|
Type string
|
|
Subject string
|
|
// Payload is stored as a JSON object in the durable outbox.
|
|
Payload []byte
|
|
CreatedAt time.Time
|
|
}
|
|
|
|
const (
|
|
RepoChanged = "repo.changed"
|
|
BranchUpdated = "branch.updated"
|
|
WorkspaceLeased = "workspace.leased"
|
|
WorkspaceReleased = "workspace.released"
|
|
WorkspaceDirty = "workspace.dirty"
|
|
OperationStarted = "operation.started"
|
|
OperationCompleted = "operation.completed"
|
|
OperationFailed = "operation.failed"
|
|
AgentRunStarted = "agent.run.started"
|
|
AgentRunCompleted = "agent.run.completed"
|
|
ChangeRequestOpened = "change_request.opened"
|
|
ChangeRequestUpdated = "change_request.updated"
|
|
ChangeRequestMerged = "change_request.merged"
|
|
ChangeRequestClosed = "change_request.closed"
|
|
ProviderWebhook = "provider.webhook.received"
|
|
)
|
|
|
|
const PayloadEncodingJSON = "application/json"
|