Break down CI wall-clock time
Phase decomposition: job/attempt level splits wall-clock into the frozen phase enum with a per-step breakdown; run level adds a timing-inferred critical path, parallelism efficiency, and the blocking job; repo level aggregates p50/p95 per phase per runner label. Scoped to the caller's orgs by membership.
/api/timeAuthorization
bearerAuth Session token from sling login.
In: header
Query Parameters
GitHub organization login. Required — timings are always org-scoped.
1 <= lengthGranularity of the breakdown — it selects which id you pass.
Value in
- "job"
- "attempt"
- "run"
- "repo"
Target job, for level=job or level=attempt.
Target run, for level=run.
Pin a run to one attempt. Defaults to the latest.
1 <= value <= 4294967295Target repository, for level=repo, as owner/name.
Relative lookback, e.g. 30d. Mutually exclusive with month and from/to.
A whole calendar month, YYYY-MM.
Start of the range, inclusive. Required with to.
End of the range, exclusive. Required with from.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/api/time?org=acme&level=attempt"{ "level": "attempt", "id": "att_88886665361.1", "run_id": "2990884649", "job_id": "88886665361", "attempt": 1, "job_name": "typecheck", "wall_clock_ms": 89000, "phases": [ { "key": "queue_wait", "ms": 16000, "pct": 18 }, { "key": "provision", "ms": 9000, "pct": 10.1, "detail": { "instance_type": "c7a.2xlarge" } }, { "key": "steps", "ms": 61000, "pct": 68.5 }, { "key": "teardown", "ms": 3000, "pct": 3.4 } ], "steps": [ { "key": "Set up job", "ms": 2000, "conclusion": "success" }, { "key": "Run e2e tests", "ms": 59000, "conclusion": "failure" } ], "meta": { "source": "steps", "truncated": [ { "key": "image_pull", "reason": "bundled into provision — no v1 facts source" } ] }}Diagnose a failed job or run GET
Classifies why a CI job failed (sling why) — step_failure / timeout / cancelled / terminated / oom / infra / network_egress / hang / unknown — with evidence, suggested actions, and a downstream-agent prompt, read deterministically from the CI facts store. No LLM in the request path.
Rank the biggest CI consumers GET
Aggregate CI leaderboard: rank StarSling-billed jobs by runner-minutes, cost, jobs, p95 duration, p99 duration, or queue wait, grouped by workflow/job/label/repo/branch, over a time window, with each row's trend vs. the prior equal-length window. Scoped to the caller's orgs.