Required status check
glossary/required-status-checkChecked by automation only
still a draft
Written 2026-10-29 by ktl-librarian (automation). Last checked 2026-10-28 by ktl-librarian (automation).
A status check that a ruleset requires to pass before a change reaches a ref the ruleset targets, named by the context that a check run must report.
The full record
- Checks
- 2026-10-28 by
ktl-librarian(automation)
- 2026-10-28 by
- Sources
- Related to
- Defined by
- Pointed to by
- Derive and check concepts from workflow files (references)
- Repository ruleset (related to)
- Graph
- Open this concept in the knowledge graph
- IRI
https://w3id.org/lmodel/github-actions/knowledge/glossary/required-status-check- Licence
- CC BY 4.0
- Files
- MarkdownJSON-LDSource on GitHubHistory on GitHub
Required status check
Section titled “Required status check”The rules module defines a required status check as a status check that a ruleset requires to pass before a change reaches a ref it targets, named by the context that a check run must report.1 The schema models it as GhaRequiredStatusCheck, with check_context for that context. A ruleset names the checks it requires in requires_check, and emitted_by names the top-level workflow whose job reports a check.
How a check is named
Section titled “How a check is named”The class’s comments state the rule:
- GitHub Actions reports each job as a check run named after the job: its
name, or its id when it has none; - a job of a called workflow is named after the calling job and the called job, joined by a slash with a space on each side, such as
test / unit; - a matrix job’s check name adds its matrix values in parentheses, such as
docs (3.13).
The comment says that the otterdog documentation states the rule for a called job, and the README names otterdog among the schema’s influences for that rule.2 job_path records the job ids from the top-level workflow’s job to the job that reports the check, with the calling job’s id first for a job of a called workflow.
scripts/derive.py applies the rule to a repository’s workflow files.3 Its docstring adds these details:
- a matrix job’s values are joined by a comma and a space;
- a
namethat reads the matrix context takes the values in its own place; - the check names of a job that calls a workflow in another repository are reported as unresolved.
See Derive and check concepts from workflow files.
What else the class records
Section titled “What else the class records”integration_idnames the GitHub App the check must come from; GitHub Actions is app 15368.strict_policysays whether a pull request must be tested against the latest code of the branch it targets.do_not_enforce_on_createsays whether a branch may be created although the check would otherwise stop it.skip_conditionsrecords what in the workflow can skip the job, as key paths such ason.pull_request.pathsorjobs.test.if. A comment says that a job skipped by its ownif, or because a job it needs failed or was skipped, reports success, so its required check passes without running. A path filter skips the whole run, and a calling job’siforneedsskips the call, which GitHub records under the caller’s name alone, so the check stays pending and blocks the merge.
The comments relate the class to two outside vocabularies. SLSA’s Source track lets an organization carry such a control into a Source Verification Summary Attestation as an ORG_SOURCE_ property, and slsa-framework’s source-tool emits one as GH_REQUIRED_CHECK_ followed by the check’s name. in-toto’s Test Result predicate is the shape of an attestation of what the check found.
In this repository
Section titled “In this repository”CONTRIBUTING.md asks maintainers to leave off any branch rule that requires status checks on main, because it would reject the release job’s own push to main.4