Skip to main content
POST
Revert a pending_review resolution

Authorizations

Authorization
string
header
required

An Earnie API key, sent as Authorization: Bearer sk_earnie_.... Create one under Settings > API keys. The key's scopes decide which operations it may call.

Path Parameters

resolutionId
string<uuid>
required

Body

application/json
justification
string

Response

Resolution after revert

id
string<uuid>
required
org_id
string<uuid>
required
finding_id
string<uuid>
required
domain_slug
string
required
reason
object
required

A triage resolution reason. The canonical slugs cover five families: OSS (confirm_match, mark_original, replace_component), declared dependencies (accept_dependency, dismiss_dependency), crypto (confirm_usage, false_positive, accepted_risk), AI usage (confirm_ai_usage, not_ai_usage, approve_ai_usage), and identified AI models (approve_model, reject_model, wrong_identification). Each slug decides findings of its own family only; any other finding answers 400 reason_domain_mismatch. Callers MUST supply a non-empty slug by default; the org-level triage_reason_required setting controls whether an empty slug is permitted (see CAP2). Each slug carries a gate posture, reported by the suppresses field below and applied by the resolve path: resolving with a suppressing reason drops the finding from PR-gate impact, and reopening it undoes that suppression.

resolved_by
object
required
status
enum<string>
required
Available options:
pending_review,
confirmed,
reverted
autonomous_run
boolean
required
created_at
string<date-time>
required
scope
object | null
justification
string | null
replacement_purl
string | null

Versioned PURL of the corrected component. Populated for replace_component resolutions only; null otherwise.

concluded_license
string | null

License the operator concluded for the resolved component (an SPDX identifier when picked from the SPDX list). Structured evidence, not free text: SBOM export renders it as the component's concluded license instead of NOASSERTION. Null when none was recorded.

decided_at
string<date-time> | null
decided_by
object | null