Test impact analysis is available in enabled Graphify workspaces. For the full Buildkite setup, including the pipeline script, see Buildkite test selection.
How test impact analysis works
- A workspace owner or admin creates a CI token under Integrations → BuildKite (Test Impact). CI tokens start with
gfy_ci_and only work on the test impact endpoint. - Your CI calls
POST https://api.graphify.com/v1/repos/{repositoryId}/test-impactwith the token as a bearer token. - Graphify checks that the repository belongs to the token’s workspace and that the workspace’s subscription is active.
- Graphify runs the selection against the repository’s latest published graph.
- The response is returned as-is: a Buildkite pipeline (
{"steps": [...]}) or JSON, which you can pipe straight intobuildkite-agent pipeline upload.
repositoryId is the repository’s Graphify ID, not its GitHub name.
Send changed files or a commit range
The request takes one of two diff sources. Sending both returns422 invalid_diff_source.
- Commit range
- Changed files
Send the PR’s merge base and head commit. Graphify reads the diff from GitHub itself, including deletions and renames.Commit-range mode needs a connected GitHub repository. For any other repository it returns
Request body
422 test_impact_range_unsupported.
Unknown fields are rejected.
Ignore non-code files
You can set ignore globs for files that never affect tests, such as docs. A repository’s setting overrides the workspace default. Graphify keeps up to 200 globs, each up to 256 characters.Limits
Each workspace can make 60 test impact requests per minute by default. The limit applies to the whole workspace, no matter how many tokens or repositories it uses. Over the limit returns429 rate_limited. See Rate limits.
A single selection can take up to about 45 seconds, so give the request a generous timeout. The Buildkite script uses 180 seconds.
Errors
Related
Buildkite test selection
The full pipeline setup.
Check impact
How Graphify traces what a change touches.
Hosted MCP
The same graph, for your coding agent.
Rate limits
Default limits for every endpoint.