Skip to content

Trigger Control ​

Per-pillar filters that control when GitWire activates. Configure branch, author, and path filters in .gitwire.yml to limit which events each pillar responds to.

Overview ​

By default, every pillar processes all events. Trigger filters let you narrow this down:

  • Branch filters — only act on specific branches (e.g., heal CI only on main)
  • Author ignore — skip events from bots or specific users (e.g., ignore dependabot[bot])
  • Path filters — only act when specific files change (e.g., AI review only on src/**)

Configuration ​

Add a triggers section under any pillar in .gitwire.yml:

yaml
pillars:
  ci_healing:
    enabled: true
    triggers:
      branches: ["main", "develop"]          # Only heal CI on these branches
      ignore_authors: ["dependabot[bot]"]    # Skip these authors

  triage:
    enabled: true
    triggers:
      ignore_authors: ["*[bot]", "renovate*"] # Skip all bots (glob patterns)

  ai_review:
    enabled: true
    triggers:
      branches: []                            # Empty = all branches
      ignore_authors: ["dependabot[bot]"]
      paths: ["src/**", "lib/**"]             # Only review PRs touching these paths

Filter Types ​

branches ​

Array of glob patterns. If non-empty, the pillar only activates when the event's branch matches at least one pattern. Empty array = all branches.

yaml
triggers:
  branches: ["main", "release/*"]   # main, release/1.0, release/2.0, etc.

ignore_authors ​

Array of glob patterns. If the event's author matches any pattern, the pillar is skipped.

yaml
triggers:
  ignore_authors: ["*[bot]", "renovate*"]

paths ​

Array of glob patterns. If non-empty, the pillar only activates when at least one changed file matches. Only applicable to PR-based pillars (ai_review, triage).

yaml
triggers:
  paths: ["src/**", "lib/**", "packages/*/src/**"]

Decision Logging ​

When a trigger filter blocks a pillar, GitWire records a decision log entry:

json
{
  "source": "ci_healing",
  "decision": "skipped",
  "reason": "Trigger filter: branch/author not matched",
  "conditions": [
    { "check": "trigger_filter(ci_healing)", "result": false, "branch": "feature/foo" }
  ]
}

Defaults ​

All pillars ship with empty trigger filters (no restrictions):

yaml
triggers:
  branches: []
  ignore_authors: []
  paths: []

No changes needed to existing .gitwire.yml files — empty arrays mean "accept everything."

Released under the MIT License.