Skip to content

Async validate public container image URLs - #675

Open
czhu12 wants to merge 6 commits into
mainfrom
feat/async-image-validation
Open

Async validate public container image URLs#675
czhu12 wants to merge 6 commits into
mainfrom
feat/async-image-validation

Conversation

@czhu12

@czhu12 czhu12 commented Jul 26, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Adds ContainerRegistry::ImageChecker service that validates public images against the registry v2 manifest API (supports Docker Hub auth tokens)
  • Adds POST /projects/validate_image endpoint returning { valid, error }
  • Adds image-validation Stimulus controller with 500ms debounce, loading spinner, and success/error feedback
  • Wired up on the public image URL field in the new project form

Test plan

  • Enter a valid image (e.g. nginx:latest) and verify the green checkmark appears
  • Enter an invalid image (e.g. docker.io/nonexistent/image123:v1) and verify the error message
  • Enter a private image and verify it suggests using a private registry
  • Clear the field and verify the status disappears
  • Verify fast typing only triggers one check (debounce)

czhu12 added 6 commits July 11, 2026 16:01
Adds a backend endpoint that checks if a public container image exists
by querying the registry's v2 manifest API. Includes a Stimulus
controller that debounces input and shows live validation feedback.
Skip async check when the input has a registry host (contains a dot)
but no path yet, e.g. "docker.io" or "ghcr.io/". Only fires once a
repository path is present.
Extracts image validation into its own namespaced controller at
POST /projects/image_validation instead of a collection action
on ProjectsController.
Works across all registries without manual auth handling.
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