Skip to content

Promote the Lint Image Registry Move Off Docker Hub to Main - #2690

Merged
ptr727 merged 1 commit into
mainfrom
develop
Oct 10, 2026
Merged

ptr727 merged 1 commit into
mainfrom
develop

Conversation

@ptr727

@ptr727 ptr727 commented Oct 10, 2026 •

Copy link
Copy Markdown
Owner

Summary

Promotes one change from develop to main:

  • Pull the Lint Images From GHCR and mirror.gcr.io Instead of Docker Hub #2689: the lint job pulls editorconfig-checker from its GHCR image, and shellcheck and shfmt through mirror.gcr.io, instead of from Docker Hub. Docker Hub's unauthenticated pull limit no longer fails the Lint sources job. scripts/docker_lint.py, the repo-gate composite-actions check, and two READMEs move with it.

Review coverage

CodeRabbit reviewed #2689 at head aae30bab. This promotion carries exactly that content, which anyone can re-check with two commands:

  • git rev-parse aae30bab^{tree} and git rev-parse a762b074^{tree} (the squash on develop) both print 28ab155fb349021e54643ff809168b529287a074.
  • git diff e69f3dd3 a762b074 | sha256sum and git diff origin/main origin/develop | sha256sum print the same hash, since main is at the content of e69f3dd3.

Closes #2682

🤖 Generated with Claude Code

#2689)

## Summary

The `Lint sources job` pulled three images from Docker Hub without
authenticating: editorconfig-checker, shellcheck, and shfmt. Once a
runner's address used up Docker Hub's anonymous pull allowance, the step
failed with `toomanyrequests` regardless of the change under test
(#2682).

This change pulls each image from a registry without that limit:

| Was | Now |
| --- | --- |
| `mstruebing/editorconfig-checker:latest` |
`ghcr.io/editorconfig-checker/editorconfig-checker:latest` (the
project's own GHCR image) |
| `koalaman/shellcheck:stable` |
`mirror.gcr.io/koalaman/shellcheck:stable` |
| `mvdan/shfmt:latest` | `mirror.gcr.io/mvdan/shfmt:latest` |

Each new reference resolves to the same image id as the reference it
replaces. `scripts/docker_lint.py`, the repo-gate `composite-actions`
check (`SHELLCHECK_IMAGE`), and the two READMEs that name the images
move with the workflow, so local runs keep using the same images as CI.
A second commit splits a 29-word sentence on the README line this change
touched.

The `catalog/snippets/configs/vscode-tasks*.json` editor tasks keep the
Docker Hub editorconfig-checker reference. They run locally rather than
in CI, the image is identical, and changing them would give every
carrying repository resync drift for no behavior change.

The maintainer chose this design over authenticating to Docker Hub (a
per-repository secret fleet-wide, missing on Dependabot and fork pull
requests), installing the tools natively (CI tool versions drift from
`docker_lint.py`), and a bounded retry (three attempts across about
twenty minutes already failed on #2681). The known risk is that
`mirror.gcr.io` is a pull-through cache that Google does not guarantee
for these images.

## Verification

- `scripts/docker_lint.py`: all 7 linters pass, pulling the new images.
- `scripts/repo_gate.py`: `composite-actions`, `eol`, `eol-coverage`,
and `sha-pin` all clean. `composite-actions` runs shellcheck from the
new image.
- `tests/test_docker_lint.py` and `tests/test_repo_gate.py`: 181 passed.
- `spec/validate.py`, `ruff check`, `ruff format --check`, actionlint,
and `prose_lint.py --diff` (default and `--check sentence-length`) are
all clean.
- Two recorded `local-strict-review` passes. The first reported only the
pre-existing long sentence, which the second commit fixes, and the
second reported nothing.

Part of #2682. The closing reference goes on the promotion pull request.

🤖 Generated with [Claude Code](https://claude.com/claude-code)


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
* Updated the container image sources used for repository validation and
script checks. The checks themselves remain unchanged.
* Updated setup and script documentation to reflect the revised image
references.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings October 10, 2026 03:46
@coderabbitai

coderabbitai Bot commented Oct 10, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration
  • Configuration used: Repository: ptr727/ProjectTemplate/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: fbf0248e-0ba7-41f9-bd4c-3b304ab281b0

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@codecov

codecov Bot commented Oct 10, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 59.58%. Comparing base (e69f3dd) to head (a762b07).
⚠️ Report is 356 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2690   +/-   ##
=======================================
  Coverage   59.58%   59.58%           
=======================================
  Files          16       16           
  Lines        8316     8316           
=======================================
  Hits         4955     4955           
  Misses       3361     3361           
Flag Coverage Δ
python-3.13 59.58% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟢 Approval recommended

No unresolved review issues were identified.

0 open findings

What changed in this PR

Promotes the lint image registry migration from Docker Hub to GHCR and mirror.gcr.io, keeping tooling, CI, repository gates, and documentation aligned.

Changes:

  • Moves editorconfig-checker to GHCR.
  • Moves shellcheck and shfmt to mirror.gcr.io.
  • Updates related lint documentation and configurations.
File Description
scripts/​README.md Documents the mirrored ShellCheck image.
scripts/​docker_lint.py Updates lint image references.
host-setup/​linux/​README.md Updates local lint documentation.
.github/​workflows/​validate-task.yml Uses the new CI image sources.
.github/​actions/​repo-gate/​repo_gate.py Updates the composite-action ShellCheck image.

🧠 Review effort: Lite


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@ptr727
ptr727 merged commit 16999f6 into main Oct 10, 2026
14 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.

Lint Job Fails on Docker Hub's Unauthenticated Pull Rate Limit

2 participants