@@ -58,6 +58,7 @@ type Package struct {
5858type Metadata struct {
5959 Description string `json:"description,omitempty"`
6060 ReleaseNotes string `json:"release_notes,omitempty"`
61+ Readme string `json:"readme,omitempty"`
6162 Authors string `json:"authors,omitempty"`
6263 ProjectURL string `json:"project_url,omitempty"`
6364 RepositoryURL string `json:"repository_url,omitempty"`
@@ -81,6 +82,7 @@ type nuspecPackage struct {
8182 ProjectURL string `xml:"projectUrl"`
8283 Description string `xml:"description"`
8384 ReleaseNotes string `xml:"releaseNotes"`
85+ Readme string `xml:"readme"`
8486 PackageTypes struct {
8587 PackageType []struct {
8688 Name string `xml:"name,attr"`
@@ -90,7 +92,7 @@ type nuspecPackage struct {
9092 URL string `xml:"url,attr"`
9193 } `xml:"repository"`
9294 Dependencies struct {
93- Dependency []struct {
95+ Dependency []struct {
9496 ID string `xml:"id,attr"`
9597 Version string `xml:"version,attr"`
9698 Exclude string `xml:"exclude,attr"`
@@ -128,14 +130,14 @@ func ParsePackageMetaData(r io.ReaderAt, size int64) (*Package, error) {
128130 }
129131 defer f .Close ()
130132
131- return ParseNuspecMetaData (f )
133+ return ParseNuspecMetaData (archive , f )
132134 }
133135 }
134136 return nil , ErrMissingNuspecFile
135137}
136138
137139// ParseNuspecMetaData parses a Nuspec file to retrieve the metadata of a Nuget package
138- func ParseNuspecMetaData (r io.Reader ) (* Package , error ) {
140+ func ParseNuspecMetaData (archive * zip. Reader , r io.Reader ) (* Package , error ) {
139141 var p nuspecPackage
140142 if err := xml .NewDecoder (r ).Decode (& p ); err != nil {
141143 return nil , err
@@ -172,6 +174,15 @@ func ParseNuspecMetaData(r io.Reader) (*Package, error) {
172174 Dependencies : make (map [string ][]Dependency ),
173175 }
174176
177+ if p .Metadata .Readme != "" {
178+ f , err := archive .Open (p .Metadata .Readme )
179+ if err == nil {
180+ buf , _ := io .ReadAll (f )
181+ m .Readme = string (buf )
182+ _ = f .Close ()
183+ }
184+ }
185+
175186 if len (p .Metadata .Dependencies .Dependency ) > 0 {
176187 deps := make ([]Dependency , 0 , len (p .Metadata .Dependencies .Dependency ))
177188 for _ , dep := range p .Metadata .Dependencies .Dependency {
0 commit comments