Skip to main content

What the check does

Fires when both of the following are true:
  1. The workflow contains a step using actions/attest-build-provenance or actions/attest (in-job signing).
  2. The workflow does not also call a reusable workflow under slsa-framework/slsa-github-generator/....

Why it matters

SLSA Build L3 requires that the signing context be isolated from user-defined build steps — an attacker who controls a run: step must not be able to influence what’s signed. In-job attestation runs in the same job as the user’s build steps, so any compromise of those steps compromises the attestation. L3 on GitHub is achieved by the slsa-framework/slsa-github-generator reusable workflows, whose signing job runs in a trusted context the caller cannot influence.

L2-but-not-L3 example

L3 example