)]}'
{
  "commit": "1b6fe3406ae23854d63a875232edff5536bb2691",
  "tree": "1018d39a96d3a300591545f34dfb03370d881790",
  "parents": [
    "bbb72e6eedefa097cac64b160e4929f4c130aefe"
  ],
  "author": {
    "name": "Parker Lougheed",
    "email": "parlough@gmail.com",
    "time": "Wed Oct 02 14:31:34 2024 +0000"
  },
  "committer": {
    "name": "Commit Queue",
    "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Wed Oct 02 14:31:34 2024 +0000"
  },
  "message": "[linter] Add custom data structure and validation for messages.yaml\n\nThe MessagesData abstraction was nice, but for ease of access in future work, I found I need a typed data structure anyway. To keep it simple, I added validation as part of the decoding, so the checks/tests just rerun the decoding.\n\nChange-Id: I81833347937d063de957d57deb7ebe6290f32a46\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/387828\nReviewed-by: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\nCommit-Queue: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\nReviewed-by: Samuel Rawlins \u003csrawlins@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0153700d7069dcb89a7017f95d62dea61ae50bba",
      "old_mode": 33188,
      "old_path": "pkg/linter/messages.yaml",
      "new_id": "7a31807fceff1407a6acaf9628931dce5dffc51c",
      "new_mode": 33188,
      "new_path": "pkg/linter/messages.yaml"
    },
    {
      "type": "modify",
      "old_id": "34c86614ce76c4d968400d1b6db9170cae73ac90",
      "old_mode": 33188,
      "old_path": "pkg/linter/test/integration_test.dart",
      "new_id": "6548d4475482edc9b5098572b7121ab53be81ff9",
      "new_mode": 33188,
      "new_path": "pkg/linter/test/integration_test.dart"
    },
    {
      "type": "modify",
      "old_id": "e6bd5ef9aefac5627c3e26be6d2f76f87b35b53d",
      "old_mode": 33188,
      "old_path": "pkg/linter/tool/checks/check_messages_yaml.dart",
      "new_id": "94202d6ee306792f71ba67be62186b4a2f680101",
      "new_mode": 33188,
      "new_path": "pkg/linter/tool/checks/check_messages_yaml.dart"
    },
    {
      "type": "modify",
      "old_id": "f85e4ac7dbb4f51f4cb7f81cdc6e30bfa016df15",
      "old_mode": 33188,
      "old_path": "pkg/linter/tool/machine.dart",
      "new_id": "6715c09650da11b03195b156947d3ae5d0685c0c",
      "new_mode": 33188,
      "new_path": "pkg/linter/tool/machine.dart"
    },
    {
      "type": "modify",
      "old_id": "f1cb3f66b46c18b8d447bf12e7290b005ade4df0",
      "old_mode": 33188,
      "old_path": "pkg/linter/tool/machine/rules.json",
      "new_id": "0233c8aac58522a64e98f1128cb83057ac41fc75",
      "new_mode": 33188,
      "new_path": "pkg/linter/tool/machine/rules.json"
    },
    {
      "type": "delete",
      "old_id": "27eb56c56f1202e5c4e2c85ec17f72cdeb6c8856",
      "old_mode": 33188,
      "old_path": "pkg/linter/tool/messages_data.dart",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "977e834af6ae6421fec68a0eb17f3c8b1ec6818a",
      "new_mode": 33188,
      "new_path": "pkg/linter/tool/messages_info.dart"
    },
    {
      "type": "modify",
      "old_id": "fcc49c3401bdf690e1f95aa4327fc87ccd0ad8ab",
      "old_mode": 33188,
      "old_path": "pkg/linter/tool/rule.dart",
      "new_id": "cf4681d4e855c6c3ce6cf0675029ab92a610e83b",
      "new_mode": 33188,
      "new_path": "pkg/linter/tool/rule.dart"
    }
  ]
}
