Follow-up from review of #25 (.github/workflows/test.yml:116, comment by @miroslavpojer).
Context
The integration test runs the local composite action via uses: ./. A security scanner (AquaSec/Trivy) flags this line.
Diagnosis
The alert is almost certainly the "action not pinned to a full-length commit SHA" rule (Trivy/Aqua CI misconfig; equivalent to zizmor unpinned-uses), not a script-injection finding:
- Workflow trigger is
pull_request with permissions: contents: read, no secrets.
- Test inputs are hardcoded literals, so there is no
${{ }}-into-shell injection surface.
- The action itself (action.yml) already passes all inputs via
env: vars into bash check.sh — the env-var mitigation is already in place.
uses: ./ also appears in earlier jobs in the same file; only the new diff block was commented on.
A local ./ reference cannot be SHA-pinned — it is the in-repo action under test.
Acceptance criteria
Ref: review comment by @miroslavpojer on .github/workflows/test.yml.
Follow-up from review of #25 (.github/workflows/test.yml:116, comment by @miroslavpojer).
Context
The integration test runs the local composite action via
uses: ./. A security scanner (AquaSec/Trivy) flags this line.Diagnosis
The alert is almost certainly the "action not pinned to a full-length commit SHA" rule (Trivy/Aqua CI misconfig; equivalent to zizmor
unpinned-uses), not a script-injection finding:pull_requestwithpermissions: contents: read, no secrets.${{ }}-into-shell injection surface.env:vars intobash check.sh— the env-var mitigation is already in place.uses: ./also appears in earlier jobs in the same file; only the new diff block was commented on.A local
./reference cannot be SHA-pinned — it is the in-repo action under test.Acceptance criteria
#trivy:ignore:<ID>or zizmor# zizmor: ignore[unpinned-uses]: "local action under test, cannot pin"), or exclude.github/workflows/test.ymlfrom that rule in scanner config.uses: ./occurrence in test.yml for consistency.Ref: review comment by @miroslavpojer on .github/workflows/test.yml.