corvix.config.rules

Rule domain model and YAML parsing.

Attributes

Classes

ContextPredicate

Predicate evaluated against enriched notification context.

MatchCriteria

Filter fields for rules and dashboards.

RuleAction

Action emitted when a rule matches.

Rule

Global or repository-scoped automation rule.

RuleSet

Collection of global and per-repository rules.

Functions

_parse_match(→ MatchCriteria)

_parse_context_predicates(→ list[ContextPredicate])

_parse_context_predicate(→ ContextPredicate)

_parse_rules(→ RuleSet)

_parse_rule(→ Rule)

Module Contents

corvix.config.rules._CONTEXT_OPERATORS[source][source]
class corvix.config.rules.ContextPredicate[source][source]

Predicate evaluated against enriched notification context.

path: str[source][source]
op: str[source][source]
value: object | None = None[source][source]
case_insensitive: bool = False[source][source]
class corvix.config.rules.MatchCriteria[source][source]

Filter fields for rules and dashboards.

repository_in: list[str] = [][source][source]
repository_glob: list[str] = [][source][source]
reason_in: list[str] = [][source][source]
subject_type_in: list[str] = [][source][source]
title_contains_any: list[str] = [][source][source]
title_regex: str | None = None[source][source]
unread: bool | None = None[source][source]
min_score: float | None = None[source][source]
max_age_hours: float | None = None[source][source]
context: list[ContextPredicate] = [][source][source]
class corvix.config.rules.RuleAction[source][source]

Action emitted when a rule matches.

action_type: str[source][source]
class corvix.config.rules.Rule[source][source]

Global or repository-scoped automation rule.

name: str[source][source]
match: MatchCriteria[source][source]
actions: list[RuleAction] = [][source][source]
exclude_from_dashboards: bool = False[source][source]
class corvix.config.rules.RuleSet[source][source]

Collection of global and per-repository rules.

global_rules: list[Rule] = [][source][source]
per_repository: dict[str, list[Rule]][source][source]
corvix.config.rules._parse_match(value: object, *, section: str = 'match') MatchCriteria[source][source]
corvix.config.rules._parse_context_predicates(value: object, *, section: str = 'match.context') list[ContextPredicate][source][source]
corvix.config.rules._parse_context_predicate(value: object, *, section: str = 'match.context[]') ContextPredicate[source][source]
corvix.config.rules._parse_rules(value: object) RuleSet[source][source]
corvix.config.rules._parse_rule(value: object) Rule[source][source]