What you will do
- The trigger manifest lives in the repository, so trigger rules are reviewed like code.
- Path filters fail open: when the provider does not report changed files, the rule still matches so CI is not silently skipped.
branchesandskip_branchesare evaluated together — includes first, then exclusions.
Before you start
- Repository
- A connected repository from the previous tutorial
- Pipeline
- A pipeline file committed in the repository
- Permission
- Write access to the repository
- Scope
- A runtime scope the triggered run may use
Steps
- 01
Add the manifest
Commit
.nopsai.yamlat the repository root..nopsai.yamlyaml team: platform/payments triggers: - on: push branches: [main] include_paths: - "services/payments/**" pipelines: - .nopsai/pipelines/ci.yaml scope: platform/staging - 02
Push and watch
Push a change under the filtered path and confirm a run starts.
Verify- A run appears under Pipeline Runs with the trigger recorded as its entry point.
- 03
Diagnose a non-match
If no run starts, check the delivery on the webhook source or App installation, then compare the event name, branch, and changed paths against your rule.
Check trigger analyticsbash curl -s "localhost:8080/v1/monitoring/triggers/analytics" \ -H "Authorization: Bearer $NOPSAI_TOKEN"
How it works
For non-GitHub providers the manifest must also name the webhook_source that receives deliveries.
Setting management marks the manifest as NopsAI-managed so platform trigger overrides apply.
Implementation evidence
doc/triggering.mdLocal GitHub and generic Git webhook simulation.
pkg/gittrigger/matcher.goExact branch, tag, and path matching behavior.

