)]}'
{
  "commit": "fe2c3256ddb51ad04d6af70e1cec59770a29596e",
  "tree": "078395668dd93e6c6bd388c3f282235944ded3cc",
  "parents": [
    "0d59fcf561f6d2c4705924bc17c151fb4b998841"
  ],
  "author": {
    "name": "Zhongpeng Lin",
    "email": "zplin@uber.com",
    "time": "Wed Jun 21 10:14:21 2023 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Jun 21 17:14:21 2023 +0000"
  },
  "message": "feat!: using Gazelle\u0027s lifecycle manager to manage external processes (#1284)\n\nGazelle v0.30.0 introduced a lifecycle manager. We can use that to start\nand shutdown parser and stdmodule processes. So we don\u0027t need to use\n`init` function or creating `context.WithTimeout`.\n\nBREAKING CHANGES:\nThis requires the users of this Gazelle extension to upgrade to Gazelle\nv0.30.0 or above.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "94f19e801f0933f904a4189fd21889082bc4446f",
      "old_mode": 33188,
      "old_path": "gazelle/go.mod",
      "new_id": "1d1cee75f5b3ae119edd032c63218f941ec97e2f",
      "new_mode": 33188,
      "new_path": "gazelle/go.mod"
    },
    {
      "type": "modify",
      "old_id": "ed8ceae5ec553e79d68b464e17ea93787132efb1",
      "old_mode": 33188,
      "old_path": "gazelle/go.sum",
      "new_id": "ba2c8bf688ccc4a1814c7edafc7a2254e61a33b1",
      "new_mode": 33188,
      "new_path": "gazelle/go.sum"
    },
    {
      "type": "modify",
      "old_id": "ddcad2785df514ab9c7c1a6a41de8b2f89bd90e9",
      "old_mode": 33188,
      "old_path": "gazelle/python/BUILD.bazel",
      "new_id": "fcfe81bd61cb4ef23cc2dc77c4a984a8a61e919a",
      "new_mode": 33188,
      "new_path": "gazelle/python/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "56eb97b043ff4db760151fd57f4c2ee11ee70104",
      "old_mode": 33188,
      "old_path": "gazelle/python/language.go",
      "new_id": "568ac9225c8ba6781f7913f5f13bffb6bd7e48a0",
      "new_mode": 33188,
      "new_path": "gazelle/python/language.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "592b322a3cb6df6efaae2aa573383ce109c4e7a5",
      "new_mode": 33188,
      "new_path": "gazelle/python/lifecycle.go"
    },
    {
      "type": "modify",
      "old_id": "33eb6f4b3365eed4b0e3ed678cbc998fc9cd2c21",
      "old_mode": 33188,
      "old_path": "gazelle/python/parser.go",
      "new_id": "7f10a754bfb9ca1641719b7adfd740485000e5b7",
      "new_mode": 33188,
      "new_path": "gazelle/python/parser.go"
    },
    {
      "type": "modify",
      "old_id": "94ef45666ee9ddff3176ffcad0012389138f11d4",
      "old_mode": 33188,
      "old_path": "gazelle/python/std_modules.go",
      "new_id": "c537184c74490f515f0d90ef92f584161273d0f3",
      "new_mode": 33188,
      "new_path": "gazelle/python/std_modules.go"
    }
  ]
}
