Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Filters

All event-based triggers (github, linear, webhook) support a filter: block. Filters let multiple pipelines subscribe to the same event type with different criteria — only the pipelines whose filters pass are enqueued.

All conditions in a filter: block are AND-ed: every condition must pass for the pipeline to fire.

filter.repos

Allow-list of GitHub repository.full_name values. Events from repos not in the list are dropped.

filter:
  repos: [acme/frontend, acme/backend]

Only applies to github triggers.

filter.when

AND-equality checks against nested payload paths. Every entry must match.

filter:
  when:
    review.state: approved
    pull_request.user.login: my-bot   # PR must be authored by the bot

Paths use dot notation to traverse nested JSON. The check is strict equality (===).

filter.not

Reject the event if any entry matches. Useful for loop-breaker guards.

filter:
  not:
    review.user.login: my-bot         # ignore reviews submitted by the bot
    comment.user.login: my-bot        # ignore comments from the bot

filter.mentioned

Checks whether the daemon's configured GitHub login appears as an @mention in the event's text body (comment body, review body, etc.).

filter:
  mentioned: true    # fire only when bot is @-mentioned (actor mode)
  # or
  mentioned: false   # fire only when bot is NOT @-mentioned (observer mode)

Pairing an observer pipeline (mentioned: false) with an actor pipeline (mentioned: true) on the same event type is the standard pattern for tiered response — observe everything, act only when asked:

# pr-review-comment.yaml — observe all inline comments
trigger:
  github: [pull_request_review_comment.created]
  filter:
    not: { comment.user.login: my-bot }
    mentioned: false
agent: reviewer
skill: pr-comment-review
 
# pr-review-comment-mentioned.yaml — act when @-mentioned
trigger:
  github: [pull_request_review_comment.created]
  filter:
    mentioned: true
agent: editor
skill: pr-comment-act

filter.assignee

Checks payload.assignee.login. The special value bot resolves to the daemon's configured GitHub login.

filter:
  assignee: bot     # only fire when the event is assigned to the bot

Combining filters

All conditions in the block must pass simultaneously. This example fires only for approved reviews on bot-authored PRs, submitted by a human (not the bot itself):

trigger:
  github:
    - pull_request_review.submitted
  filter:
    when:
      review.state: approved
      pull_request.user.login: my-bot
    not:
      review.user.login: my-bot

See also

  • Event Matcher — planned richer routing (per-repo agents, typed payloads, filter.branches, filter.authors)