)]}'
{
  "commit": "0dd5fffba3600cc96b011319cf566dd501152f41",
  "tree": "d63b950f84d7750d7a13c1ea0b77752696ff8a83",
  "parents": [
    "206b973afd0f90272c5889e0008bc530540f4563"
  ],
  "author": {
    "name": "Jon Skeet",
    "email": "jonskeet@google.com",
    "time": "Fri Jun 05 14:48:55 2020 +0100"
  },
  "committer": {
    "name": "Jon Skeet",
    "email": "skeet@pobox.com",
    "time": "Mon Jun 29 09:30:20 2020 +0100"
  },
  "message": "Fix JSON parsing and formatting of NullValue in C#\n\nThe NullValue enum is typically used as part of the Value well-known type, but can be used elsewhere. In previous code, a NullValue field (other than in Value) would result in a JSON value of the string \"NULL_VALUE\"; it should instead be the null literal.\nWhen parsing, we still accept \"NULL_VALUE\" as a valid value for NullValue - this new code being unable to parse old data, and comes for free anyway.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b4a88d86481b71c186072fa66425ce9031dcde97",
      "old_mode": 33188,
      "old_path": "csharp/protos/unittest_issues.proto",
      "new_id": "b602d77548f995b3e8d523710858522dc699e3c6",
      "new_mode": 33188,
      "new_path": "csharp/protos/unittest_issues.proto"
    },
    {
      "type": "modify",
      "old_id": "a21a7c042b8e9c2b133eb35ce4cf4408d60ea3b2",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf.Test.TestProtos/UnittestIssues.cs",
      "new_id": "e94c5fc2df058389e4c7d08bf23df2eaf697877f",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf.Test.TestProtos/UnittestIssues.cs"
    },
    {
      "type": "modify",
      "old_id": "5e9730b2af6e262bfbaed1b5dedf48c69f485a99",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf.Test/JsonFormatterTest.cs",
      "new_id": "9e011d8130f60dc70dba88a5a122134494fcefd5",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf.Test/JsonFormatterTest.cs"
    },
    {
      "type": "modify",
      "old_id": "f9f8cde050a3910c7e8ad23a1adffbe37b80097f",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf.Test/JsonParserTest.cs",
      "new_id": "1799a339a36770b4127c6c31b0b940cb1e955152",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf.Test/JsonParserTest.cs"
    },
    {
      "type": "modify",
      "old_id": "05312db88c13d9bff6a851da5a86b7f1cba3e87b",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf.Test/testprotos.pb",
      "new_id": "40d75931f493ef139242d92d2b9eea03070af66f",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf.Test/testprotos.pb"
    },
    {
      "type": "modify",
      "old_id": "699a81de511f7fabcedee31adcd9de921859c417",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf/JsonFormatter.cs",
      "new_id": "4bffd58c1f40659849ea321cbebe8ff7ec0731ee",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf/JsonFormatter.cs"
    },
    {
      "type": "modify",
      "old_id": "3f88ea38f177aa74ded3879097736f767891cd2b",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf/JsonParser.cs",
      "new_id": "cb5f5a8f21a765a2bccc8754faaf4d8c826122d3",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf/JsonParser.cs"
    }
  ]
}
