[
  {
    "run_id": "j0001",
    "project": "core-api",
    "pipeline_id": "p101",
    "trigger": "merge_request",
    "stage": "build",
    "job_name_raw": "build-image",
    "job_key": "build_image",
    "status": "success",
    "started_at": "2026-05-04T09:12:00+09:00",
    "finished_at": "2026-05-04T09:18:20+09:00",
    "duration_sec": 380,
    "retry_index": 0,
    "runner_tag": "docker-large",
    "cache_hit": true,
    "failure_reason": null,
    "commit_sha": "a1b2c3d4e5f6"
  },
  {
    "run_id": "j0002",
    "project": "core-api",
    "pipeline_id": "p101",
    "trigger": "merge_request",
    "stage": "test",
    "job_name_raw": "unit_test",
    "job_key": "unit_test",
    "status": "failed",
    "started_at": "2026-05-04T09:18:40+09:00",
    "finished_at": "2026-05-04T09:41:10+09:00",
    "duration_sec": 1350,
    "retry_index": 0,
    "runner_tag": "docker-large",
    "cache_hit": false,
    "failure_reason": "테스트 3건 실패",
    "commit_sha": "a1b2c3d4e5f6"
  },
  {
    "run_id": "j0003",
    "project": "core-api",
    "pipeline_id": "p101",
    "trigger": "merge_request",
    "stage": "test",
    "job_name_raw": "Unit-Test",
    "job_key": "unit_test",
    "status": "success",
    "started_at": "2026-05-04T09:52:00+09:00",
    "finished_at": "2026-05-04T10:15:30+09:00",
    "duration_sec": 1410,
    "retry_index": 1,
    "runner_tag": "docker-large",
    "cache_hit": false,
    "failure_reason": null,
    "commit_sha": "a1b2c3d4e5f6"
  },
  {
    "run_id": "j0004",
    "project": "core-api",
    "pipeline_id": "p101",
    "trigger": "merge_request",
    "stage": "deploy",
    "job_name_raw": "deploy-stg",
    "job_key": "deploy_stg",
    "status": "success",
    "started_at": "2026-05-04T10:16:00+09:00",
    "finished_at": "2026-05-04T10:19:00+09:00",
    "duration_sec": 180,
    "retry_index": 0,
    "runner_tag": "shell-deploy",
    "cache_hit": null,
    "failure_reason": null,
    "commit_sha": "a1b2c3d4e5f6"
  },
  {
    "run_id": "j0005",
    "project": "core-api",
    "pipeline_id": "p102",
    "trigger": "push",
    "stage": "build",
    "job_name_raw": "build image",
    "job_key": "build_image",
    "status": "canceled",
    "started_at": "2026-05-06T14:02:00+09:00",
    "finished_at": null,
    "duration_sec": null,
    "retry_index": 0,
    "runner_tag": "docker-large",
    "cache_hit": false,
    "failure_reason": "사용자 취소",
    "commit_sha": "b2c3d4e5f6a1"
  },
  {
    "run_id": "j0006",
    "project": "web-front",
    "pipeline_id": "p201",
    "trigger": "merge_request",
    "stage": "build",
    "job_name_raw": "npm-build",
    "job_key": "npm_build",
    "status": "success",
    "started_at": "2026-05-07T11:00:00+09:00",
    "finished_at": "2026-05-07T11:22:40+09:00",
    "duration_sec": 1360,
    "retry_index": 0,
    "runner_tag": null,
    "cache_hit": false,
    "failure_reason": null,
    "commit_sha": "c3d4e5f6a1b2"
  },
  {
    "run_id": "j0007",
    "project": "web-front",
    "pipeline_id": "p201",
    "trigger": "merge_request",
    "stage": "test",
    "job_name_raw": "e2e",
    "job_key": "e2e",
    "status": "failed",
    "started_at": "2026-05-07T11:23:00+09:00",
    "finished_at": "2026-05-07T12:05:00+09:00",
    "duration_sec": 2520,
    "retry_index": 0,
    "runner_tag": null,
    "cache_hit": null,
    "failure_reason": "타임아웃",
    "commit_sha": "c3d4e5f6a1b2"
  },
  {
    "run_id": "j0008",
    "project": "web-front",
    "pipeline_id": "p201",
    "trigger": "merge_request",
    "stage": "test",
    "job_name_raw": "e2e",
    "job_key": "e2e",
    "status": "failed",
    "started_at": "2026-05-07T12:06:00+09:00",
    "finished_at": "2026-05-07T12:48:00+09:00",
    "duration_sec": 2520,
    "retry_index": 1,
    "runner_tag": null,
    "cache_hit": null,
    "failure_reason": "시간 초과로 중단",
    "commit_sha": "c3d4e5f6a1b2"
  },
  {
    "run_id": "j0009",
    "project": "web-front",
    "pipeline_id": "p201",
    "trigger": "merge_request",
    "stage": "test",
    "job_name_raw": "e2e",
    "job_key": "e2e",
    "status": "success",
    "started_at": "2026-05-07T12:49:00+09:00",
    "finished_at": "2026-05-07T13:28:00+09:00",
    "duration_sec": 2340,
    "retry_index": 2,
    "runner_tag": null,
    "cache_hit": null,
    "failure_reason": null,
    "commit_sha": "c3d4e5f6a1b2"
  },
  {
    "run_id": "j0010",
    "project": "web-front",
    "pipeline_id": "p202",
    "trigger": "schedule",
    "stage": "test",
    "job_name_raw": "nightly-regression",
    "job_key": null,
    "status": "success",
    "started_at": "2026-05-08T02:00:00+09:00",
    "finished_at": "2026-05-08T03:40:00+09:00",
    "duration_sec": 6000,
    "retry_index": 0,
    "runner_tag": "gpu-runner",
    "cache_hit": false,
    "failure_reason": null,
    "commit_sha": "d4e5f6a1b2c3"
  },
  {
    "run_id": "j0011",
    "project": "batch-etl",
    "pipeline_id": "p301",
    "trigger": "push",
    "stage": "lint",
    "job_name_raw": "lint",
    "job_key": "lint",
    "status": "skipped",
    "started_at": "2026-05-09T08:00:00+09:00",
    "finished_at": "2026-05-09T08:00:00+09:00",
    "duration_sec": 0,
    "retry_index": 0,
    "runner_tag": "docker-small",
    "cache_hit": null,
    "failure_reason": null,
    "commit_sha": "e5f6a1b2c3d4"
  },
  {
    "run_id": "j0012",
    "project": "batch-etl",
    "pipeline_id": "p301",
    "trigger": "push",
    "stage": "deploy",
    "job_name_raw": "deploy_prod",
    "job_key": "deploy_prod",
    "status": "failed",
    "started_at": "2026-05-09T08:31:00+09:00",
    "finished_at": "2026-05-09T08:36:00+09:00",
    "duration_sec": 300,
    "retry_index": 0,
    "runner_tag": "shell-deploy",
    "cache_hit": null,
    "failure_reason": "권한 없음",
    "commit_sha": "e5f6a1b2c3d4"
  },
  {
    "run_id": "j0013",
    "project": "batch-etl",
    "pipeline_id": "p302",
    "trigger": "manual",
    "stage": "deploy",
    "job_name_raw": "deploy_prod",
    "job_key": "deploy_prod",
    "status": "success",
    "started_at": "2026-05-09T10:10:00+09:00",
    "finished_at": "2026-05-09T10:14:00+09:00",
    "duration_sec": 240,
    "retry_index": 0,
    "runner_tag": "shell-deploy",
    "cache_hit": null,
    "failure_reason": null,
    "commit_sha": "e5f6a1b2c3d4"
  },
  {
    "run_id": "j0014",
    "project": "core-api",
    "pipeline_id": "p103",
    "trigger": "push",
    "stage": "deploy",
    "job_name_raw": "deploy-prod",
    "job_key": "deploy_prod",
    "status": "success",
    "started_at": "2026-05-12T16:40:00+09:00",
    "finished_at": "2026-05-12T16:47:00+09:00",
    "duration_sec": 420,
    "retry_index": 0,
    "runner_tag": "shell-deploy",
    "cache_hit": null,
    "failure_reason": null,
    "commit_sha": "f6a1b2c3d4e5"
  }
]