Skip to content

Support GitHub branch-ignore and path trigger filters #116

Description

@gjkim42

Context

GitHub Actions supports branches-ignore, paths, and paths-ignore filters for applicable push and pull_request events, with documented glob ordering, filter-combination rules, and changed-file diff behavior.

Open Actions rejects these keys as unsupported event filters, so otherwise valid workflows fail discovery. Push tag filters are tracked separately in #21.

Goal

Select workflow runs with the same branch and changed-path filtering behavior as GitHub Actions.

Acceptance criteria

  • Parse and validate branches-ignore, paths, and paths-ignore only on the events where GitHub supports them.
  • Enforce documented mutual-exclusion and combination rules for positive and ignore filters.
  • Implement GitHub-compatible ordered glob and negative-pattern behavior.
  • Combine branch or tag filters with path filters using GitHub-compatible AND semantics.
  • Compute changed files using the documented two-dot, three-dot, and new-branch comparisons for each event type.
  • Match documented behavior for deletions, renames, empty diffs, diff timeouts, commit-count thresholds, and changed-file limits.
  • Preserve the documented observable check state when a required workflow is skipped by a filter.
  • Add webhook and matching tests for push and pull request events, including negative patterns and the documented diff limits.
  • Document supported syntax and link to Support push tag filters #21 for tag filter completion.

References:

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions