Skip to main content

Get release evidence package

GET 

/releases/:id/evidence

Returns a structured, auditable evidence package for a release. The package contains:

  • Release metadata (id, name, version, status, releasedAt, riskLevel)
  • Approval chain: each approval stage with approver, timestamp, and comment
  • Quality checklist completion status
  • Entry summary: count by status plus a list of released/completed entries
  • GitHub evidence: per-entry commits (SHA, author, message, committedAt) and merged PRs
  • CI gate summary: per-commit CI result (passed/failed/pending) and test counts
  • completenessScore (0–100): mean of three fractions — entries with linked commit, entries with passing CI, and checklist completeness

If an evidence signing key is configured for the organization, the response includes:

  • X-Align-Evidence-Signature: sha256=<hex> — HMAC-SHA256 of the canonical JSON body
  • X-Align-Evidence-Key-Prefix — prefix of the key used (for rotation tracking)

Releases in planning/active/in_progress/testing state return status: incomplete. Releases in completed or released state return status: complete.

Request

Path Parameters

    id uuidrequired

    Release ID.

Evidence package returned successfully.

Response Headers

  • X-Align-Evidence-Signature

    string

    HMAC-SHA256 of the response body (sha256=<hex>). Present only when a signing key is configured.

  • X-Align-Evidence-Key-Prefix

    string

    Prefix of the signing key used (e.g. evk_9a3b1c2d). Use to track key rotation.

Schema

    schemaVersionintegerrequired
    Example: 1
    generatedAtdate-timerequired
    Example: 2025-01-15T10:30:00Z
    statusstringrequired

    complete when release is in completed/released status; incomplete otherwise.

    Possible values: [complete, incomplete]

    Example: complete

    release

    object

    required

    iduuidrequired
    namestringrequired
    versionstring | nullnullablerequired
    statusstringrequired
    releasedAtdate-timenullablerequired
    riskLevelstring | nullnullablerequired
    projectIduuidrequired
    projectNamestringrequired

    approvalChain

    object

    required

    instanceIduuidnullablerequired
    overallStatusstringrequired

    stages

    object[]

    required

  • Array [

  • namestringrequired
    approverstring | nullnullablerequired
    approvedAtdate-timenullablerequired
    commentstring | nullnullablerequired
    statusstringrequired
  • ]

  • qualityChecklists

    object[]

    required

  • Array [

  • namestringrequired

    items

    object[]

    required

  • Array [

  • labelstringrequired
    completedBystring | nullnullablerequired
    completedAtdate-timenullablerequired
    isCompletedbooleanrequired
  • ]

  • ]

  • entrySummary

    object

    required

    totalCountintegerrequired

    byStatus

    object

    required

    Entry count keyed by status.

    property name*integer

    releasedOrCompleted

    object[]

    required

  • Array [

  • iduuidrequired
    titlestringrequired
    statusstringrequired
  • ]

  • githubEvidence

    object

    required

    entries

    object[]

    required

  • Array [

  • iduuidrequired
    titlestringrequired
    statusstringrequired

    commits

    object[]

    required

  • Array [

  • shastringrequired
    authorstring | nullnullablerequired
    messagestringrequired
    committedAtdate-timenullablerequired
    urlstring | nullnullablerequired
    verifiedbooleanrequired
    ciResultstring | nullnullablerequired

    Possible values: [passed, failed, pending]

    testsPassedintegerrequired
    testsFailedintegerrequired
    testsSkippedintegerrequired
  • ]

  • pullRequests

    object[]

    required

  • Array [

  • numberintegerrequired
    titlestringrequired
    mergedAtdate-timenullablerequired
    urlstring | nullnullablerequired
  • ]

  • ]

  • completenessScoreintegerrequired

    0–100. Mean of three fractions: (entries with linked commit) + (entries with passing CI) + (all checklist items complete → 1, else 0), divided by 3, × 100 rounded.

    Possible values: <= 100

    Example: 87