CI pipeline runs with failure logs and the commits that fixed them
Summary
Six years of CI history from one SaaS engineering team on a self-hosted CI server: 2.94M pipeline jobs as a table, full logs for the 312K jobs that failed, and the commit that turned each red pipeline green. Failures range from flaky tests and dependency breaks to container build cache misses and migrations that deadlock. Tokens, hostnames, internal URLs and author identities are scrubbed from logs and code.
Collected to order. We collect it from US companies for your order. Scope, volume and timing are confirmed in writing before you sign.
Pricing on request
Request scope and pricingAt a glance
- Planned scope. Volume, sources and timing are confirmed in writing before you sign.
- Records
- 2.9Mpipeline jobs
- Size
- 12.1 GB
- Tokens, estimated
- 2.9B
- Years
- 2020 to 2026
- Firms
- 1
- Owner profile
- US B2B SaaS company, 50 to 150 staff
- Industry
- Software
- Data type
- Code and engineering
- Headcount
- 50 to 150 staff
- Region
- United States
- Languages
- English
- Formats
- Parquet, JSONL, Source tree
- Updated
Sources
| System | Kind | Records |
|---|---|---|
| GitLab | Code | 96 repositories, 228K commits |
| GitLab CI | Databases | 2.94M jobs, 312K failure logs |
Good for
- training agents to read a failed CI log and name the root cause
- evaluating automated fixes against the commit that actually turned the pipeline green
- learning to tell flaky tests from real regressions
- predicting pipeline duration and failure risk from a diff
Fields
| Field | Type | Description |
|---|---|---|
| job_id | string | De-identified job id |
| pipeline_id | string | Pipeline the job ran in |
| repo | string | Repository name |
| stage | enum | build, test, lint, migrate or deploy |
| status | enum | success, failed or canceled |
| started_at | timestamp | Job start time |
| duration_s | int | Run time in seconds |
| failure_class | enum | flaky test, test regression, dependency, infrastructure, config or timeout |
| retry_count | int | Retries before the final status |
| log_tail | string | Last lines of the scrubbed job log, full log in JSONL |
| fix_commit | string | Commit that made the next pipeline pass |
Example record
{
"job_id": "J-2291847",
"pipeline_id": "P-418806",
"repo": "docs-api",
"stage": "test",
"status": "failed",
"started_at": "2024-07-23T19:02:11Z",
"duration_s": 614,
"failure_class": "test regression",
"retry_count": 1,
"log_tail": "FAILED spec/models/revision_spec.rb:88 Revision#supersede! marks prior revision\n expected: \"superseded\"\n got: \"current\"\n # ./app/models/revision.rb:41:in `supersede!'\n312 examples, 1 failure",
"fix_commit": "c71a0e93"
}Licenses available
Non-exclusive
Licensed to more than one buyer.
First look
One buyer gets 2 to 4 weeks to make an offer before anyone else sees the dataset.
What ships with it
- Datasheet: what it is, what it is good for, verified size, sources, years, format and limits.
- Provenance file: the owner shown by code, staff notice and consent status, exclusions, mapped to the EU AI Act Article 53 training-data summary and California AB 2013.
- Manifest with a hash for every file.
- QC report and de-identification report.
- Your own copy, with unique canary records.
How it is de-identified
Default exclusions removed, files flattened to text, identifiers found in three layers and replaced with consistent placeholders, and the result measured against a 99% bar for each identifier type in each source.