feat: add json output for PR checks

This commit is contained in:
nobe4 2024-05-14 07:57:38 +02:00
parent af0288910c
commit 178fc2e51e
No known key found for this signature in database
GPG key ID: 911FE2A36C3403DD

View file

@ -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 {