GitHub Issues Intake - #477
Conversation
Adds automation-based GitHub issue intake: trigger model, run source context, trigger-cycle persistence, webhook dispatch, issue comments, OpenAPI/client updates, and web UI support. Verification: - cargo +nightly-2026-04-14 fmt --all - bun test app/routes/automations-new.test.tsx app/routes/runs.test.tsx - bun run typecheck - cargo nextest run -p fabro-automation -p fabro-types -p fabro-store -p fabro-github -p fabro-server -p fabro-api: fails on pre-existing fabro-server server::tests::get_graph_returns_svg - bun run test: fails on app/routes/run-detail.test.ts when run in full suite; test passes standalone
Add developer-focused documentation for GitHub issue intake automations, including trigger setup, injected issue inputs, local workflow development, and troubleshooting. Link the new guide from the GitHub integration docs, surface automation/webhook API pages in navigation, and add a changelog entry for the feature.\n\nContext:\n- Advanced docs and changelog skill watermarks after processing this branch.
|
#474 now limited the use of templating vars. We should discuss on how to proceed. Should we populate env vars instead? |
|
@fkukuck I browsed through this PR, but I'm not exactly sure where you'd be using vars or env. In the We're really interested in learning about the use cases to make sure we have everything covered that should allow interpolation. Once this track of work is finished, for most things you'll be able to select from |
|
Well the solution was a little cumbersome, but worked. It was a node in workflow.fabro: and the script would make use of these env variables. But probably we need a better solution |
|
Closing in favor of #519 to keep the PR list tidy. |
PR Summary: GitHub Issue Intake
Adds
github_issueautomation triggers. Labeling a matching GitHub issue now creates and starts an automation run, passes issue metadata as inputs, records the run's issue source, and optionally comments back on the issue.Highlights
AutomationTrigger::GithubIssuewithtrigger_label, optionalissue_label, andcomment.issues.labeledstarts matching automations; PR-shaped issue events are ignored.issues.unlabeledcloses the trigger cycle so re-labeling can start another run.automation_runnerpath now handles API, scheduled, and GitHub issue-triggered runs.RunSourceContext::GithubIssueand issue links in API/web projections.github_issue_url,github_issue_title,github_issue_body,github_repository, andgithub_delivery_id.Surface Area
Tests
github_issuetriggers and GitHub issue run source context.