➜ ~ oras push localhost:5000/artifact:type --format json --config <(echo -n "{}"):my/type --image-spec v1.1
✓ Exists my/type 0/0 B 100.00% 0s
└─ sha256:44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a
✓ Exists application/vnd.oci.empty.v1+json 2/2 B 100.00% 0s
└─ sha256:44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a
✓ Uploaded application/vnd.oci.image.manifest.v1+json 442/442 B 100.00% 0s
└─ sha256:3179007d443a6c79a5e3b8af868cf762202ca3e95ecf87da456e59963913e006
{
"Ref": "localhost:5000/artifact@sha256:3179007d443a6c79a5e3b8af868cf762202ca3e95ecf87da456e59963913e006",
"MediaType": "application/vnd.oci.image.manifest.v1+json",
"Digest": "sha256:3179007d443a6c79a5e3b8af868cf762202ca3e95ecf87da456e59963913e006",
"Size": 442,
"Annotations": {
"org.opencontainers.image.created": "2024-03-28T01:43:28Z"
},
"ArtifactType": ""
}
➜ ~ oras manifest fetch --pretty localhost:5000/artifact:type
{
"schemaVersion": 2,
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"config": {
"mediaType": "my/type",
"digest": "sha256:44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a",
"size": 0
},
"layers": [
{
"mediaType": "application/vnd.oci.empty.v1+json",
"digest": "sha256:44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a",
"size": 2,
"data": "e30="
}
],
"annotations": {
"org.opencontainers.image.created": "2024-03-28T01:43:28Z"
What is the version of your ORAS CLI
v1.2.0
What would you like to be added?
oras pushsupports pushing an artifact withoutartifactTypeeven when OCI image spec v1.1 is specified.Why is this needed for ORAS?
According to the guidance, v1.1 artifact should always contains an
artifactType, so--configMUST not to be used with--image-spec v1.1if--artifac-typeis not specified, return error when encounter this.--image-specshould be default toauto, which representsv1.0if--configis used and--artifact-typenot used. Otherwisev1.1Are you willing to submit PRs to contribute to this feature?