attribution

package
v1.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 5, 2026 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SourceLocalGit = "local_git"
	ConfidenceHigh = "high"
	ConfidenceLow  = "low"
)
View Source
const (
	SourceProviderProvenance = "provider_pr_mr_provenance"
	SourceGitHubEvent        = "github_event_payload"
	SourceGitLabEvent        = "gitlab_merge_request_event"
	SourceSidecar            = "source_metadata"
)

Variables

This section is empty.

Functions

func EvidenceRefs added in v1.6.0

func EvidenceRefs(result *Result) []string

func ValidateProvenanceJSON added in v1.6.0

func ValidateProvenanceJSON(payload []byte) error

Types

type Candidate added in v1.4.0

type Candidate struct {
	Source       string
	Provider     string
	Reference    string
	PRNumber     int
	CommitSHA    string
	Author       string
	Timestamp    string
	ProviderURL  string
	ChangedFiles []string
	Provenance   *Provenance
}

type Context added in v1.4.0

type Context struct {
	RepoRoot        string
	Candidates      []Candidate
	ControlMetadata map[string]ControlMetadata
}

func LoadContext added in v1.4.0

func LoadContext(repoRoot string) Context

func LoadContextAt added in v1.6.0

func LoadContextAt(repoRoot string, generatedAt time.Time) Context

type ControlMetadata added in v1.6.0

type ControlMetadata struct {
	Path                      string                    `json:"path"`
	Owner                     string                    `json:"owner,omitempty"`
	OwnerSource               string                    `json:"owner_source,omitempty"`
	ControlResolutionState    string                    `json:"control_resolution_state,omitempty"`
	ControlResolutionReasons  []string                  `json:"control_resolution_reasons,omitempty"`
	ControlEvidenceRefs       []string                  `json:"control_evidence_refs,omitempty"`
	ConstraintEvidenceClasses []string                  `json:"constraint_evidence_classes,omitempty"`
	ConstraintEvidenceRefs    []string                  `json:"constraint_evidence_refs,omitempty"`
	ConstraintEvidenceStatus  string                    `json:"constraint_evidence_status,omitempty"`
	ApprovalEvidenceState     string                    `json:"approval_evidence_state,omitempty"`
	OwnerEvidenceState        string                    `json:"owner_evidence_state,omitempty"`
	ProofEvidenceState        string                    `json:"proof_evidence_state,omitempty"`
	RuntimeEvidenceState      string                    `json:"runtime_evidence_state,omitempty"`
	TargetEvidenceState       string                    `json:"target_evidence_state,omitempty"`
	CredentialEvidenceState   string                    `json:"credential_evidence_state,omitempty"`
	ExternalReferences        []string                  `json:"external_references,omitempty"`
	TargetClass               string                    `json:"target_class,omitempty"`
	TargetClassReasons        []string                  `json:"target_class_reasons,omitempty"`
	TargetClassEvidenceRefs   []string                  `json:"target_class_evidence_refs,omitempty"`
	EvidenceDecisions         []evidencepolicy.Decision `json:"evidence_decisions,omitempty"`
}

func ResolveControlMetadata added in v1.6.0

func ResolveControlMetadata(byPath map[string]ControlMetadata, location string) (ControlMetadata, bool)

type Provenance added in v1.6.0

type Provenance struct {
	Provider           string                       `json:"provider,omitempty"`
	Kind               string                       `json:"kind,omitempty"`
	Reference          string                       `json:"reference,omitempty"`
	Number             int                          `json:"number,omitempty"`
	Title              string                       `json:"title,omitempty"`
	ProviderURL        string                       `json:"provider_url,omitempty"`
	HeadSHA            string                       `json:"head_sha,omitempty"`
	MergeCommitSHA     string                       `json:"merge_commit_sha,omitempty"`
	Author             string                       `json:"author,omitempty"`
	UpdatedAt          string                       `json:"updated_at,omitempty"`
	BaseBranch         string                       `json:"base_branch,omitempty"`
	HeadBranch         string                       `json:"head_branch,omitempty"`
	MergedBy           string                       `json:"merged_by,omitempty"`
	MergeMethod        string                       `json:"merge_method,omitempty"`
	MergeState         string                       `json:"merge_state,omitempty"`
	ChangedFiles       []string                     `json:"changed_files,omitempty"`
	Reviewers          []ProvenanceActor            `json:"reviewers,omitempty"`
	Approvals          []ProvenanceActor            `json:"approvals,omitempty"`
	Checks             []ProvenanceCheck            `json:"checks,omitempty"`
	Deployments        []ProvenanceDeployment       `json:"deployments,omitempty"`
	BranchProtections  []ProvenanceBranchProtection `json:"branch_protections,omitempty"`
	EnvironmentGates   []ProvenanceEnvironmentGate  `json:"environment_gates,omitempty"`
	ConflictState      string                       `json:"conflict_state,omitempty"`
	MissingEvidence    []string                     `json:"missing_evidence,omitempty"`
	EvidenceRefs       []string                     `json:"evidence_refs,omitempty"`
	AIAssisted         bool                         `json:"ai_assisted,omitempty"`
	AutomationAssisted bool                         `json:"automation_assisted,omitempty"`
}

func CloneProvenance added in v1.6.0

func CloneProvenance(in *Provenance) *Provenance

func NormalizeProvenance added in v1.6.0

func NormalizeProvenance(in *Provenance) *Provenance

type ProvenanceActor added in v1.6.0

type ProvenanceActor struct {
	Name        string `json:"name,omitempty"`
	State       string `json:"state,omitempty"`
	Role        string `json:"role,omitempty"`
	ObservedAt  string `json:"observed_at,omitempty"`
	ProviderURL string `json:"provider_url,omitempty"`
	Required    bool   `json:"required,omitempty"`
}

type ProvenanceBranchProtection added in v1.6.0

type ProvenanceBranchProtection struct {
	Branch            string   `json:"branch,omitempty"`
	Status            string   `json:"status,omitempty"`
	RequiredApprovals int      `json:"required_approvals,omitempty"`
	RequiredChecks    []string `json:"required_checks,omitempty"`
	EvidenceRefs      []string `json:"evidence_refs,omitempty"`
}

type ProvenanceCheck added in v1.6.0

type ProvenanceCheck struct {
	Name        string `json:"name,omitempty"`
	Status      string `json:"status,omitempty"`
	Conclusion  string `json:"conclusion,omitempty"`
	Category    string `json:"category,omitempty"`
	ObservedAt  string `json:"observed_at,omitempty"`
	ProviderURL string `json:"provider_url,omitempty"`
	Required    bool   `json:"required,omitempty"`
}

type ProvenanceDeployment added in v1.6.0

type ProvenanceDeployment struct {
	Environment string `json:"environment,omitempty"`
	Status      string `json:"status,omitempty"`
	ObservedAt  string `json:"observed_at,omitempty"`
	ProviderURL string `json:"provider_url,omitempty"`
	GateState   string `json:"gate_state,omitempty"`
}

type ProvenanceEnvironmentGate added in v1.6.0

type ProvenanceEnvironmentGate struct {
	Environment       string   `json:"environment,omitempty"`
	Status            string   `json:"status,omitempty"`
	RequiredReviewers []string `json:"required_reviewers,omitempty"`
	DeploymentIDs     []string `json:"deployment_ids,omitempty"`
}

type Result

type Result struct {
	Source        string               `json:"source"`
	Confidence    string               `json:"confidence"`
	MissingReason string               `json:"missing_reason,omitempty"`
	Provider      string               `json:"provider,omitempty"`
	Reference     string               `json:"reference,omitempty"`
	PRNumber      int                  `json:"pr_number,omitempty"`
	CommitSHA     string               `json:"commit_sha,omitempty"`
	Author        string               `json:"author,omitempty"`
	Timestamp     string               `json:"timestamp,omitempty"`
	ChangedFile   string               `json:"changed_file,omitempty"`
	LineRange     *model.LocationRange `json:"line_range,omitempty"`
	ProviderURL   string               `json:"provider_url,omitempty"`
	Provenance    *Provenance          `json:"provenance,omitempty"`
}

func Local

func Local(repoRoot, relPath string, lineRange *model.LocationRange) *Result

func Merge

func Merge(current, incoming *Result) *Result

func Resolve added in v1.4.0

func Resolve(ctx Context, relPath string, lineRange *model.LocationRange) *Result

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL