Skip to content

docs(ci): document benign SLSA generator annotations in release workflow - #378

Closed
bomly-guy wants to merge 1 commit into
mainfrom
claude/nodejs-20-deprecation-1faf68
Closed

docs(ci): document benign SLSA generator annotations in release workflow#378
bomly-guy wants to merge 1 commit into
mainfrom
claude/nodejs-20-deprecation-1faf68

Conversation

@bomly-guy

@bomly-guy bomly-guy commented Aug 11, 2026

Copy link
Copy Markdown
Collaborator

Summary

Run https://github.com/bomly-dev/bomly-cli/actions/runs/31546516949 surfaced 3 warning annotations, all from the provenance job. Investigation shows every one originates inside the pinned slsa-framework/slsa-github-generator@v2.1.0 reusable workflow, which is still the latest upstream release — nothing in our workflow can fix or suppress them:

The generator must stay pinned to a full vX.Y.Z tag for slsa-verifier builder-identity resolution, so we cannot pin to a fixed commit on main either. This PR records all of that as a comment on the provenance job so the annotations aren't re-investigated, with a reminder to re-check when bumping past v2.1.0.

No behavioral change — comment only. [skip release].

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Added notes explaining known benign build annotations from the release process.
    • Included references to upstream issues and a reminder to review these notes when upgrading tooling.

The three warnings on provenance runs (two Node 20 deprecation notices and
the go.sum cache-restore failure) all originate inside the pinned
slsa-framework/slsa-github-generator@v2.1.0 reusable workflow, which is
still its latest release. None are configurable from this repo; record the
upstream tracking issues so they are not re-investigated.

[skip release]

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

The release workflow now documents known SLSA generator v2.1.0 annotations and lists upstream references. It also instructs maintainers to re-check the annotations after an upgrade.

Changes

Release workflow documentation

Layer / File(s) Summary
Document known provenance annotations
.github/workflows/release.yml
The provenance job documents the Node.js 20 deprecation and missing go.sum cache-restore annotations. It includes upstream tracking references and an upgrade re-check reminder.

Estimated code review effort: 1 (Trivial) | ~2 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the documentation-only change to the release workflow.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/nodejs-20-deprecation-1faf68

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@bomly-guy bomly-guy closed this Aug 11, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Bomly Diff Summary

Compared 190f28ee7185a3cbb877aa5e7e7fb415bb7ef669 to c4b9eac67913c54bc81b370bf4af3999acfb5d7e.

Overview

Status Manifests Dependencies Findings Duration
✅ Pass +0 / ~0 / -0 0 added / 0 version changed / 0 detail changes / 0 removed 0 introduced / 0 persisted / 0 resolved 1m 19s

Dependency Changes

✅ No dependency changes.

Vulnerabilities

✅ No vulnerability changes.

License Changes

✅ No license changes.

Project Posture

✅ No project posture changes (--matchers +scorecard was not selected).

Policy Findings

✅ No policy differences were identified.

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/release.yml:
- Around line 167-177: Update the workflow-level environment configuration in
release.yml to set FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 to true, then validate
both the release and provenance execution paths under Node 24 before merging.
Keep the existing generator annotation context, but do not defer this
compatibility check until a generator upgrade.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 1ca7de20-f2ac-4448-903e-83b04d1a7d28

📥 Commits

Reviewing files that changed from the base of the PR and between 190f28e and c4b9eac.

📒 Files selected for processing (1)
  • .github/workflows/release.yml

Comment on lines +167 to +177
# Known benign annotations from this job (all internal to the generator at
# v2.1.0, its latest release — nothing here can configure them away):
# - "Node.js 20 is deprecated ... forced to run on Node 24": the
# generator's internal actions still declare node20; GitHub runs them
# on Node 24 anyway. Upstream migration is tracked in
# slsa-framework/slsa-github-generator#4490.
# - "Restore cache failed: Dependencies file is not found ... go.sum":
# the generator's own setup-go step enables caching but its builder
# checkout has no go.sum at the expected path. Tracked upstream in
# slsa-framework/slsa-github-generator#2863 (fix PRs #2864, #4441).
# Re-check both when bumping the generator past v2.1.0.

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.

🩺 Stability & Availability | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -eu
file=".github/workflows/release.yml"
sed -n '145,185p' "$file"
printf '\nGenerator references:\n'
rg -n -C 2 'slsa-github-generator|v2\.1\.0|4490|2863|Node\.js 20|Node 24' .github/workflows "$file" 2>/dev/null || true

Repository: bomly-dev/bomly-cli

Length of output: 5337


🌐 Web query:

GitHub Actions Node 24 default June 16 2026 Node 20 removal fall 2026 official changelog

💡 Result:

As of August 11, 2026, the transition from Node.js 20 to Node.js 24 for GitHub Actions is in progress [1]. The key milestones and status are as follows: - Default Runtime Switch: As of June 16, 2026, GitHub Actions runners began using Node.js 24 as the default runtime [1][2][3]. - Node.js 20 Status: Node.js 20 reached end-of-life in April 2026 [1][3]. While it was replaced as the default on June 16, 2026, GitHub maintained temporary support to allow users to opt out using the environment variable ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true [1][4][3]. - Full Removal: Node.js 20 is scheduled for full removal from GitHub Actions runners in the fall of 2026 [1][3]. Once this occurs, the opt-out mechanism will no longer function [1]. Users are advised to update their actions to versions compatible with Node.js 24 [1][4]. Actions that still rely on Node.js 20 will trigger deprecation warnings during workflow execution [1][5]. If a workflow requires testing on Node.js 24 prior to the final removal, it can be forced by setting the environment variable FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true [1][4].

Citations:


🌐 Web query:

slsa-framework slsa-github-generator issue 4490 Node 20 Node 24 v2.1.0

💡 Result:

Issue #4490 in the slsa-framework/slsa-github-generator repository tracks the necessary migration of internal actions from Node.js 20 to Node.js 24 [1]. This work is required because GitHub Actions deprecated Node.js 20, with a transition that forced Node.js 24 on runners in mid-2026 [1][2]. As of August 11, 2026, version v2.1.0 remains the latest release of slsa-github-generator [3][2][4]. This version relies on internal actions that use Node.js 20 [1]. Because these actions are bundled within the reusable workflows, callers cannot independently update them [2][4]. Users have reported that these workflows trigger Node.js 20 deprecation warnings and may fail or produce errors in environments where Node.js 20 is no longer fully supported or where Node.js 24 is strictly enforced [1][2]. Upstream progress on this migration has been stalled, with the repository experiencing reduced maintenance activity and an open, untriaged state for issue #4490 [2][4]. No official Node.js 24-compatible release has been published to date [2][4].

Citations:


🏁 Script executed:

#!/bin/bash
set -eu
python3 - <<'PY'
import json, urllib.request

urls = [
    "https://api.github.com/repos/slsa-framework/slsa-github-generator/issues/4490",
    "https://api.github.com/repos/slsa-framework/slsa-github-generator/releases/latest",
]
for url in urls:
    print(f"\n== {url} ==")
    req = urllib.request.Request(url, headers={"Accept": "application/vnd.github+json", "User-Agent": "review-verifier"})
    with urllib.request.urlopen(req, timeout=20) as response:
        data = json.load(response)
    for key in ("state", "title", "html_url", "created_at", "updated_at", "tag_name", "published_at"):
        if key in data:
            print(f"{key}: {data[key]}")
    if "body" in data:
        print("body:")
        print(data["body"][:4000])
PY

Repository: bomly-dev/bomly-cli

Length of output: 2529


🌐 Web query:

site:docs.github.com GitHub Actions FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION

💡 Result:

These environment variables are used to manage the transition of JavaScript-based GitHub Actions from Node.js 20 to Node.js 24 [1]. FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 This environment variable allows you to opt in to using the Node.js 24 runtime for JavaScript actions before it becomes the mandatory default [1]. You can set this variable to true at either the workflow level in your YAML file or as a system environment variable on a self-hosted runner to force the use of Node.js 24 [1][2]. Example workflow configuration: env: FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION This environment variable provides a temporary opt-out mechanism [1]. When Node.js 24 becomes the required default for JavaScript actions, setting this variable to true allows you to fall back to the older Node.js 20 runtime [1]. This is intended as a short-term workaround for compatibility issues while updating actions [1][3]. It is recommended to apply this at the workflow level, as it may not function correctly if set at the job or step level [4]. Migration Context GitHub is deprecating Node.js 20 in favor of Node.js 24 [1][3]. Using these variables helps manage the migration period, allowing users to test compatibility or maintain legacy workflows during the transition [1][5][2]. Users are encouraged to update their actions to versions that natively support Node.js 24 rather than relying indefinitely on these environment variables [1][3].

Citations:


Run a Node 24 compatibility check before merging.

GitHub-hosted runners now use Node 24 by default, and Node 20 support is scheduled for removal in fall 2026. slsa-framework/slsa-github-generator@v2.1.0 still uses internal Node 20 actions, and upstream issue #4490 remains open. Set FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true at workflow level and validate the release and provenance path now. Do not defer this check until a generator upgrade.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/release.yml around lines 167 - 177, Update the
workflow-level environment configuration in release.yml to set
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 to true, then validate both the release and
provenance execution paths under Node 24 before merging. Keep the existing
generator annotation context, but do not defer this compatibility check until a
generator upgrade.

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.

1 participant