fix(deps): resolve OpenShell digest lookup - #6110
Conversation
The Dependency Dashboard (#2682) reported a persistent digest lookup failure for NVIDIA/OpenShell: "Could not determine new digest for update (github-releases package NVIDIA/OpenShell)". Root cause: the customManager tracks OPENSHELL_VERSION with extractVersionTemplate stripping the leading "v" so the value matches the bare-number format stored in the file. Renovate's digest lookup for the github-releases datasource compares that stripped value against raw GitHub tag names (e.g. "v0.0.103"), which never match, so the digest lookup always fails. This is a structural mismatch, not a config typo — the same "v"-stripped + digest-tracking combination would fail for github-tags too, since both share the same findCommitOfTag comparison. PR #5749 (fixing #5731) had already moved the datasource from github-tags to github-releases to stop suggesting unreleased tags, but that change didn't address this separate digest issue. Fix: stop asking Renovate to resolve OPENSHELL_SHA as a digest at all. Track only OPENSHELL_VERSION via the customManager, and add a postUpgradeTasks script (scripts/renovate/update-openshell-sha.sh) that looks up the release tag's commit SHA directly and patches it in after each version bump. This mirrors the existing pattern already used for the tirith and cosign version pins in this same file. Also remove the inert "# renovate:" magic comment from openshell-version.sh: no built-in Renovate manager scans .sh files for magic comments, so it did nothing — the customManager's explicit depNameTemplate/datasourceTemplate is what actually drives extraction. Separately, add a packageRule to automerge Docker digest bumps for registry.access.redhat.com/ubi10/* once required checks pass, closing the gap where the existing "patch"/"pin" automerge rule didn't cover digest updates for our UBI base images (evidence for SEC-PATCH-REQ-2). Assisted-by: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Ralph Bean <rbean@redhat.com>
PR Summary by QodoFix Renovate OpenShell SHA updates and automerge UBI digest bumps
AI Description
Diagram
High-Level Assessment
Files changed (3)
|
|
🤖 Finished Review · ✅ Success · Started 4:59 PM UTC · Completed 5:17 PM UTC Commit: |
Code Review by Qodo
1.
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
ReviewFindingsMedium
Low
Previous runReviewFindingsMedium
Low
Previous run (2)ReviewFindingsMedium
Low
Labels: PR modifies Renovate dependency config and OpenShell sandbox version-tracking scripts. |
…EADME - Parse the GitHub API response with jq instead of grep -oP so the SHA extraction isn't dependent on JSON formatting/field ordering. - Verify the OPENSHELL_SHA line exists before sed and that the substitution actually landed before printing a success message, so a file-format change can't leave a stale pin while reporting success. - Document in images/README.md that OpenShell CLI's SHA is refreshed automatically via postUpgradeTasks, unlike the other manually-updated pins in that table. Addresses review feedback from qodo-code-review and fullsend-ai-review on PR #6110. Assisted-by: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Ralph Bean <rbean@redhat.com>
|
Going through these one at a time:
|
|
@ralphbean the commit 2137bff is missing |
|
On the |
|
🤖 Finished Review · ✅ Success · Started 5:03 PM UTC · Completed 5:21 PM UTC Commit: |
|
/fs-fix somehow my local changes got lost. please address all of @waynesun09's findings. |
|
🤖 Finished Fix · ✅ Success · Started 9:40 PM UTC · Completed 9:46 PM UTC Commit: |
- Remove UBI digest automerge rule: runner-image.yml is not a required status check and lacks a merge_group trigger, so automerging UBI10 digest bumps could merge a broken runner image build into main without validation. - Fix README misattribution: OPENSHELL_SHA is consumed by install-openshell.sh (CI host runner installs), not by the runner Containerfile — clarify the note's scope and explain that the Containerfile's OpenShell install uses its own sha256sum verification. Addresses review feedback on #6110
🔧 Fix agent — iteration 1 (human-triggered)Addressed both of @waynesun09's findings: (1) removed the UBI digest automerge rule since the runner-image build is not a required check and can't gate merges, (2) corrected the README note to accurately attribute OPENSHELL_SHA to CI host installs rather than the runner Containerfile. Fixed (2):
Tests: passedNext steps:
|
|
🤖 Finished Review · ✅ Success · Started 9:47 PM UTC · Completed 10:04 PM UTC Commit: |
waynesun09
left a comment
There was a problem hiding this comment.
Review
High
PR title/description still claim a UBI digest-automerge rule that was reverted in the final commit (renovate.json)
The PR title ("...and add UBI digest automerge") and the Summary bullet in the PR body still describe a packageRule that automerges Docker digest bumps for registry.access.redhat.com/ubi10/*, cite it as evidence for internal requirement "SEC-PATCH-REQ-2", and the closing Note claims "#6021 and #6047 (queued UBI digest-bump PRs) were reviewed, approved, and enqueued in the merge queue by hand, since the new automerge rule doesn't apply retroactively to already-open PRs" — all implying the rule exists on the branch.
It did, briefly: the rule was added in the first commit (c9522b2f) with automerge: true for the ubi10 group, then flagged HIGH in review because it wasn't gated on the runner-image build actually succeeding (.github/workflows/runner-image.yml is not a required status check and has no merge_group trigger, so platformAutomerge could merge an unvalidated/broken runner image). The author accepted this and removed the rule entirely in the final commit (d68e0b04, "Remove UBI digest automerge rule: runner-image.yml is not a required status check and lacks a merge_group trigger...").
Confirmed at the current head (d68e0b04) via the GitHub API: renovate.json has zero occurrences of ubi, ubi10, or registry.access.redhat.com — the packageRules array only contains the patch/pin, submodule, fullsend-self-reference, openshell, cloudflare, cosign, and tirith rules.
The PR title/body/Note were never updated after the revert, so at head the PR claims SEC-PATCH-REQ-2 compliance evidence and hand-merged-PR bookkeeping that no longer reflects what the code does — misleading for reviewers, auditors, and anyone reading squash-merge history later, and it leaves the actual automerge gap for #6021/#6047-style UBI digest PRs silently unresolved. The Testing checklist's renovate-config-validator bullet is also stale for the same reason (it reads as validating a config that includes the now-removed rule).
Suggestion: Update the PR title to drop "and add UBI digest automerge", and rewrite the body to remove the UBI packageRule Summary bullet, the SEC-PATCH-REQ-2 citation, and the #6021/#6047 Note — or replace them with an explicit statement that UBI automerge was attempted, reverted pending a proper required-check/merge_group gate on runner-image.yml, and remains open (tracked separately) for SEC-PATCH-REQ-2. Also re-run/re-note the renovate-config-validator Testing bullet against the final (post-revert) config.
|
Updated the PR title and description to drop the UBI automerge references — the rule got removed in d68e0b0 but the metadata didn't follow. Should be accurate now. |
|
🤖 Finished Retro · ❌ Failure · Started 5:23 PM UTC · Completed 5:23 PM UTC Commit: |
Summary
Could not determine new digest for update (github-releases package NVIDIA/OpenShell). Root cause: the customManager'sextractVersionTemplatestrips the leadingvfromOPENSHELL_VERSIONso it matches the bare-number value stored in the file, but Renovate's digest lookup forgithub-releasescompares that stripped value against raw GitHub tag names (e.g.v0.0.103) and never finds a match — socurrentDigest/OPENSHELL_SHAtracking can never succeed. This is a structural incompatibility betweenextractVersionTemplateand digest tracking, not a config typo (confirmed by reading Renovate'sfindCommitOfTagsource). PR fix(#5731): use github-releases datasource for OpenShell #5749 fixed a related-but-different problem (unreleased tags) by switching datasources; it didn't touch this.OPENSHELL_SHAas a digest. Track onlyOPENSHELL_VERSION, and add apostUpgradeTasksscript (scripts/renovate/update-openshell-sha.sh) that looks up the release tag's commit SHA directly via the GitHub API and patches it in — the same pattern already used here fortirith/cosign.# renovate:magic comment fromopenshell-version.sh— no built-in Renovate manager scans.shfiles for magic comments, so it did nothing (the customManager's explicitdepNameTemplate/datasourceTemplateis what actually drives extraction).Testing
npx --yes --package renovate -- renovate-config-validator— config validated successfullyLOG_LEVEL=debug npx --yes --package renovate -- renovate --dry-run=full fullsend-ai/fullsendagainst the unpatchedmainbranch reproduced the exact reported warning (Could not determine new digest for update (github-releases package NVIDIA/OpenShell)), confirming the root-cause diagnosisupdate-openshell-sha.shagainst a scratch git repo: version bump0.0.83 -> 0.0.103correctly resolves and writesOPENSHELL_SHA=c825b1f8efac457f3ca3c6f9e06fb068e8ce3ecc(verified independently againstgh api repos/NVIDIA/OpenShell/commits/v0.0.103); unchanged-version and bad-tag cases exit cleanly/non-zero as expectedRENOVATE_ALLOWED_COMMANDSregex (.github/workflows/renovate.yml) already coversbash scripts/renovate/*.sh, so the new postUpgradeTask needs no additional allowlistingpre-commit run(shellcheck, check-json, etc.) passes on all changed filesAssisted-by: Claude Opus 4.6 noreply@anthropic.com