Skip to content

Migrate DragonSniff container publishing to org GHCR - #48

Merged
danielbrownjr merged 1 commit into
mainfrom
ci/migrate-ghcr-to-org
Sep 24, 2026
Merged

danielbrownjr merged 1 commit into
mainfrom
ci/migrate-ghcr-to-org

Conversation

@danielbrownjr

Copy link
Copy Markdown
Collaborator

Summary

DragonSniff moved from danielbrownjr to thetechbenders, but the active container workflows still publish to Daniel's personal namespace, ghcr.io/danielbrownjr/dragonsniff. The org-owned workflow token cannot write there:

failed to push ghcr.io/danielbrownjr/dragonsniff:sha-9f0be64...:
denied: permission_denied: The requested installation does not exist.

Publish container has failed on every main push since the transfer (#42 through #47). Release preflight correctly requires the immutable sha-<release commit> image to exist and pass a smoke test before tagging, so v0.5.0 cannot be released until this is fixed.

Changes

  • publish-container.yml, release.yml: IMAGE_NAME -> ghcr.io/thetechbenders/dragonsniff
  • promote-container.yml: IMAGE_NAME, the GHCR token scope, and the raw /v2/.../manifests/... URL all move to the org namespace together
  • tests/test_container_namespace.py: contract test pinning the three active workflows to the org namespace, covering image refs, token scope, and manifest URLs. Scoped to an explicit list of workflow files so intentional legacy documentation is still allowed.
  • docs/portainer.md, docs/releasing.md: point at the org image; add a migration note for users of the legacy package
  • CHANGELOG.md: note the namespace change under v0.5.0

Legacy package

ghcr.io/danielbrownjr/dragonsniff stays frozen at its last published state. It is not deleted or modified, and nothing new is published to it.

Scope

This PR does not create v0.5.0. After merge, Publish container should produce ghcr.io/thetechbenders/dragonsniff:sha-<merge commit>, which becomes the v0.5.0 release commit.

Validation

  • 253 Python tests with warnings as errors, 1 expected platform skip
  • 30 JS tests plus syntax checks, compileall, git diff --check
  • The new contract test fails when an old-namespace token scope or a different IMAGE_NAME owner is injected
  • derive 0.5.0 -> v0.5.0, prerelease: false; package version unchanged at 0.5.0

DragonSniff moved to thetechbenders, but the container workflows still
pushed to ghcr.io/danielbrownjr/dragonsniff. The org-owned workflow token
cannot write there, so every Publish container run since the transfer
has failed, and Release preflight cannot find the immutable SHA image.

Publish, promote, and release now use ghcr.io/thetechbenders/dragonsniff,
including the promotion token scope and raw manifest URLs. A contract
test pins the three active workflows to the org namespace. Deployment
docs point at the org image and document the personal package as
legacy and frozen.
@danielbrownjr
danielbrownjr merged commit bd23e9c into main Sep 24, 2026
2 checks passed
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