Skip to content

CI: publish to Docker Hub only, drop GHCR - #7

Merged
fakebizprez merged 2 commits into
masterfrom
fix/docker-only-publish
Jun 27, 2026
Merged

fakebizprez merged 2 commits into
masterfrom
fix/docker-only-publish

Conversation

@fakebizprez

@fakebizprez fakebizprez commented Jun 27, 2026 •

Copy link
Copy Markdown
Member

Problem

After fixing the GHCR login and rotating the Docker Hub token, the build reached the push step and failed:

```
failed to push ghcr.io/linehaul-ai/streamlit-network:latest: 403 Forbidden
```

The org-level GHCR package isn't linked to this repository, so the built-in `GITHUB_TOKEN` (even with `packages: write`) can't push to it. This was hidden until now because PR runs use `push: false`.

Fix

Production deploys from Docker Hub (Docker Swarm pulls Docker Hub); GHCR was never used. Remove it entirely:

  • Drop the GHCR login step and `GHCR_IMAGE`.
  • Publish only `DOCKERHUB_IMAGE` in metadata.
  • Remove the now-unneeded `packages: write` permission.

Result: the workflow builds and pushes a single Docker Hub image on push to master — no GHCR permissions to manage.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features
    • Expanded AI assistant plugin support with an additional review plugin enabled.
  • Chores
    • Simplified container image publishing to use Docker Hub only.

fakebizprez and others added 2 commits June 27, 2026 13:25
The GHCR push failed with 403 Forbidden because the org package isn't
linked to this repo, so the built-in GITHUB_TOKEN lacks write access.
Production deploys from Docker Hub (swarm pulls Docker Hub), so GHCR was
unused dead weight blocking the build. Remove the GHCR login, image, and
the now-unneeded packages: write permission.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 27, 2026 •

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 87e65957-e394-44c1-8c20-0bb526037517

📥 Commits

Reviewing files that changed from the base of the PR and between b1794ce and 8aff0d8.

📒 Files selected for processing (2)
  • .claude/settings.json
  • .github/workflows/docker-image.yml
💤 Files with no reviewable changes (1)
  • .github/workflows/docker-image.yml

📝 Walkthrough

Walkthrough

Removes GitHub Container Registry (GHCR) support from the Docker publish workflow by dropping the GHCR_IMAGE env var, packages: write permission, GHCR login step, and GHCR image metadata entry. Also adds pr-review-toolkit@claude-plugins-official to .claude/settings.json.

Changes

Docker Workflow GHCR Removal

Layer / File(s) Summary
Remove GHCR from Docker workflow
.github/workflows/docker-image.yml
Removes GHCR_IMAGE env var, packages: write permission, GHCR login step, and GHCR image from the metadata images list, leaving Docker Hub as the sole publish target.

Claude Plugin Addition

Layer / File(s) Summary
Add pr-review-toolkit Claude plugin
.claude/settings.json
Adds pr-review-toolkit@claude-plugins-official to enabledPlugins alongside the existing frontend-design@claude-plugins-official entry.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

Poem

🐇 Hop hop, away with GHCR's weight,
One registry left — Docker Hub's the gate!
A new plugin joins the Claude plugin crew,
pr-review-toolkit, shiny and new.
Less is more, said the rabbit with glee! 🎉

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main CI change: publishing only to Docker Hub and removing GHCR.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/docker-only-publish

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@llamapreview llamapreview Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI Code Review by LlamaPReview

🎯 TL;DR & Recommendation

Recommendation: Approve with suggestions

This PR simplifies Docker publishing by removing GHCR and unnecessary permissions, fixing a 403 build failure. However, it bundles an unrelated change to AI assistant plugins that reduces PR traceability.

🌟 Strengths

  • Clean removal of GHCR and packages: write permission, directly addressing the build failure.

💡 Suggestions (P2)

  • .claude/settings.json: Bundling an unrelated plugin configuration change reduces PR traceability and complicates rollback; consider separating into its own commit with a clear justification.

💡 Have feedback? We'd love to hear it in our GitHub Discussions.
✨ This review was generated by LlamaPReview Advanced, which is free for all open-source projects. Learn more.

Comment thread .claude/settings.json
Comment on lines 1 to 7
{
"enabledPlugins": {
"superpowers-developing-for-claude-code@superpowers-marketplace": true,
"frontend-design@claude-plugins-official": true
"frontend-design@claude-plugins-official": true,
"pr-review-toolkit@claude-plugins-official": true
}
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 | Confidence: Medium

Speculative: The PR bundles an unrelated change to the AI assistant plugin configuration (pr-review-toolkit added) alongside the core CI fix. While the plugin addition is presumably intentional, mixing two logically independent changes in a single pull request reduces traceability, complicates release notes, and makes rollback more error-prone if either change needs to be reverted. No deterministic failing path is visible in the changed snippet, but the pattern violates the principle of single responsibility for commits/PRs.

@fakebizprez
fakebizprez merged commit 7666f4a into master Jun 27, 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