From d4c6c0ba8451fbbfec8a7e7ba9e0f5e3f07c8e4f Mon Sep 17 00:00:00 2001 From: Sayan Biswas Date: Fri, 29 Aug 2025 16:20:23 +0530 Subject: [PATCH] Fix buildrun list command # Changes: - Check if BuildSpec exists in Status of BuildRun, since it an optional field in the API - Try to get SourceOrigin from BuildRunSpec if it doesn't exist in BuildRun status. Signed-off-by: Sayan Biswas --- pkg/shp/cmd/buildrun/list.go | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/pkg/shp/cmd/buildrun/list.go b/pkg/shp/cmd/buildrun/list.go index 974ce6b3..a1034d71 100644 --- a/pkg/shp/cmd/buildrun/list.go +++ b/pkg/shp/cmd/buildrun/list.go @@ -106,14 +106,26 @@ func (c *ListCommand) Run(params *params.Params, io *genericclioptions.IOStreams for _, br := range brs.Items { name := br.Name buildName := br.Spec.BuildName() - outputImage := br.Status.BuildSpec.Output.Image - sourceOrigin := br.Status.BuildSpec.Source.Type + outputImage := "-" source := "-" - if sourceOrigin == "Git" { - source = br.Status.BuildSpec.Source.Git.URL - revision := br.Status.BuildSpec.Source.Git.Revision - if revision != nil { - source += "@" + *revision + sourceOrigin := "-" + // Check if BuildSpec is present in Status as this is an optional pointer field. + if br.Status.BuildSpec != nil { + outputImage = br.Status.BuildSpec.Output.Image + + // In case the Source is not preset in the BuildSpec, try to get it from BuildRun spec. + if br.Status.BuildSpec.Source != nil { + sourceOrigin = string(br.Status.BuildSpec.Source.Type) + } else if br.Spec.Source != nil { + sourceOrigin = string(br.Spec.Source.Type) + } + + if sourceOrigin == "Git" { + source = br.Status.BuildSpec.Source.Git.URL + revision := br.Status.BuildSpec.Source.Git.Revision + if revision != nil { + source += "@" + *revision + } } }