Documentation
¶
Overview ¶
Package artifacts abstracts where per-run report artifacts ultimately live.
A hook always writes its outputs to a local staging directory Arena hands it and records {name, description, filename} in manifest.json — it never knows or cares about the backend. After the hook runs, Arena ingests the staged manifest through a Store: the local backend leaves bytes in place and returns a relative link; a future S3/DB backend would upload and return a URL/key. Flipping the backend is a config change, never a hook change.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Local ¶
type Local struct{}
Local is the default backend: bytes already live under the report's output dir (the hook wrote them there), so Store is a no-op that returns the relative link the report can follow from disk.
type Reference ¶
type Reference string
Reference is a link the report resolves to an artifact: a relative path for the local backend, or an absolute URL/key for a remote one.
type ResolvedEntry ¶
type ResolvedEntry struct {
Name string `json:"name"`
Description string `json:"description"`
Ref Reference `json:"ref"`
}
ResolvedEntry is what Arena writes after storing — the Reference replaces the hook's filename. This is what the report reads.
type ResolvedManifest ¶
type ResolvedManifest struct {
Artifacts []ResolvedEntry `json:"artifacts"`
}
ResolvedManifest is the manifest after ingestion.
type StagedEntry ¶
type StagedEntry struct {
Name string `json:"name"`
Description string `json:"description"`
Filename string `json:"filename"`
}
StagedEntry is what a hook records — it owns name/description/filename.
type StagedManifest ¶
type StagedManifest struct {
Artifacts []StagedEntry `json:"artifacts"`
}
StagedManifest is the on-disk manifest a hook writes.