Add requestedReviewer to GitHub webhook filters

Merged
GJ
16d ago
+336-27

What type of PR is this?

/kind api

What this PR does / why we need it:

Add requestedReviewer to v1alpha2 GitHub webhook filters so TaskSpawner and SessionSpawner can select review requests for a particular user before creating work. It matches requested_reviewer.login exactly and case-sensitively. On pull_request and pull_request_target events, set action: review_requested to match only new review requests; review_request_removed also carries the reviewer. Events without a requested reviewer, including team review requests, never match.

The criterion supports both accepting filters and excludeFilters rules that omit event. Includes generated CRDs, reference documentation, a usage example, and tests for matching, validation, and conversion.

Which issue(s) this PR is related to:

N/A

Special notes for your reviewer:

The field is added only to v1alpha2. Exclusion rules preserve it through a v1alpha1 round-trip; accepting filters follow the existing pullRequestAuthor behavior and do not preserve it through that round-trip.

Validation passed:

  • make verify
  • env -u CODEX_HOME -u CODEX_AUTH_JSON make test (unset inherited variables that interfere with unrelated entrypoint tests)
  • make test-integration TEST_FLAGS='./test/integration/... -ginkgo.focus=githubWebhook.excludeFilters'

Does this PR introduce a user-facing change?

GitHub webhook filters in v1alpha2 TaskSpawner and SessionSpawner now support requestedReviewer to match an individual requested reviewer's login exactly and case-sensitively. The field also supports exclusion rules without an event scope; team review requests and events without a requested reviewer do not match.

Summary by cubic

Adds requestedReviewer to v1alpha2 GitHub webhook filters so TaskSpawner and SessionSpawner can spawn work only when a review is requested from a specific user. The criterion matches requested_reviewer.login exactly and case-sensitively and works on pull_request and pull_request_target events with actions review_requested and review_request_removed; events without a requested reviewer, including team review requests, never match. It works in accepting filters and in excludeFilters rules that omit event.

Notes

  • Adds the field only to v1alpha2, with matching, validation, and conversion tests.
  • excludeFilters preserve the field through a v1alpha1 round-trip; accepting filters drop it, matching the existing pullRequestAuthor behavior.
  • Updates generated CRDs, reference docs, and the integration guide with a usage example.