From 178fc2e51ead22bd0ef2904b4b5e3018d657914d Mon Sep 17 00:00:00 2001 From: nobe4 Date: Tue, 14 May 2024 07:57:38 +0200 Subject: [PATCH] feat: add json output for PR checks --- pkg/cmd/pr/checks/checks.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/pkg/cmd/pr/checks/checks.go b/pkg/cmd/pr/checks/checks.go index 335226a9c..26931b992 100644 --- a/pkg/cmd/pr/checks/checks.go +++ b/pkg/cmd/pr/checks/checks.go @@ -20,10 +20,23 @@ import ( const defaultInterval time.Duration = 10 * time.Second +var prChecksFields = []string{ + "name", + "state", + "startedAt", + "completedAt", + "link", + "bucket", + "event", + "workflow", + "description", +} + type ChecksOptions struct { HttpClient func() (*http.Client, error) IO *iostreams.IOStreams Browser browser.Browser + Exporter cmdutil.Exporter Finder shared.PRFinder Detector fd.Detector @@ -97,6 +110,8 @@ func NewCmdChecks(f *cmdutil.Factory, runF func(*ChecksOptions) error) *cobra.Co cmd.Flags().IntVarP(&interval, "interval", "i", 10, "Refresh interval in seconds when using `--watch` flag") cmd.Flags().BoolVar(&opts.Required, "required", false, "Only show checks that are required") + cmdutil.AddJSONFlags(cmd, &opts.Exporter, prChecksFields) + return cmd } @@ -161,6 +176,10 @@ func checksRun(opts *ChecksOptions) error { return err } + if opts.Exporter != nil { + return opts.Exporter.Write(opts.IO, checks) + } + if opts.Watch { opts.IO.StartAlternateScreenBuffer() } else {