Repository navigation
Reusable workflows are now checked and locked.
Reusable workflow calls are checked against their workflow (#6)
loopt lint compares every jobs.<id>.uses: call with the called workflow's on.workflow_call declaration:
preloop/reusable-unknown-input,preloop/reusable-missing-input,preloop/reusable-input-type: undeclared inputs, missing required inputs, and literal values of the wrong typepreloop/reusable-unknown-secret,preloop/reusable-missing-secret: secrets that don't match the declaration (skipped forsecrets: inherit)preloop/reusable-unknown-output:needs.<call>.outputs.<name>that the called workflow doesn't declarepreloop/reusable-not-callable,preloop/reusable-callee-missing: local workflows without aworkflow_calltrigger, or missing files
Local workflows (./ and $/) are read from the repo. Remote workflows are fetched at their ref with loopt lint --online; without it, they're skipped.
loopt lock pins reusable workflows (#7)
- Reusable calls are pinned to a full commit SHA with
owner_id/repo_id. The actions inside each called workflow, and any reusable workflows it calls, are pinned too. - The pins live in
.github/workflows/reusable.lock. GitHub'sactions.lockformat can't record reusable workflows, so this keepsactions.lockvalid forgh actions-lockand the hosted runner. loopt lock --verifydetects moved refs.--verify-localrequires an entry for every remote call; runloopt lockonce after upgrading.- Also reads
v0.0.3actions.lockfiles written by currentgh actions-lock.