@@ -18,13 +18,6 @@ func init() {
1818 return nil , distribution.Descriptor {}, err
1919 }
2020
21- if d .inner .MediaType != v1 .MediaTypeArtifactManifest {
22- err = fmt .Errorf ("if present, mediaType in ORAS artifact manifest should be '%s' not '%s'" ,
23- v1 .MediaTypeArtifactManifest , d .inner .MediaType )
24-
25- return nil , distribution.Descriptor {}, err
26- }
27-
2821 dgst := digest .FromBytes (b )
2922 return d , distribution.Descriptor {Digest : dgst , Size : int64 (len (b )), MediaType : v1 .MediaTypeArtifactManifest }, err
3023 }
@@ -57,12 +50,12 @@ func (a Manifest) References() []distribution.Descriptor {
5750 return blobs
5851}
5952
60- // SubjectManifest returns the the subject manifest this artifact references.
61- func (a Manifest ) SubjectManifest () distribution.Descriptor {
53+ // Subject returns the the subject manifest this artifact references.
54+ func (a Manifest ) Subject () distribution.Descriptor {
6255 return distribution.Descriptor {
63- MediaType : a .inner .SubjectManifest .MediaType ,
64- Digest : a .inner .SubjectManifest .Digest ,
65- Size : a .inner .SubjectManifest .Size ,
56+ MediaType : a .inner .Subject .MediaType ,
57+ Digest : a .inner .Subject .Digest ,
58+ Size : a .inner .Subject .Size ,
6659 }
6760}
6861
@@ -83,6 +76,9 @@ func (d *DeserializedManifest) UnmarshalJSON(b []byte) error {
8376 if err := json .Unmarshal (d .raw , & man ); err != nil {
8477 return err
8578 }
79+ if man .ArtifactType == "" {
80+ return errors .New ("artifactType cannot be empty" )
81+ }
8682 d .inner = man
8783
8884 return nil
@@ -100,12 +96,6 @@ func (d *DeserializedManifest) MarshalJSON() ([]byte, error) {
10096// Payload returns the raw content of the Artifact. The contents can be
10197// used to calculate the content identifier.
10298func (d DeserializedManifest ) Payload () (string , []byte , error ) {
103- var mediaType string
104- if d .inner .MediaType == "" {
105- mediaType = v1 .MediaTypeArtifactManifest
106- } else {
107- mediaType = d .inner .MediaType
108- }
109-
110- return mediaType , d .raw , nil
99+ // NOTE: This is a hack. The media type should be read from storage.
100+ return v1 .MediaTypeArtifactManifest , d .raw , nil
111101}
0 commit comments