diff --git a/src/main/java/land/oras/ArtifactType.java b/src/main/java/land/oras/ArtifactType.java index bd0aa2ea..f3ec7904 100644 --- a/src/main/java/land/oras/ArtifactType.java +++ b/src/main/java/land/oras/ArtifactType.java @@ -57,7 +57,7 @@ public static ArtifactType from(@Nullable String artifactType) { return unknown(); } // Must match https://datatracker.ietf.org/doc/html/rfc6838 - if (!artifactType.matches("^[a-zA-Z0-9!#$&-^_]+/[a-zA-Z0-9!#$&-^_]+$")) { + if (!artifactType.matches("^[a-zA-Z0-9!#$%&'*+.^_`{|}~-]+/[a-zA-Z0-9!#$%&'*+.^_`{|}~-]+$")) { throw new OrasException("Invalid artifact type: %s".formatted(artifactType)); } return new ArtifactType(artifactType);