Skip to content

ci: bump security report action to v4.1.0 and surface its failures - #2150

Merged
rsdmike merged 1 commit into
mainfrom
ci/security-report-v4.1.0
Sep 1, 2026
Merged

ci: bump security report action to v4.1.0 and surface its failures#2150
rsdmike merged 1 commit into
mainfrom
ci/security-report-v4.1.0

Conversation

@rsdmike

@rsdmike rsdmike commented Aug 31, 2026

Copy link
Copy Markdown
Member

Why

The Generate Security Report step in this workflow has been failing and producing no PDF:

##[error]Request failed due to following response errors:
 - timedout
mv: cannot stat 'report.pdf': No such file or directory

This was invisible because the step carries continue-on-error: true — the CodeQL job stayed green and GitHub's API reported the step's conclusion as success, since continue-on-error rewrites it. The failure existed only in the raw logs.

Root cause was in the action: it expanded dependencyGraphManifests.dependencies over GraphQL, which makes GitHub resolve every manifest's full dependency graph. A large lockfile exceeds the server-side budget and times out. Fixed in rsdmike/github-security-report-action#274, released as v4.1.0.

Changes

  • Bump rsdmike/github-security-report-action from v3.0.4 to v4.1.0 (a3d8cc0, verified to match the v4.1.0 tag).
  • Drop continue-on-error: true from that step so failures fail the job.
  • Gate the step to non-fork events. SECURITY_TOKEN is not exposed to fork PRs, and the action reads it via core.getInput('token', { required: true }), which throws Input required and not supplied: token on an empty value. Without the guard, removing the suppression would fail the whole CodeQL job on external contributions.

Verification

This exact change was verified end to end in ui-toolkit-angular#2578: the report step went from failing in 5.4s with no output, to succeeding in 12s and uploading a 132KB PDF artifact — with the guard confirmed not to skip the step on same-repo PRs.

The CodeQL run on this PR exercises it here.

Notes

  • continue-on-error is deliberately left on Rename Report and Upload Artifacts; those are unreachable if the report step fails now.
  • I have not separately confirmed this repo's logs showed the same timedout error — the fix and the suppression removal are correct regardless, and this PR's own CodeQL run will demonstrate it.

Supersedes

This replaces two open PRs that make the identical v3.0.4 → v4.0.1 change, which v4.1.0 subsumes:

Both can be closed if this lands.

Note on the major-version jump: v4.0.0 moved the action to the node24 runtime, requiring Node >= 22.12.0 and glibc 2.28+ on self-hosted Linux runners. This workflow runs on ubuntu-latest, which satisfies both.

https://claude.ai/code/session_017rtnF1RVUGPNwD6f7EL8cB

Copilot AI lite review requested due to automatic review settings August 31, 2026 20:00

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the CodeQL workflow’s “Generate Security Report” step to a newer pinned version of rsdmike/github-security-report-action, and makes failures visible by no longer suppressing errors—while adding a guard to avoid running on fork PR events where the required secret isn’t available.

Changes:

  • Bump rsdmike/github-security-report-action from v3.0.4 to v4.1.0 (pinned by SHA).
  • Remove continue-on-error: true from “Generate Security Report” so the job fails when report generation fails.
  • Add an if: guard to skip report generation on fork PRs where secrets.SECURITY_TOKEN is not provided.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .github/workflows/codeql-analysis.yml Outdated
@rsdmike
rsdmike force-pushed the ci/security-report-v4.1.0 branch 2 times, most recently from fb8d728 to d11a582 Compare September 1, 2026 20:10
v4.1.0 drops the `dependencies` expansion from the dependency-graph GraphQL
query, which was returning `timedout` and stalling the CodeQL job, and reads
the package list from the SBOM REST API instead.

Drop `continue-on-error` from the report step so genuine failures are visible
rather than being rewritten to a success conclusion.

Guard the step for the two cases where SECURITY_TOKEN is unreachable and the
action fails on an empty input: pull requests from forks, and Dependabot runs,
which read a separate secret store. Gate the rename and upload steps on the
report step's own outcome, since a skipped step does not stop the steps after
it and `mv` would error on a file that was never created.

Claude-Session: https://claude.ai/code/session_01VivkdrFB8x5pEWnxmM6gMm
@rsdmike
rsdmike force-pushed the ci/security-report-v4.1.0 branch from d11a582 to c03c596 Compare September 1, 2026 20:12
@rsdmike
rsdmike merged commit fd21e91 into main Sep 1, 2026
7 checks passed
@rsdmike
rsdmike deleted the ci/security-report-v4.1.0 branch September 1, 2026 20:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants