)]}'
{
  "commit": "c15ba1c32c343d16d45002e004a05efa4f534cbf",
  "tree": "9a937bf79b7fa51246d0be9fc90b897649d5d97f",
  "parents": [
    "5b6e4a602c0955d37a0fc3cfeaf831c840996d99"
  ],
  "author": {
    "name": "Nasser Grainawi",
    "email": "nasser.grainawi@oss.qualcomm.com",
    "time": "Fri Oct 30 14:13:49 2026 -0700"
  },
  "committer": {
    "name": "Nasser Grainawi",
    "email": "nasser.grainawi@oss.qualcomm.com",
    "time": "Mon Nov 02 13:08:46 2026 -0800"
  },
  "message": "Run E2E tests against disposable Gerrit containers\n\nExisting E2E tests require a maintained server and pre-existing changes,\nmaking local and CI runs dependent on external state.\n\nAdd a Testcontainers-backed Gerrit 3.13.10 fixture with REST-seeded\ndata, a loopback HTTP endpoint, and automatic container and volume\ncleanup. Keep E2E opt-in and retain an explicit external-server backend\nwith read-only operation when no test project is configured.\n\nAdd a Zuul E2E job that publishes Gerrit logs even on failure, without\nan unused JUnit report, and document requirements for both backends.\nVerify change abandonment, failure cleanup, configuration restoration,\nand proxy-independent container requests with regression coverage.\n\nChange-Id: I1e19a3188c82d23cb9dda3ba4d2c936eade620f5\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e286d4358844257c663e726434e60897a8b49ff0",
      "old_mode": 33188,
      "old_path": ".gitignore",
      "new_id": "8d4452267346325e3a84ee6ba765d0cd6bdf0e33",
      "new_mode": 33188,
      "new_path": ".gitignore"
    },
    {
      "type": "modify",
      "old_id": "0bcc84c93fa511ece8ea3af9465d8f2c2bba4b96",
      "old_mode": 33188,
      "old_path": ".zuul.d/base.yaml",
      "new_id": "683b90f41dd38e3a5e60322455d5599d26acb901",
      "new_mode": 33188,
      "new_path": ".zuul.d/base.yaml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1d347bec69d9310f8f3cec05d3ef9a4e08437ed8",
      "new_mode": 33188,
      "new_path": ".zuul.d/playbooks/run_e2e_tests.yaml"
    },
    {
      "type": "modify",
      "old_id": "54a5328311595687a4b9f277767d950badcae207",
      "old_mode": 33188,
      "old_path": "docs/testing.md",
      "new_id": "97b13e26c229384f6e7485403d7675ddb309a589",
      "new_mode": 33188,
      "new_path": "docs/testing.md"
    },
    {
      "type": "modify",
      "old_id": "61ed3d37708c2f9e0a3e86df5ae59b3c75e3334f",
      "old_mode": 33188,
      "old_path": "pyproject.toml",
      "new_id": "60629a7d71e83d6aa6ebd6473edad65a73ea6b94",
      "new_mode": 33188,
      "new_path": "pyproject.toml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ae03fa771660ae42074558e46bf4484f78c50e39",
      "new_mode": 33188,
      "new_path": "tests/e2e/conftest.py"
    },
    {
      "type": "delete",
      "old_id": "5143d42beb3f7044e867952386044a5d4060e076",
      "old_mode": 33188,
      "old_path": "tests/e2e/e2e_config.json",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "996a07900f1384fd9c56e259efa054d6608a22a4",
      "old_mode": 33188,
      "old_path": "tests/e2e/e2e_config.sample.json",
      "new_id": "8cf35b65e5e12af5005209196b59762f6b03e133",
      "new_mode": 33188,
      "new_path": "tests/e2e/e2e_config.sample.json"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e006d945f0f85bcf91845f2e231c849272c776f1",
      "new_mode": 33188,
      "new_path": "tests/e2e/support.py"
    },
    {
      "type": "modify",
      "old_id": "20bccb4fdeaedf37d5d66c61c6269e6b6507c0f5",
      "old_mode": 33188,
      "old_path": "tests/e2e/test_main.py",
      "new_id": "b6c25157d51a66bfa031e548c22b0a72634bffee",
      "new_mode": 33188,
      "new_path": "tests/e2e/test_main.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3e2b0b9457b2cd830ebb44ffccc2a611d6643417",
      "new_mode": 33188,
      "new_path": "tests/unit/test_e2e_support.py"
    },
    {
      "type": "modify",
      "old_id": "c1157cedd3ffa731bf7274b4340b0e5f38a25791",
      "old_mode": 33188,
      "old_path": "uv.lock",
      "new_id": "8a52532e0742781f9c19d90472d73a2111680fcc",
      "new_mode": 33188,
      "new_path": "uv.lock"
    }
  ]
}
