[architect] refactor: single source of truth for image-name → upstream repo routing - #1045
Open
kubestellar-hive[bot] wants to merge 1 commit into
Open
[architect] refactor: single source of truth for image-name → upstream repo routing#1045kubestellar-hive[bot] wants to merge 1 commit into
kubestellar-hive[bot] wants to merge 1 commit into
Conversation
…m repo routing The image-name/tag -> upstream GitHub repository decision was restated in two places with two different grammars: * bonedigger-report:route_issue_repo — dakota* glob, unknown -> common * changelog.just:changelogs — dakota exact, unknown -> bluefin The grammars had already drifted. dakota-nvidia is a published image (docs/skills/image-registry.md), matched by bonedigger-report's dakota* glob but not by changelog.just's exact == "dakota" comparison, so 'ujust changelogs' on dakota-nvidia fetched release notes from projectbluefin/bluefin. Extract the grammar into /usr/libexec/ublue-image-repo in the shared/ overlay layer so it is available to every variant, not just the GNOME desktop layer that happened to host both copies. The only legitimate per-caller difference — the fallback repo for unrecognised images — is passed in via --default, preserving each call site's existing fallback. Both consumers become one-line delegations. tests/test_image_repo.bats covers the grammar directly and adds a structural invariant asserting no consumer restates the routing table inline. Refs #1044 Signed-off-by: sec-check[bot] <sec-check[bot]@users.noreply.github.com>
kubestellar-hive
Bot
requested review from
ahmedadan,
castrojo,
hanthor,
inffy and
ledif
as code owners
August 29, 2026 10:28
hanthor
approved these changes
Sep 2, 2026
hanthor
left a comment
Member
There was a problem hiding this comment.
Real duplication fix: centralizes image-name/tag→upstream-repo routing into a new ublue-image-repo, used via --default by both bonedigger-report and changelog.just. Correctly identifies and fixes a dakota-nvidia drift bug (glob vs. exact-match) between the two original call sites. Structural test blocks re-inlining the grammar. CI test green; validate fails only on title-lint.
Generated by Claude Code
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refactor
Cluster: image-name/tag → upstream GitHub repository routing.
Files:
system_files/shared/usr/libexec/ublue-image-repo(new),system_files/bluefin/usr/libexec/bonedigger-report(route_issue_repo),system_files/bluefin/usr/share/ublue-os/just/changelog.just(changelogs),tests/test_image_repo.bats(new),tests/test_bonedigger_report.bats,tests/test_changelog.bats.commondecided "which upstream repo owns this image" in two places with two different grammars:bonedigger-report:route_issue_repodakota*globprojectbluefin/commonchangelog.just:changelogs== "dakota"exactprojectbluefin/bluefinThey had already drifted.
dakota-nvidiais a published image (docs/skills/image-registry.md), matched by the glob but not by the exact comparison — soujust changelogsondakota-nvidiafetched release notes fromprojectbluefin/bluefin.This extracts the grammar into
/usr/libexec/ublue-image-repoin theshared/overlay layer (the decision is variant-agnostic; both copies previously sat in the GNOME-desktop-onlybluefin/layer). The one legitimate per-caller difference — the fallback repo for unrecognised images — is passed in as--default, so each call site keeps its existing fallback and no unrelated behaviour changes.Both consumers become one-line delegations.
tests/test_image_repo.batscovers the grammar directly, including adakota-nvidiaregression test and a structural invariant asserting no consumer restatesprojectbluefin/bluefin-lts/projectbluefin/dakotainline.Verification:
bats tests/test_image_repo.bats tests/test_bonedigger_report.bats tests/test_changelog.bats— 46/46 pass.Overlap check: #1010 also touches
bonedigger-report, but onlyread_boot_status(howIMAGE_NAME/IMAGE_REFare sourced); this PR touches onlyroute_issue_repo(how they are routed) — disjoint hunks, complementary. #1042 moves00-entry.justintoshared/and does not touchchangelog.just.Refs #1044
Filed by architect agent (ACMM L5 — hold-gated mode). Hold-gated: human review required.
— hive: agent=architect backend=copilot model=claude-opus-5