push empty descriptor layer when using OCI version 1.1 for Compose artifact

it fixes a repository creation issue when pushing the 1st time a Compose OCI artifact on the Hub

Signed-off-by: Guillaume Lours <705411+glours@users.noreply.github.com>
This commit is contained in:
Guillaume Lours 2024-11-13 11:09:42 +01:00
parent 2bb67f2700
commit 3f5898f8d0
1 changed files with 4 additions and 0 deletions

View File

@ -88,6 +88,10 @@ func PushManifest(
layers []Pushable, layers []Pushable,
ociVersion api.OCIVersion, ociVersion api.OCIVersion,
) error { ) error {
// Check if we need an extra empty layer for the manifest config
if ociVersion == api.OCIVersion1_1 || ociVersion == "" {
layers = append(layers, Pushable{Descriptor: v1.DescriptorEmptyJSON, Data: []byte("{}")})
}
// prepare to push the manifest by pushing the layers // prepare to push the manifest by pushing the layers
layerDescriptors := make([]v1.Descriptor, len(layers)) layerDescriptors := make([]v1.Descriptor, len(layers))
for i := range layers { for i := range layers {