@@ -22,6 +22,7 @@ import (
22
22
"github.com/snyk/vervet/v8"
23
23
"github.com/snyk/vervet/v8/config"
24
24
"github.com/snyk/vervet/v8/internal/files"
25
+ "github.com/snyk/vervet/v8/specs"
25
26
)
26
27
27
28
// Build compiles the versioned resources in a project configuration based on
@@ -250,60 +251,44 @@ func LoadPaths(ctx context.Context, api *config.API) (Operations, error) {
250
251
if err != nil {
251
252
return nil , err
252
253
}
253
-
254
- for _ , resource := range api .Resources {
255
- paths , err := ResourceSpecFiles (resource )
254
+ for doc , err := range specs .GetInputSpecsItr (ctx , api ) {
256
255
if err != nil {
257
256
return nil , err
258
257
}
259
- for _ , path := range paths {
260
- versionDir := filepath .Dir (path )
261
- versionStr := filepath .Base (versionDir )
262
- resourceName := filepath .Base (filepath .Dir (filepath .Dir (path )))
263
-
264
- doc , err := vervet .NewDocumentFile (path )
265
- if err != nil {
266
- return nil , fmt .Errorf ("failed to load spec from %q: %w" , path , err )
267
- }
268
-
269
- stabilityStr , err := vervet .ExtensionString (doc .T .Extensions , vervet .ExtSnykApiStability )
270
- if err != nil {
271
- return nil , err
272
- }
273
- if stabilityStr != "ga" {
274
- versionStr = fmt .Sprintf ("%s~%s" , versionStr , stabilityStr )
275
- }
276
- version , err := vervet .ParseVersion (versionStr )
277
- if err != nil {
278
- return nil , fmt .Errorf ("invalid version %q" , versionStr )
279
- }
280
258
281
- doc .InternalizeRefs (ctx , vervet .ResolveRefsWithoutSourceName )
282
- err = doc .ResolveRefs ()
283
- if err != nil {
284
- return nil , fmt .Errorf ("failed to localize refs: %w" , err )
285
- }
259
+ version , err := doc .Version ()
260
+ if err != nil {
261
+ return nil , fmt .Errorf ("invalid version on path %q" , doc .Location ().String ())
262
+ }
263
+ stabilityStr , err := vervet .ExtensionString (doc .T .Extensions , vervet .ExtSnykApiStability )
264
+ if err != nil {
265
+ return nil , err
266
+ }
267
+ version .Stability , err = vervet .ParseStability (stabilityStr )
268
+ if err != nil {
269
+ return nil , fmt .Errorf ("invalid stability %q" , stabilityStr )
270
+ }
271
+ resourceName := filepath .Base (filepath .Dir (doc .RelativePath ()))
286
272
287
- for _ , pathName := range doc .T .Paths .InMatchingOrder () {
288
- pathDef := doc .T .Paths .Value (pathName )
289
- for opName , opDef := range pathDef .Operations () {
290
- if opDef .Extensions == nil {
291
- opDef .Extensions = make (map [string ]interface {})
292
- }
293
- opDef .Extensions [vervet .ExtSnykApiOwner ] = ownerFinder .Owners (path )
294
- k := OpKey {
295
- Path : pathName ,
296
- Method : opName ,
297
- }
298
- if operations [k ] == nil {
299
- operations [k ] = []VersionedOp {}
300
- }
301
- operations [k ] = append (operations [k ], VersionedOp {
302
- Version : version ,
303
- Operation : opDef ,
304
- ResourceName : resourceName ,
305
- })
273
+ for _ , pathName := range doc .T .Paths .InMatchingOrder () {
274
+ pathDef := doc .T .Paths .Value (pathName )
275
+ for opName , opDef := range pathDef .Operations () {
276
+ if opDef .Extensions == nil {
277
+ opDef .Extensions = make (map [string ]interface {})
278
+ }
279
+ opDef .Extensions [vervet .ExtSnykApiOwner ] = ownerFinder .Owners (doc .Location ().String ())
280
+ k := OpKey {
281
+ Path : pathName ,
282
+ Method : opName ,
283
+ }
284
+ if operations [k ] == nil {
285
+ operations [k ] = []VersionedOp {}
306
286
}
287
+ operations [k ] = append (operations [k ], VersionedOp {
288
+ Version : version ,
289
+ Operation : opDef ,
290
+ ResourceName : resourceName ,
291
+ })
307
292
}
308
293
}
309
294
}
0 commit comments