Add a manifest
Use.bugspray/suites.json. This synthetic example uses illustrative UUIDs: replace them with your actual authorized product and workflow IDs before using it with a real app.
fixtures and environment are explicit requirements, not observed readiness. No credentials belong in a manifest. The complete contract lives in apps/shared/suite-registry.ts.
Import locally without a provider
The trusted-operator CLI can inspect an already available Git commit without fetching, checking it out or running tests. Commit the manifest in the target repository first. Run from the Bugspray checkout; set these values for your scratch repository:origin must identify example/synthetic-app on GitHub. That local match is a provenance sanity check, not proof of remote access. Uncommitted files are ignored. Use a dedicated CLI database, separate from the app’s findings database and other worktrees.
Retain the returned manifestDigest. Set MANIFEST_DIGEST to that exact SHA-256 value, then read:
Enable authenticated candidate discovery
Connect/select your GitHub repository in Settings. Configure suite discovery for the authorized active product and manifest path; deployment defaults useBUGSPRAY_SUITE_PRODUCT_ID and optionally BUGSPRAY_SUITE_MANIFEST_PATH until an administrator saves discovery settings.
Configure signed GitHub App deliveries to /api/integrations/github/webhook with the deployment’s secret. Relevant pull_request actions are opened, reopened, synchronize and ready_for_review, including drafts. The provider verifies the actual PR head and reads the exact candidate blob through scoped GitHub access. Ordinary branch pushes are not separate subscriptions.
Enabling discovery does not backfill old PRs. Redeliver a relevant event or wait for the next update. Import creates no test execution, replay or check run. Refresh in Test suites reads status/freshness; it does not force an import. Hosted delivery reachability must be verified independently of App connection. A configured broker can forward signed deliveries for its explicitly bound installation/tenant over a service binding; the tenant still verifies the original signature. This is bounded routing, not general multi-tenant fan-out.
See the registry operating contract for bounds, retries and exact binding errors.