)]}'
{
  "commit": "ab847d94791e5ae99e6f8a46f8461b9cb385b3a9",
  "tree": "cd17524214bbb248dab11839037822d8f7a60fef",
  "parents": [
    "30b42ef7a16d1dee17c9a71f90854e1be20c161f"
  ],
  "author": {
    "name": "Keir Mierle",
    "email": "keir@google.com",
    "time": "Mon Nov 25 19:56:32 2019 -0800"
  },
  "committer": {
    "name": "Keir Mierle",
    "email": "keir@google.com",
    "time": "Wed Nov 27 21:33:13 2019 +0000"
  },
  "message": "pw_module: Start the Pigweed meta-module\n\nThis starts a basic Pigweed meta-module tool. The first tool is a simple\nchecker invoked with\n\n  pw module-check\n\nwhich for now does two super-simple checks. Example output:\n\n$ pw module-check pw_module\n20191125 07:53:57 PM INF Checking module: pw_module\n20191125 07:53:57 PM INF OK: Module pw_module looks good; no errors or warnings found\n\n$ pw module-check pw_foo\n20191125 07:54:00 PM INF Checking module: pw_foo\n20191125 07:54:00 PM ERR PWCK001: Python code present but no setup.py.\n20191125 07:54:00 PM ERR PWCK002: C++ code present but no tests at all (you monster).\n20191125 07:54:00 PM ERR FAIL: Found errors when checking module pw_foo\n\nChange-Id: I6eb3bfa941abc450a33affbec3e005477b9b2dc4\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "565497ef8870329fc33b5501f96c9f1c2f4083d1",
      "old_mode": 33188,
      "old_path": "pw_cli/py/pw_cli/__main__.py",
      "new_id": "ed3ce401bd2c8ccad94ce58f0775c3de55afc3b6",
      "new_mode": 33188,
      "new_path": "pw_cli/py/pw_cli/__main__.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "43ddbb7ac9a937c0045f9ca193f3de467ee982ef",
      "new_mode": 33188,
      "new_path": "pw_module/README.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "959c656d93d169a1d194aa95f3fe3ae68575769f",
      "new_mode": 33188,
      "new_path": "pw_module/py/check_test.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "30f758c3e2f4bb4580640c8f7c030851c4bdf164",
      "new_mode": 33188,
      "new_path": "pw_module/py/pw_module/__init__.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1c7c20ad0e9909e4f594a954b9bb19608a749fbb",
      "new_mode": 33188,
      "new_path": "pw_module/py/pw_module/check.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e0f394fc47e67877f60764f1885be6a63b9eca7e",
      "new_mode": 33188,
      "new_path": "pw_module/py/setup.py"
    }
  ]
}
