@@ -380,6 +380,8 @@ func (api *API) getPipelinesHandler() service.Handler {
380
380
// Get project name in URL
381
381
vars := mux .Vars (r )
382
382
key := vars [permProjectKey ]
383
+ withUsage := service .FormBool (r , "withUsage" )
384
+ withoutDetails := service .FormBool (r , "withoutDetails" )
383
385
384
386
project , err := project .Load (ctx , api .mustDB (), key , project .LoadOptions .Default )
385
387
if err != nil {
@@ -389,15 +391,27 @@ func (api *API) getPipelinesHandler() service.Handler {
389
391
return err
390
392
}
391
393
392
- pip , err := pipeline .LoadPipelines (api .mustDB (), project .ID , true )
394
+ pips , err := pipeline .LoadPipelines (api .mustDB (), project .ID , withoutDetails )
393
395
if err != nil {
394
396
if ! sdk .ErrorIs (err , sdk .ErrPipelineNotFound ) {
395
397
log .Warn (ctx , "getPipelinesHandler>Cannot load pipelines: %s\n " , err )
396
398
}
397
399
return err
398
400
}
399
401
400
- return service .WriteJSON (w , pip , http .StatusOK )
402
+ if withUsage {
403
+ for i := range pips {
404
+ p := & pips [i ]
405
+ wf , err := workflow .LoadByPipelineName (ctx , api .mustDB (), key , p .Name )
406
+ if err != nil {
407
+ return sdk .WrapError (err , "cannot load workflows using pipeline %s" , p .Name )
408
+ }
409
+ p .Usage = & sdk.Usage {}
410
+ p .Usage .Workflows = wf
411
+ }
412
+ }
413
+
414
+ return service .WriteJSON (w , pips , http .StatusOK )
401
415
}
402
416
}
403
417
0 commit comments