Skip to content

GitHub Actions

Add one workflow step after your image is built to record a build Evidence Event (with digest). The action emits through the Evidence SDK, same as the other exporters.

Repository: Evitrus/action

Setup

  1. Store your tenant API key as a repository or organisation secret, e.g. EVITRUS_KEY.
  2. Add a step after build/push:
yaml
- uses: evitrus/action@v1
  with:
    api-key: ${{ secrets.EVITRUS_KEY }}
    service: payments-api
    type: build.artifact.published
    image: ghcr.io/acme/payments-api@${{ steps.build.outputs.digest }}

commit defaults to GITHUB_SHA. Actor, repository, workflow, ref, and run URL are attached automatically.

Inputs

InputRequiredDefaultNotes
api-keyyesTenant ingest key (evt_…)
serviceyesLogical service name
typenobuild.succeededPrefer catalog types (build.artifact.published, test.scan.completed, deploy.succeeded). Legacy names (build.succeeded, security.scan) still ingest.
ingest-urlnohttps://api.evitrus.dev/ingestOverride for other environments
imagenoImage ref; @sha256:… digest is parsed
digestnoExplicit digest (overrides parsed)
environmentnoFor deploy.* events
commitnoGITHUB_SHASource commit
summarynoautoHuman-readable summary
tagsnoExtra tags, e.g. team:payments,tier:1
metadatanoExtra JSON object string
fail-on-errornotrueFail the job if recording fails

The action polls GET {ingest-url}/config and skips emit when a tenant ignore rule matches. Ingest 422 {ignored:true} is also treated as a successful skip.

Example release job

See examples/release.yml in the action repository.

This step only records facts. To gate a ship, add a second step with mode: check — see GitHub Actions evaluator.

Correlate with Kubernetes

Emit the same commit (and ideally the same image digest) from CI and from the Kubernetes exporter. Evitrus groups them into one Change for Changelog and the evidence Audit log.

Evitrus — observability for auditability