{
 "repo": {
  "name": "bruin",
  "owner": "bruin-data",
  "stars": 1802,
  "license": "Apache-2.0",
  "full_name": "bruin-data/bruin",
  "fetched_at": "2026-11-08T11:00:14.922153+00:00",
  "primary_language": "Go"
 },
 "burns": [
  {
   "agent": "openai-codex",
   "number": 760,
   "reviewer_excerpt": "Closing this as we'll handle it as part of another ticket.",
   "reviewer_excerpt_url": "https://github.com/bruin-data/bruin/pull/760#issuecomment-3012667003"
  }
 ],
 "total": 45,
 "agents": [
  {
   "agent": "openai-codex",
   "merged": 27,
   "flights": 37,
   "burn_rate": 0.031,
   "merge_rate": 0.844,
   "last_flight_at": "2025-07-23T17:18:40+00:00",
   "median_hours_to_merge": 4
  },
  {
   "agent": "cursor",
   "merged": 2,
   "flights": 8,
   "burn_rate": 0,
   "merge_rate": 0.333,
   "last_flight_at": "2025-07-30T07:27:33+00:00",
   "median_hours_to_merge": 10.3
  }
 ],
 "riders": [],
 "flights": [
  {
   "agent": "cursor",
   "state": "closed",
   "title": "Add x-frame-options header to nginx config",
   "number": 971,
   "outcome": "abandoned",
   "index_ok": false,
   "additions": 353,
   "deletions": 4,
   "merged_at": null,
   "opened_at": "2025-07-30T07:27:33+00:00",
   "task_type": "fix",
   "files_changed": 3,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add secret key validation rule",
   "number": 947,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 71,
   "deletions": 0,
   "merged_at": "2025-07-24T20:22:02+00:00",
   "opened_at": "2025-07-23T17:18:40+00:00",
   "task_type": "feat",
   "files_changed": 3,
   "hours_to_merge": 27.06
  },
  {
   "agent": "openai-codex",
   "state": "open",
   "title": "Improve run output display",
   "number": 932,
   "outcome": "stale",
   "index_ok": false,
   "additions": 8,
   "deletions": 4,
   "merged_at": null,
   "opened_at": "2025-07-22T19:20:07+00:00",
   "task_type": "perf",
   "files_changed": 1,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "feat: add InfluxDB connection",
   "number": 928,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 537,
   "deletions": 24,
   "merged_at": "2025-07-24T07:00:10+00:00",
   "opened_at": "2025-07-22T13:02:57+00:00",
   "task_type": "feat",
   "files_changed": 22,
   "hours_to_merge": 41.95
  },
  {
   "agent": "openai-codex",
   "state": "closed",
   "title": "feat: add clickup source",
   "number": 926,
   "outcome": "abandoned",
   "index_ok": false,
   "additions": 144,
   "deletions": 2,
   "merged_at": null,
   "opened_at": "2025-07-21T19:17:15+00:00",
   "task_type": "feat",
   "files_changed": 14,
   "hours_to_merge": null
  },
  {
   "agent": "cursor",
   "state": "closed",
   "title": "Use CloneForAsset before rendering",
   "number": 912,
   "outcome": "abandoned",
   "index_ok": false,
   "additions": 32,
   "deletions": 84,
   "merged_at": null,
   "opened_at": "2025-07-14T20:31:04+00:00",
   "task_type": "fix",
   "files_changed": 2,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "open",
   "title": "Add Tags field to Pipeline struct",
   "number": 906,
   "outcome": "stale",
   "index_ok": false,
   "additions": 2,
   "deletions": 1,
   "merged_at": null,
   "opened_at": "2025-07-11T16:42:33+00:00",
   "task_type": "feat",
   "files_changed": 1,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "closed",
   "title": "feat/add-pulse-connection-as-source",
   "number": 897,
   "outcome": "abandoned",
   "index_ok": false,
   "additions": 168,
   "deletions": 33,
   "merged_at": null,
   "opened_at": "2025-07-10T15:25:13+00:00",
   "task_type": "feat",
   "files_changed": 12,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix get_tables for blank statements",
   "number": 884,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 17,
   "deletions": 0,
   "merged_at": "2025-07-11T16:40:08+00:00",
   "opened_at": "2025-07-08T09:02:30+00:00",
   "task_type": "fix",
   "files_changed": 2,
   "hours_to_merge": 79.63
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add 'create' subcommand for environments",
   "number": 877,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 118,
   "deletions": 4,
   "merged_at": "2025-07-07T17:41:22+00:00",
   "opened_at": "2025-07-07T15:16:40+00:00",
   "task_type": "feat",
   "files_changed": 3,
   "hours_to_merge": 2.41
  },
  {
   "agent": "openai-codex",
   "state": "open",
   "title": "Document Tier field",
   "number": 874,
   "outcome": "stale",
   "index_ok": false,
   "additions": 5,
   "deletions": 2,
   "merged_at": null,
   "opened_at": "2025-07-04T14:38:05+00:00",
   "task_type": "docs",
   "files_changed": 2,
   "hours_to_merge": null
  },
  {
   "agent": "cursor",
   "state": "open",
   "title": "Implement tags support in Pipeline struct",
   "number": 873,
   "outcome": "stale",
   "index_ok": false,
   "additions": 1,
   "deletions": 0,
   "merged_at": null,
   "opened_at": "2025-07-04T13:58:15+00:00",
   "task_type": "feat",
   "files_changed": 1,
   "hours_to_merge": null
  },
  {
   "agent": "cursor",
   "state": "closed",
   "title": "Update integration test expectations",
   "number": 870,
   "outcome": "abandoned",
   "index_ok": false,
   "additions": 27,
   "deletions": 1,
   "merged_at": null,
   "opened_at": "2025-07-04T07:37:43+00:00",
   "task_type": "test",
   "files_changed": 1,
   "hours_to_merge": null
  },
  {
   "agent": "cursor",
   "state": "open",
   "title": "Implement cross-pipeline URI validation rule",
   "number": 869,
   "outcome": "stale",
   "index_ok": false,
   "additions": 364,
   "deletions": 38,
   "merged_at": null,
   "opened_at": "2025-07-03T10:56:29+00:00",
   "task_type": "feat",
   "files_changed": 6,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "feat/add-linear-connection-as-source",
   "number": 865,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 174,
   "deletions": 0,
   "merged_at": "2025-07-02T13:38:36+00:00",
   "opened_at": "2025-07-02T12:07:24+00:00",
   "task_type": "feat",
   "files_changed": 12,
   "hours_to_merge": 1.52
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add Trustpilot connection",
   "number": 862,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 297,
   "deletions": 31,
   "merged_at": "2025-07-02T11:09:51+00:00",
   "opened_at": "2025-07-02T07:21:13+00:00",
   "task_type": "feat",
   "files_changed": 16,
   "hours_to_merge": 3.81
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add Pinterest connection",
   "number": 856,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 1953,
   "deletions": 99,
   "merged_at": "2025-07-01T09:17:37+00:00",
   "opened_at": "2025-06-30T09:52:28+00:00",
   "task_type": "feat",
   "files_changed": 27,
   "hours_to_merge": 23.42
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Ensure BRUIN_VARS always set",
   "number": 854,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 12,
   "deletions": 3,
   "merged_at": "2025-06-29T09:00:56+00:00",
   "opened_at": "2025-06-29T08:04:41+00:00",
   "task_type": "fix",
   "files_changed": 4,
   "hours_to_merge": 0.94
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Implement parallel DB summary for BigQuery",
   "number": 843,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 1843,
   "deletions": 232,
   "merged_at": "2025-06-27T11:01:11+00:00",
   "opened_at": "2025-06-26T12:44:21+00:00",
   "task_type": "feat",
   "files_changed": 46,
   "hours_to_merge": 22.28
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add asset tier field with validation",
   "number": 841,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 628,
   "deletions": 541,
   "merged_at": "2025-07-03T12:49:49+00:00",
   "opened_at": "2025-06-26T12:31:31+00:00",
   "task_type": "feat",
   "files_changed": 8,
   "hours_to_merge": 168.31
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix diff column formatting in data-diff command",
   "number": 831,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 4,
   "deletions": 0,
   "merged_at": "2025-06-25T16:58:21+00:00",
   "opened_at": "2025-06-24T20:03:56+00:00",
   "task_type": "fix",
   "files_changed": 1,
   "hours_to_merge": 20.91
  },
  {
   "agent": "cursor",
   "state": "merged",
   "title": "Fix ingestr version update in action",
   "number": 830,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 24,
   "deletions": 2,
   "merged_at": "2025-06-24T19:00:49+00:00",
   "opened_at": "2025-06-24T17:57:40+00:00",
   "task_type": "fix",
   "files_changed": 1,
   "hours_to_merge": 1.05
  },
  {
   "agent": "cursor",
   "state": "merged",
   "title": "Add concurrency field to Pipeline struct",
   "number": 825,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 51,
   "deletions": 39,
   "merged_at": "2025-06-24T06:43:50+00:00",
   "opened_at": "2025-06-23T11:12:28+00:00",
   "task_type": "feat",
   "files_changed": 13,
   "hours_to_merge": 19.52
  },
  {
   "agent": "openai-codex",
   "state": "open",
   "title": "Add asset start_date for full refresh",
   "number": 824,
   "outcome": "stale",
   "index_ok": false,
   "additions": 210,
   "deletions": 20,
   "merged_at": null,
   "opened_at": "2025-06-23T07:59:22+00:00",
   "task_type": "feat",
   "files_changed": 10,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "docs: list new features",
   "number": 821,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 3,
   "deletions": 0,
   "merged_at": "2025-06-21T22:22:17+00:00",
   "opened_at": "2025-06-21T22:09:08+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.22
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add docs for pipeline variables",
   "number": 819,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 2452,
   "deletions": 798,
   "merged_at": "2025-06-20T13:51:02+00:00",
   "opened_at": "2025-06-20T09:48:24+00:00",
   "task_type": "docs",
   "files_changed": 67,
   "hours_to_merge": 4.04
  },
  {
   "agent": "cursor",
   "state": "closed",
   "title": "Return 404 for asset-service requests",
   "number": 818,
   "outcome": "abandoned",
   "index_ok": false,
   "additions": 94,
   "deletions": 0,
   "merged_at": null,
   "opened_at": "2025-06-20T09:45:10+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "feat/quickbooks",
   "number": 815,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 450,
   "deletions": 10,
   "merged_at": "2025-06-19T16:18:58+00:00",
   "opened_at": "2025-06-19T13:56:34+00:00",
   "task_type": "feat",
   "files_changed": 18,
   "hours_to_merge": 2.37
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add date range log to pipeline start",
   "number": 813,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 4,
   "deletions": 3,
   "merged_at": "2025-06-19T14:30:40+00:00",
   "opened_at": "2025-06-19T13:09:07+00:00",
   "task_type": "feat",
   "files_changed": 1,
   "hours_to_merge": 1.36
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add Mixpanel ingestion asset",
   "number": 812,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 214,
   "deletions": 14,
   "merged_at": "2025-06-19T13:20:11+00:00",
   "opened_at": "2025-06-19T11:32:00+00:00",
   "task_type": "feat",
   "files_changed": 13,
   "hours_to_merge": 1.8
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Remove deprecated brew install docs",
   "number": 811,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 5,
   "deletions": 9,
   "merged_at": "2025-06-19T11:29:53+00:00",
   "opened_at": "2025-06-19T11:07:51+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.37
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Improve quality docs with examples",
   "number": 786,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 90,
   "deletions": 19,
   "merged_at": "2025-06-13T09:56:38+00:00",
   "opened_at": "2025-06-13T09:48:15+00:00",
   "task_type": "docs",
   "files_changed": 5,
   "hours_to_merge": 0.14
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Implement lazy Snowflake connection",
   "number": 778,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 31,
   "deletions": 6,
   "merged_at": "2025-06-11T18:22:49+00:00",
   "opened_at": "2025-06-11T17:51:07+00:00",
   "task_type": "feat",
   "files_changed": 1,
   "hours_to_merge": 0.53
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Support single string for depends field",
   "number": 776,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 46,
   "deletions": 10,
   "merged_at": "2025-06-13T08:22:04+00:00",
   "opened_at": "2025-06-11T17:19:46+00:00",
   "task_type": "feat",
   "files_changed": 2,
   "hours_to_merge": 39.04
  },
  {
   "agent": "openai-codex",
   "state": "closed",
   "title": "Support inline Snowflake private key",
   "number": 768,
   "outcome": "abandoned",
   "index_ok": false,
   "additions": 198,
   "deletions": 74,
   "merged_at": null,
   "opened_at": "2025-06-11T12:23:45+00:00",
   "task_type": "feat",
   "files_changed": 7,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "open",
   "title": "Add BigQuery require partition filter option",
   "number": 762,
   "outcome": "stale",
   "index_ok": false,
   "additions": 90,
   "deletions": 12,
   "merged_at": null,
   "opened_at": "2025-06-11T00:49:18+00:00",
   "task_type": "feat",
   "files_changed": 8,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "closed",
   "title": "codex: Add materialization type validator",
   "number": 761,
   "outcome": "abandoned",
   "index_ok": false,
   "additions": 187,
   "deletions": 0,
   "merged_at": null,
   "opened_at": "2025-06-11T00:06:29+00:00",
   "task_type": "feat",
   "files_changed": 4,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "closed",
   "title": "Add profiling defaults tests and docs",
   "number": 760,
   "outcome": "burn",
   "index_ok": true,
   "additions": 77,
   "deletions": 3,
   "merged_at": null,
   "opened_at": "2025-06-10T23:51:56+00:00",
   "task_type": "test",
   "files_changed": 6,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "codex: Implement merge materialization for DuckDB",
   "number": 759,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 58,
   "deletions": 3,
   "merged_at": "2025-06-11T18:54:16+00:00",
   "opened_at": "2025-06-10T23:30:26+00:00",
   "task_type": "feat",
   "files_changed": 2,
   "hours_to_merge": 19.4
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add count option for custom checks",
   "number": 743,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 275,
   "deletions": 18,
   "merged_at": "2025-06-10T12:56:29+00:00",
   "opened_at": "2025-06-06T14:34:17+00:00",
   "task_type": "feat",
   "files_changed": 12,
   "hours_to_merge": 94.37
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Sync run flag docs",
   "number": 742,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 17,
   "deletions": 6,
   "merged_at": "2025-06-07T07:47:02+00:00",
   "opened_at": "2025-06-06T14:19:49+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 17.45
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix run command end-date help text",
   "number": 741,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 1,
   "deletions": 1,
   "merged_at": "2025-06-07T07:46:35+00:00",
   "opened_at": "2025-06-06T13:55:34+00:00",
   "task_type": "fix",
   "files_changed": 1,
   "hours_to_merge": 17.85
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix verbose test output",
   "number": 736,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 1,
   "deletions": 1,
   "merged_at": "2025-06-05T12:33:24+00:00",
   "opened_at": "2025-06-05T08:57:20+00:00",
   "task_type": "fix",
   "files_changed": 1,
   "hours_to_merge": 3.6
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add ingestr auto-update workflow",
   "number": 735,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 95,
   "deletions": 30,
   "merged_at": "2025-06-06T14:30:02+00:00",
   "opened_at": "2025-06-05T08:57:06+00:00",
   "task_type": "feat",
   "files_changed": 1,
   "hours_to_merge": 29.55
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix file leak in ReadJSONToFile",
   "number": 733,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 53,
   "deletions": 1,
   "merged_at": "2025-06-05T12:33:41+00:00",
   "opened_at": "2025-06-05T08:35:45+00:00",
   "task_type": "fix",
   "files_changed": 3,
   "hours_to_merge": 3.97
  }
 ],
 "indexed": 25,
 "monthly": [
  {
   "burns": 1,
   "month": "2025-06",
   "merged": 23,
   "flights": 29
  },
  {
   "burns": 0,
   "month": "2025-07",
   "merged": 6,
   "flights": 16
  }
 ],
 "top_authors": [
  {
   "name": "Burak Karakan",
   "login": "karakanb",
   "flights": 27,
   "indexed": 16
  },
  {
   "name": "Sanju Shah",
   "login": "sanjushahgupta",
   "flights": 8,
   "indexed": 4
  },
  {
   "name": "Sabri Karagönen",
   "login": "sabrikaragonen",
   "flights": 8,
   "indexed": 3
  },
  {
   "name": "Saravjeet 'Aman' Singh",
   "login": "turtleDev",
   "flights": 2,
   "indexed": 2
  }
 ],
 "page": "https://agentriders.com/logs/bruin-data/bruin/"
}