Skip to content

refactor(ci): the manifests subject name is written out eight times across two filesΒ #2937

Description

@devantler

πŸ€– Generated by the Agentic Engineer

Evidence

ghcr.io/devantler-tech/platform/manifests is hardcoded seven times in
.github/actions/deploy-prod/publish-platform-manifests/action.yml β€” lines 46, 47, 105, 114, 125,
135 and 162 β€” and an eighth time as the fallback default in
scripts/verify-published-evidence.sh.

Surfaced by a CodeRabbit finding on #2930, which caught one specific consequence: the evidence gate
was relying on its own script default matching the literal the attestation steps publish under. That
one coupling is fixed in #2930 (the value is now passed explicitly, with a test asserting the two are
equal). The remaining seven copies are untouched.

Problem

Every copy is a place a package rename, registry migration, or repo move has to be applied by hand,
with nothing checking they stayed in agreement. The copies are not interchangeable either β€” they feed
different mechanisms (staging tag construction, cosign signing, SBOM input, two attestation subjects,
the promotion target), so a partial rename produces a plausible pipeline that signs one reference,
attests another, and promotes a third.

Expected

The subject name is defined once in the action and referenced everywhere else, so a rename is a
one-line change and disagreement is structurally impossible rather than merely unlikely.

Acceptance criteria

  • The literal appears exactly once in action.yml; every other use references it.
  • scripts/verify-published-evidence.sh is always given the value explicitly; its fallback
    default is removed or made a hard failure, so an unset value cannot silently resolve to a guess.
  • A test asserts the single-definition property β€” i.e. it fails if a second literal reappears.
  • Behaviour is unchanged: the existing test-verify-published-evidence.sh suite passes unmodified.

Size

Small. Behaviour-preserving refactor, one action plus one script. Deliberately kept out of #2930,
which is a feature change β€” the contract forbids mixing a refactor with a behaviour change.

Activity

  1. moved this to πŸ“₯ Backlog in 🌊 Project Boardon Aug 3, 2026
  2. coderabbitai commented on Aug 3, 2026

    @coderabbitai
    Contributor
    πŸ”— Related PRs

    #2317 - ci: migrate deploy-prod Flux diagnostics to shared diagnose-flux composite [merged]
    #2399 - feat: accept devantler-tech/actions cosign subjects during the publish-workflow repoint [merged]
    #2404 - fix: tenant artifact verification rejects the dual signing identities from #2399 [merged]
    #2408 - fix(rgd): single regex-alternated cosign identity for tenant artifact verification [merged]
    #2633 - fix(deploy): verify incoming image on Talos nodes [merged]


    πŸ“ Issue Planner

    Check the box below or use the @coderabbitai plan command to generate an implementation plan and prompts that you can use with your favorite coding assistant.

    • Create Plan

    πŸ§ͺ Issue enrichment is currently in open beta.

    You can configure auto-planning by selecting labels in the issue_enrichment configuration.

    To disable automatic issue enrichment, add the following to your .coderabbit.yaml:

    issue_enrichment:
      auto_enrich:
        enabled: false

    πŸ’¬ Have feedback or questions? Drop into our discord!

  3. self-assigned this
    on Oct 3, 2026
  4. added a commit that references this issue on Oct 3, 2026
  5. moved this from πŸ‘€ In Review to βœ… Done in 🌊 Project Boardon Oct 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Fields

No fields configured for Refactor.

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions