Summary
Add optional assignee and assignees filter fields to the existing GitHub trigger source types (github_issues and github_pull_requests). This brings GitHub triggers to parity with the new GitLab triggers and the existing Linear assignee filter.
Context
The issue description for #1178 explicitly notes:
"Note that assignee was added to the issues trigger and assignees to the merge requests, this is an optional field that I want to add, and I've actually been meaning to add to GitHub as well."
Currently, GitHub triggers fetch all matching issues/PRs by labels and state but have no assignee filtering. The gh CLI supports --assignee for filtering.
Acceptance Criteria
YAML Example
# GitHub Issues with assignee filter
source:
type: github_issues
owner: myorg
repo: myrepo
labels: [agent]
assignee: alice
state: open
# GitHub PRs with assignees filter
source:
type: github_pull_requests
owner: myorg
repo: myrepo
assignees: [bob, carol]
state: open
Key Files
crates/orchestrator/src/scheduler/types.rs - add fields to enum variants
crates/orchestrator/src/scheduler/github.rs - implement filtering
crates/orchestrator/src/scheduler/runner.rs - pass fields to constructors
crates/cli/src/commands/apply.rs - SourceTemplate updates
schemas/workflow.yml - schema updates
Stack Base
Stack on: feature/autonomous-pipeline
Parallel: no ordering constraint (independent of GitLab work, touches only GitHub code)
Summary
Add optional
assigneeandassigneesfilter fields to the existing GitHub trigger source types (github_issuesandgithub_pull_requests). This brings GitHub triggers to parity with the new GitLab triggers and the existing Linearassigneefilter.Context
The issue description for #1178 explicitly notes:
"Note that assignee was added to the issues trigger and assignees to the merge requests, this is an optional field that I want to add, and I've actually been meaning to add to GitHub as well."
Currently, GitHub triggers fetch all matching issues/PRs by labels and state but have no assignee filtering. The
ghCLI supports--assigneefor filtering.Acceptance Criteria
assignee: Option<String>toTriggerConfig::GithubIssuesincrates/orchestrator/src/scheduler/types.rsassignees: Option<Vec<String>>toTriggerConfig::GithubPullRequestsincrates/orchestrator/src/scheduler/types.rs#[serde(default)]for backward compatibilityGithubIssueSource::new()to accept optionalassigneeparameterGithubIssueSource::fetch_tasks()incrates/orchestrator/src/scheduler/github.rs:assigneeis set, add--assignee {value}togh issue listargsGithubPullRequestSource::new()to accept optionalassigneesparameterGithubPullRequestSource::fetch_tasks():assigneesis set, add--assignee {value}for each assignee (gh CLI supports repeated--assignee)create_source()incrates/orchestrator/src/scheduler/runner.rsto pass new fields throughSourceTemplate::GithubIssuesandSourceTemplate::GithubPullRequestsincrates/cli/src/commands/apply.rswith the new fields and conversionsource_github_issuesandsource_github_pull_requestsinschemas/workflow.ymlwith new optional propertiesgithub.rsto verify assignee field handlingghCLI args constructionYAML Example
Key Files
crates/orchestrator/src/scheduler/types.rs- add fields to enum variantscrates/orchestrator/src/scheduler/github.rs- implement filteringcrates/orchestrator/src/scheduler/runner.rs- pass fields to constructorscrates/cli/src/commands/apply.rs- SourceTemplate updatesschemas/workflow.yml- schema updatesStack Base
Stack on:
feature/autonomous-pipelineParallel: no ordering constraint (independent of GitLab work, touches only GitHub code)