@@ -58,6 +58,7 @@ type Package struct {
58
58
type Metadata struct {
59
59
Description string `json:"description,omitempty"`
60
60
ReleaseNotes string `json:"release_notes,omitempty"`
61
+ Readme string `json:"readme,omitempty"`
61
62
Authors string `json:"authors,omitempty"`
62
63
ProjectURL string `json:"project_url,omitempty"`
63
64
RepositoryURL string `json:"repository_url,omitempty"`
@@ -81,6 +82,7 @@ type nuspecPackage struct {
81
82
ProjectURL string `xml:"projectUrl"`
82
83
Description string `xml:"description"`
83
84
ReleaseNotes string `xml:"releaseNotes"`
85
+ Readme string `xml:"readme"`
84
86
PackageTypes struct {
85
87
PackageType []struct {
86
88
Name string `xml:"name,attr"`
@@ -90,7 +92,7 @@ type nuspecPackage struct {
90
92
URL string `xml:"url,attr"`
91
93
} `xml:"repository"`
92
94
Dependencies struct {
93
- Dependency []struct {
95
+ Dependency []struct {
94
96
ID string `xml:"id,attr"`
95
97
Version string `xml:"version,attr"`
96
98
Exclude string `xml:"exclude,attr"`
@@ -128,14 +130,14 @@ func ParsePackageMetaData(r io.ReaderAt, size int64) (*Package, error) {
128
130
}
129
131
defer f .Close ()
130
132
131
- return ParseNuspecMetaData (f )
133
+ return ParseNuspecMetaData (archive , f )
132
134
}
133
135
}
134
136
return nil , ErrMissingNuspecFile
135
137
}
136
138
137
139
// 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 ) {
139
141
var p nuspecPackage
140
142
if err := xml .NewDecoder (r ).Decode (& p ); err != nil {
141
143
return nil , err
@@ -172,6 +174,15 @@ func ParseNuspecMetaData(r io.Reader) (*Package, error) {
172
174
Dependencies : make (map [string ][]Dependency ),
173
175
}
174
176
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
+
175
186
if len (p .Metadata .Dependencies .Dependency ) > 0 {
176
187
deps := make ([]Dependency , 0 , len (p .Metadata .Dependencies .Dependency ))
177
188
for _ , dep := range p .Metadata .Dependencies .Dependency {
0 commit comments