Documentation
¶
Overview ¶
Package publish delivers rendered reports (report.Artifact) to destinations. A Publisher is the "where" of reporting — separate from the Reporter (the "what", pkg/report) — so a scan can render several formats once and deliver them to several destinations.
Built-in publishers: file. Each publisher is configured from a saga.PublisherConfig.
Index ¶
Constants ¶
const DiffMarker = defaultDiffPRMarker
DiffMarker identifies the sticky comment `draugr diff --publish` maintains.
Exported so the diff command asks for it by name rather than restating the string. It is deliberately not the marker a Saga's PR-comment publisher uses: a run that posts both a report and a delta wants two comments, not one that overwrites the other.
const ReportMarker = defaultPRMarker
ReportMarker identifies the sticky comment a Saga's PR-comment publisher maintains.
Variables ¶
This section is empty.
Functions ¶
func Run ¶
func Run(ctx context.Context, reports []saga.ReportConfig, publishers []saga.PublisherConfig, data report.Data) error
Run renders each configured report format once, then delivers every rendered artifact to every configured publisher. It returns the first error encountered; a publisher that fails does not prevent the others from being attempted.
Types ¶
type Publisher ¶
type Publisher interface {
// Kind is the publisher's config selector, e.g. "file".
Kind() string
// Publish delivers the artifacts. A publisher may use only the artifacts it cares about
// (e.g. a code-scanning publisher would take the SARIF one), ignoring the rest.
Publish(ctx context.Context, artifacts []report.Artifact) error
}
Publisher delivers rendered report artifacts to one destination.