Skip to content

Enforce tag immutability at the Docker Hub repository level #8

@leighmcculloch

Description

@leighmcculloch

What problem does your feature solve?

Today, the immutability of published image tags (:<cli>, :<cli>-rust<rust>, per-arch tags, etc.) is enforced only inside the publish workflow — see the "skip-with-warning, not fail-on-overwrite" behavior added in #3. That is workflow-side protection: it depends on the workflow being the only thing that ever pushes to this repo, and on that check never being bypassed (e.g. by a maintainer running docker push locally, by a future change to the workflow that drops the check, or by a compromised CI credential).

We should enforce the same property at the registry itself, so the trust property — "this tag means the same content forever" — has no opt-out even if the workflow is bypassed.

Docker Hub supports this via immutable tags on the repository: once a tag is pushed, the registry refuses any subsequent push to the same tag.

What would you like to see?

Configure docker.io/stellar/stellar-cli on Docker Hub so that:

  • All tags are immutable by default — once pushed, they cannot be overwritten.
  • The :latest tag is exempt — it is intentionally a moving alias that gets re-pointed each release.

Concretely, this means setting an immutable-tag rule on the repository that matches every tag except latest (e.g. via Docker Hub's tag immutability rules, with latest carved out).

Refs

https://docs.docker.com/docker-hub/repos/manage/hub-images/immutable-tags/

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions