predicate

package
v1.40.0 Latest Latest
Warning

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

Go to latest
Published: Dec 3, 2025 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AllowedConclusions added in v1.36.0

type AllowedConclusions []string

type AuthorIsOnlyContributor

type AuthorIsOnlyContributor bool

func (AuthorIsOnlyContributor) Evaluate

func (AuthorIsOnlyContributor) Trigger added in v1.20.0

func (pred AuthorIsOnlyContributor) Trigger() common.Trigger

type ChangedFiles

type ChangedFiles struct {
	Paths       []common.Regexp `yaml:"paths,omitempty"`
	IgnorePaths []common.Regexp `yaml:"ignore,omitempty"`
}

func (*ChangedFiles) Evaluate

func (pred *ChangedFiles) Evaluate(ctx context.Context, prctx pull.Context) (*common.PredicateResult, error)

func (*ChangedFiles) Trigger added in v1.20.0

func (pred *ChangedFiles) Trigger() common.Trigger

type CompareOp added in v1.22.0

type CompareOp uint8
const (
	OpNone CompareOp = iota
	OpLessThan
	OpGreaterThan
	OpEquals
)

type ComparisonExpr

type ComparisonExpr struct {
	Op    CompareOp
	Value int64
}

func (ComparisonExpr) Evaluate

func (exp ComparisonExpr) Evaluate(n int64) bool

func (ComparisonExpr) IsEmpty

func (exp ComparisonExpr) IsEmpty() bool

func (ComparisonExpr) MarshalText added in v1.22.0

func (exp ComparisonExpr) MarshalText() ([]byte, error)

func (ComparisonExpr) String added in v1.25.0

func (exp ComparisonExpr) String() string

func (*ComparisonExpr) UnmarshalText added in v1.22.0

func (exp *ComparisonExpr) UnmarshalText(text []byte) error

type CustomPropertyIsNotNull added in v1.40.0

type CustomPropertyIsNotNull []string

func (CustomPropertyIsNotNull) Evaluate added in v1.40.0

func (CustomPropertyIsNotNull) Trigger added in v1.40.0

func (pred CustomPropertyIsNotNull) Trigger() common.Trigger

type CustomPropertyIsNull added in v1.40.0

type CustomPropertyIsNull []string

func (CustomPropertyIsNull) Evaluate added in v1.40.0

func (CustomPropertyIsNull) Trigger added in v1.40.0

func (pred CustomPropertyIsNull) Trigger() common.Trigger

type CustomPropertyMatchesAnyOf added in v1.40.0

type CustomPropertyMatchesAnyOf map[string][]common.Regexp

func (CustomPropertyMatchesAnyOf) Evaluate added in v1.40.0

func (CustomPropertyMatchesAnyOf) Trigger added in v1.40.0

func (pred CustomPropertyMatchesAnyOf) Trigger() common.Trigger

type CustomPropertyMatchesNoneOf added in v1.40.0

type CustomPropertyMatchesNoneOf map[string][]common.Regexp

func (CustomPropertyMatchesNoneOf) Evaluate added in v1.40.0

func (CustomPropertyMatchesNoneOf) Trigger added in v1.40.0

type FileAdded added in v1.37.0

type FileAdded struct {
	Paths []common.Regexp `yaml:"paths"`
}

func (*FileAdded) Evaluate added in v1.37.0

func (pred *FileAdded) Evaluate(ctx context.Context, prctx pull.Context) (*common.PredicateResult, error)

func (*FileAdded) Trigger added in v1.37.0

func (pred *FileAdded) Trigger() common.Trigger

type FileDeleted added in v1.37.0

type FileDeleted struct {
	Paths []common.Regexp `yaml:"paths"`
}

func (*FileDeleted) Evaluate added in v1.37.0

func (pred *FileDeleted) Evaluate(ctx context.Context, prctx pull.Context) (*common.PredicateResult, error)

func (*FileDeleted) Trigger added in v1.37.0

func (pred *FileDeleted) Trigger() common.Trigger

type FileNotAdded added in v1.37.0

type FileNotAdded struct {
	Paths []common.Regexp `yaml:"paths"`
}

func (*FileNotAdded) Evaluate added in v1.37.0

func (pred *FileNotAdded) Evaluate(ctx context.Context, prctx pull.Context) (*common.PredicateResult, error)

func (*FileNotAdded) Trigger added in v1.37.0

func (pred *FileNotAdded) Trigger() common.Trigger

type FileNotDeleted added in v1.37.0

type FileNotDeleted struct {
	Paths []common.Regexp `yaml:"paths"`
}

func (*FileNotDeleted) Evaluate added in v1.37.0

func (pred *FileNotDeleted) Evaluate(ctx context.Context, prctx pull.Context) (*common.PredicateResult, error)

func (*FileNotDeleted) Trigger added in v1.37.0

func (pred *FileNotDeleted) Trigger() common.Trigger

type FromBranch added in v1.19.2

type FromBranch struct {
	Pattern common.Regexp `yaml:"pattern,omitempty"`
}

func (*FromBranch) Evaluate added in v1.19.2

func (pred *FromBranch) Evaluate(ctx context.Context, prctx pull.Context) (*common.PredicateResult, error)

func (*FromBranch) Trigger added in v1.20.0

func (pred *FromBranch) Trigger() common.Trigger

type HasAuthorIn

type HasAuthorIn struct {
	common.Actors `yaml:",inline"`
}

func (*HasAuthorIn) Evaluate

func (pred *HasAuthorIn) Evaluate(ctx context.Context, prctx pull.Context) (*common.PredicateResult, error)

func (*HasAuthorIn) Trigger added in v1.20.0

func (pred *HasAuthorIn) Trigger() common.Trigger

type HasContributorIn

type HasContributorIn struct {
	common.Actors `yaml:",inline"`
}

func (*HasContributorIn) Evaluate

func (pred *HasContributorIn) Evaluate(ctx context.Context, prctx pull.Context) (*common.PredicateResult, error)

func (*HasContributorIn) Trigger added in v1.20.0

func (pred *HasContributorIn) Trigger() common.Trigger

type HasLabels

type HasLabels []string

func (HasLabels) Evaluate

func (pred HasLabels) Evaluate(ctx context.Context, prctx pull.Context) (*common.PredicateResult, error)

func (HasLabels) Trigger added in v1.20.0

func (pred HasLabels) Trigger() common.Trigger

type HasStatus added in v1.36.0

type HasStatus struct {
	Conclusions AllowedConclusions `yaml:"conclusions,omitempty"`
	Statuses    []string           `yaml:"statuses,omitempty"`
}

func NewHasStatus added in v1.36.0

func NewHasStatus(statuses []string, conclusions []string) *HasStatus

func (HasStatus) Evaluate added in v1.36.0

func (pred HasStatus) Evaluate(ctx context.Context, prctx pull.Context) (*common.PredicateResult, error)

func (HasStatus) Trigger added in v1.36.0

func (pred HasStatus) Trigger() common.Trigger

type HasSuccessfulStatus deprecated

type HasSuccessfulStatus []string

HasSuccessfulStatus checks that the specified statuses have a successful conclusion.

Deprecated: use the more flexible `HasStatus` with `conclusions: ["success"]` instead.

func (HasSuccessfulStatus) Evaluate

func (HasSuccessfulStatus) Trigger added in v1.20.0

func (pred HasSuccessfulStatus) Trigger() common.Trigger

type HasValidSignatures added in v1.22.0

type HasValidSignatures bool

func (HasValidSignatures) Evaluate added in v1.22.0

func (pred HasValidSignatures) Evaluate(ctx context.Context, prctx pull.Context) (*common.PredicateResult, error)

func (HasValidSignatures) Trigger added in v1.22.0

func (pred HasValidSignatures) Trigger() common.Trigger

type HasValidSignaturesBy added in v1.22.0

type HasValidSignaturesBy struct {
	common.Actors `yaml:",inline,omitempty"`
}

func (*HasValidSignaturesBy) Evaluate added in v1.22.0

func (*HasValidSignaturesBy) Trigger added in v1.22.0

func (pred *HasValidSignaturesBy) Trigger() common.Trigger

type HasValidSignaturesByKeys added in v1.22.0

type HasValidSignaturesByKeys struct {
	KeyIDs []string `yaml:"key_ids,omitempty"`
}

func (*HasValidSignaturesByKeys) Evaluate added in v1.22.0

func (*HasValidSignaturesByKeys) Trigger added in v1.22.0

func (pred *HasValidSignaturesByKeys) Trigger() common.Trigger

type HasWorkflowResult added in v1.36.0

type HasWorkflowResult struct {
	Conclusions AllowedConclusions `yaml:"conclusions,omitempty"`
	Workflows   []string           `yaml:"workflows,omitempty"`
}

func NewHasWorkflowResult added in v1.36.0

func NewHasWorkflowResult(workflows []string, conclusions []string) *HasWorkflowResult

func (HasWorkflowResult) Evaluate added in v1.36.0

func (pred HasWorkflowResult) Evaluate(ctx context.Context, prctx pull.Context) (*common.PredicateResult, error)

func (HasWorkflowResult) Trigger added in v1.36.0

func (pred HasWorkflowResult) Trigger() common.Trigger

type ModifiedLines

type ModifiedLines struct {
	Additions ComparisonExpr          `yaml:"additions,omitempty"`
	Deletions ComparisonExpr          `yaml:"deletions,omitempty"`
	Total     ComparisonExpr          `yaml:"total,omitempty"`
	Files     ModifiedLinesFileFilter `yaml:"files,omitempty"`
}

func (*ModifiedLines) Evaluate

func (pred *ModifiedLines) Evaluate(ctx context.Context, prctx pull.Context) (*common.PredicateResult, error)

func (*ModifiedLines) Trigger added in v1.20.0

func (pred *ModifiedLines) Trigger() common.Trigger

type ModifiedLinesFileFilter added in v1.39.0

type ModifiedLinesFileFilter struct {
	Include []common.Regexp `yaml:"include,omitempty"`
	Exclude []common.Regexp `yaml:"exclude,omitempty"`
}

func (ModifiedLinesFileFilter) IsZero added in v1.39.0

func (ff ModifiedLinesFileFilter) IsZero() bool

func (ModifiedLinesFileFilter) MatchesFile added in v1.39.0

func (ff ModifiedLinesFileFilter) MatchesFile(filename string) bool

type NoChangedFiles added in v1.36.0

type NoChangedFiles struct {
	Paths       []common.Regexp `yaml:"paths,omitempty"`
	IgnorePaths []common.Regexp `yaml:"ignore,omitempty"`
}

func (*NoChangedFiles) Evaluate added in v1.36.0

func (pred *NoChangedFiles) Evaluate(ctx context.Context, prctx pull.Context) (*common.PredicateResult, error)

func (*NoChangedFiles) Trigger added in v1.36.0

func (pred *NoChangedFiles) Trigger() common.Trigger

type OnlyChangedFiles

type OnlyChangedFiles struct {
	Paths []common.Regexp `yaml:"paths,omitempty"`
}

func (*OnlyChangedFiles) Evaluate

func (pred *OnlyChangedFiles) Evaluate(ctx context.Context, prctx pull.Context) (*common.PredicateResult, error)

func (*OnlyChangedFiles) Trigger added in v1.20.0

func (pred *OnlyChangedFiles) Trigger() common.Trigger

type OnlyHasContributorsIn

type OnlyHasContributorsIn struct {
	common.Actors `yaml:",inline"`
}

func (*OnlyHasContributorsIn) Evaluate

func (*OnlyHasContributorsIn) Trigger added in v1.20.0

func (pred *OnlyHasContributorsIn) Trigger() common.Trigger

type Predicate

type Predicate interface {
	common.Triggered

	// Evaluate determines if the predicate is satisfied.
	Evaluate(ctx context.Context, prctx pull.Context) (*common.PredicateResult, error)
}

type Predicates added in v1.21.0

type Predicates struct {
	ChangedFiles     *ChangedFiles     `yaml:"changed_files,omitempty"`
	NoChangedFiles   *NoChangedFiles   `yaml:"no_changed_files,omitempty"`
	OnlyChangedFiles *OnlyChangedFiles `yaml:"only_changed_files,omitempty"`
	FileAdded        *FileAdded        `yaml:"file_added,omitempty"`
	FileNotAdded     *FileNotAdded     `yaml:"file_not_added,omitempty"`
	FileDeleted      *FileDeleted      `yaml:"file_deleted,omitempty"`
	FileNotDeleted   *FileNotDeleted   `yaml:"file_not_deleted,omitempty"`

	HasAuthorIn             *HasAuthorIn             `yaml:"has_author_in,omitempty"`
	HasContributorIn        *HasContributorIn        `yaml:"has_contributor_in,omitempty"`
	OnlyHasContributorsIn   *OnlyHasContributorsIn   `yaml:"only_has_contributors_in,omitempty"`
	AuthorIsOnlyContributor *AuthorIsOnlyContributor `yaml:"author_is_only_contributor,omitempty"`

	TargetsBranch *TargetsBranch `yaml:"targets_branch,omitempty"`
	FromBranch    *FromBranch    `yaml:"from_branch,omitempty"`

	ModifiedLines *ModifiedLines `yaml:"modified_lines,omitempty"`

	HasStatus *HasStatus `yaml:"has_status,omitempty"`
	// `has_successful_status` is a deprecated field that is kept for backwards
	// compatibility.  `has_status` replaces it, and can accept any conclusion
	// rather than just "success".
	HasSuccessfulStatus *HasSuccessfulStatus `yaml:"has_successful_status,omitempty"`

	HasWorkflowResult *HasWorkflowResult `yaml:"has_workflow_result,omitempty"`

	HasLabels *HasLabels `yaml:"has_labels,omitempty"`

	Repository *Repository `yaml:"repository,omitempty"`
	Title      *Title      `yaml:"title,omitempty"`

	HasValidSignatures       *HasValidSignatures       `yaml:"has_valid_signatures,omitempty"`
	HasValidSignaturesBy     *HasValidSignaturesBy     `yaml:"has_valid_signatures_by,omitempty"`
	HasValidSignaturesByKeys *HasValidSignaturesByKeys `yaml:"has_valid_signatures_by_keys,omitempty"`

	CustomPropertyIsNull        *CustomPropertyIsNull        `yaml:"custom_property_is_null,omitempty"`
	CustomPropertyIsNotNull     *CustomPropertyIsNotNull     `yaml:"custom_property_is_not_null,omitempty"`
	CustomPropertyMatchesAnyOf  *CustomPropertyMatchesAnyOf  `yaml:"custom_property_matches_any_of,omitempty"`
	CustomPropertyMatchesNoneOf *CustomPropertyMatchesNoneOf `yaml:"custom_property_matches_none_of,omitempty"`
}

func (Predicates) IsZero added in v1.37.0

func (p Predicates) IsZero() bool

func (*Predicates) Predicates added in v1.21.0

func (p *Predicates) Predicates() []Predicate

type Repository added in v1.27.0

type Repository struct {
	Matches    []common.Regexp `yaml:"matches,omitempty"`
	NotMatches []common.Regexp `yaml:"not_matches,omitempty"`
}

func (Repository) Evaluate added in v1.27.0

func (pred Repository) Evaluate(ctx context.Context, prctx pull.Context) (*common.PredicateResult, error)

func (Repository) Trigger added in v1.27.0

func (pred Repository) Trigger() common.Trigger

type TargetsBranch

type TargetsBranch struct {
	Pattern common.Regexp `yaml:"pattern,omitempty"`
}

func (*TargetsBranch) Evaluate

func (pred *TargetsBranch) Evaluate(ctx context.Context, prctx pull.Context) (*common.PredicateResult, error)

func (*TargetsBranch) Trigger added in v1.20.0

func (pred *TargetsBranch) Trigger() common.Trigger

type Title added in v1.21.0

type Title struct {
	Matches    []common.Regexp `yaml:"matches,omitempty"`
	NotMatches []common.Regexp `yaml:"not_matches,omitempty"`
}

func (Title) Evaluate added in v1.21.0

func (pred Title) Evaluate(ctx context.Context, prctx pull.Context) (*common.PredicateResult, error)

func (Title) Trigger added in v1.21.0

func (pred Title) Trigger() common.Trigger

Jump to

Keyboard shortcuts

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