Skip to content

Capture CDEvents pipeline results as CI outcome Facts #58

Description

@ericpaulsen

The canonical CI outcome model can retain CDEvents source metadata, but the API has no CDEvents pipeline-result translator.

Add an authenticated source adapter with pinned CDEvents and CloudEvents contracts. Map recorded outcomes to the canonical CI vocabulary without inventing repository, commit, run, or attempt identity.

Acceptance criteria:

  • The adapter declares supported event types and versions and validates their envelopes.
  • A source event supplies the required repository, full commit, run identity, and timestamps; missing identity skips visibly.
  • Only passed and failed become binary verdicts; other canonical outcomes remain visible without becoming success or failure.
  • Run attempts preserve retry evidence without claiming that a retry proves a flaky test.
  • Basic redaction, organization binding, authentication, and database deduplication follow the existing ingest contracts.
  • Frozen sanitized fixtures cover duplicates, malformed siblings, and verdict/non-verdict outcomes; generated references are synchronized.

Relevant files:

  • packages/core/sediment_core/models.py
  • packages/capture/sediment_capture
  • apps/api/sediment_api/routers/ci_vendor.py
  • docs/adr/0010-canonical-ci-outcome-facts.md

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-triageA maintainer evaluates the issue.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions