Skip to content

Conversation

@dcolina
Copy link
Member

@dcolina dcolina commented Dec 12, 2025

Summary

Fixes the image format validation regex that was preventing tags with underscores (like commit hashes) from being validated correctly.

Problem

The regex pattern had the hyphen positioned in a way that caused validation failures for images like mirror.gcr.io/dotcms/dotcms:25.12.08-1_872913a

Solution

Changed the character class order from [a-zA-Z0-9.-] to [a-zA-Z0-9.-] to ensure the hyphen is interpreted as a literal character.

Testing

Local verification confirms the fix works with tags containing underscores and hashes.

Impact

This enables the deployment guard to properly validate Docker images with commit hash suffixes (v1.1.1 feature).

The previous regex pattern [a-zA-Z0-9._-] had the hyphen in a position
that caused it to be interpreted as a range operator, preventing tags
with underscores (like 25.12.08-1_872913a) from matching.

Changed character class order to [a-zA-Z0-9_.-] to fix the issue.

This enables proper validation of immutable tags with commit hashes.
@dcolina dcolina requested review from a team as code owners December 12, 2025 15:40
@dcolina dcolina merged commit b098409 into main Dec 12, 2025
3 checks passed
@dcolina dcolina deleted the fix/image-format-regex-underscore branch December 12, 2025 15:41
dcolina added a commit that referenced this pull request Dec 12, 2025
## Summary

Fixes the repository extraction logic that was incorrectly removing too
much from mirror registry paths.

## Problem

The previous logic performed two extractions:
1. `mirror.gcr.io/dotcms/dotcms` → `dotcms/dotcms` (remove registry)
2. `dotcms/dotcms` → `dotcms` (remove one more level)

This caused validation failures because `dotcms` does not match the
allowed repository `dotcms/dotcms`.

## Solution

Changed to a single extraction that removes only the registry domain
prefix, preserving the org/repo structure.

### Test Results

- ✅ `mirror.gcr.io/dotcms/dotcms` → `dotcms/dotcms`
- ✅ `docker.io/dotcms/dotcms` → `dotcms/dotcms`
- ✅ `dotcms/dotcms` → `dotcms/dotcms`

## Impact

This fix enables proper validation of images from mirror registries like
`mirror.gcr.io`.

## Related

- Blocks: dotCMS/deutschebank-infrastructure#360
- Follows: #13
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