)]}'
{
  "commit": "2f94ca54755e5e5a8dca35d71a40dc7455804f0f",
  "tree": "1b5f5e3d18f6f065745056e0aeb0597298dc0673",
  "parents": [
    "24c545e31760977db95765dda7e840d88497be83"
  ],
  "author": {
    "name": "Paul Duffin",
    "email": "paulduffin@google.com",
    "time": "Thu Jan 27 16:51:51 2022 +0000"
  },
  "committer": {
    "name": "Paul Duffin",
    "email": "paulduffin@google.com",
    "time": "Thu Feb 10 17:29:58 2022 +0000"
  },
  "message": "Refactor build_release and test code\n\nMinor restructuring of the build_release pruning code to make it easier\nto add logic for handling fields of maps of structs. That includes:\n1. Moving some code that is specific to clearing a selected field\n   inside the associated if block.\n2. Replacing an if with a switch.\n3. Improving the error handling by separating the reporting of the\n   container that broke from information about which field could not be\n   set. That allows follow up code to provide information about the map\n   key instead.\n\nThe tests were restructed by:\n1. Switching from using AssertDeepEquals to compare the structs to\n   comparing the output of marshalling the structs to JSON. That was\n   for a couple of reasons. Firstly, because JSON will marshal (and so\n   allow comparison of) the contents of pointers to structs whereas\n   AssertDeepEquals will just compare the pointers themselves.\n   Secondly, because JSON can pretty print the output and make it\n   easier to read.\n2. Using a func to create a new instance of the input structure for\n   each test. That is to allow the test to modify the input structure,\n   e.g. by clearing a field in a struct that is pointed to by a map.\n   The test previously relied on the input structure being immutable\n   and passed by value but a follow up change will change that by\n   adding a map field that contains pointers to structs.\n\nBug: 204763318\nTest: m nothing\nMerged-In: I84dc99621497b7263e30466895b823eb02cb2b56\nChange-Id: I84dc99621497b7263e30466895b823eb02cb2b56\n(cherry picked from commit 545c59273de8e741ca8820656d972fbeb03f1ef9)\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a3f0899731714a010c8801f1459bf52b1504b59b",
      "old_mode": 33188,
      "old_path": "sdk/build_release.go",
      "new_id": "212582ac6d63144377213916b20dae02caff0a5b",
      "new_mode": 33188,
      "new_path": "sdk/build_release.go"
    },
    {
      "type": "modify",
      "old_id": "dff276d0c26cce48f5495ec668a4653fdafdb7ec",
      "old_mode": 33188,
      "old_path": "sdk/build_release_test.go",
      "new_id": "0ec10409fefdd105c74bf9bfa8d2d2f4786513fd",
      "new_mode": 33188,
      "new_path": "sdk/build_release_test.go"
    }
  ]
}
