)]}'
{
  "commit": "f04d6debd7353ded20d0ea7cf259aaf397b16124",
  "tree": "933ca1bd3331f9b8b7d20af4478db122835d3cf9",
  "parents": [
    "2ac7fcbcf0a1acb7ed6f9671bb1f7499c7398aa3"
  ],
  "author": {
    "name": "Simon Stewart",
    "email": "simons@fb.com",
    "time": "Wed Nov 06 09:05:27 2013 -0800"
  },
  "committer": {
    "name": "Michael Bolin",
    "email": "mbolin@fb.com",
    "time": "Tue Nov 12 17:52:22 2013 -0800"
  },
  "message": "Add a class that can generate a subset of buck.py and populate constructor args reflectively.\n\nSummary:\nAs part of the work to add a plugin mechanism, we need a way of allowing new extensions to declare\nwhat arguments and dependencies they have without needing to modify buck.py. The\n BuildableArgInspector provides that.\n\nTest Plan: buck test --all\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "073b9144871fab79f9f277612d81f2297b40c0eb",
      "new_mode": 33188,
      "new_path": "src/com/facebook/buck/rules/ArgObjectPopulatomatic.java"
    },
    {
      "type": "modify",
      "old_id": "a92ba22f6b157b18409c4e816f10f9c8c20678d1",
      "old_mode": 33188,
      "old_path": "src/com/facebook/buck/rules/BUCK",
      "new_id": "2d2026def49407e6f4bc8de3b8c012dee5646f21",
      "new_mode": 33188,
      "new_path": "src/com/facebook/buck/rules/BUCK"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c9f7a4ede44fb39481573dfd99a6d3b048a30de1",
      "new_mode": 33188,
      "new_path": "src/com/facebook/buck/rules/BuckPyFunction.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f5ae611d1a6dd249fcc4a1bafd88fef7c9dfa8ea",
      "new_mode": 33188,
      "new_path": "src/com/facebook/buck/rules/Hint.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0c75f7359f606e365d6906748f13611d55a4852c",
      "new_mode": 33188,
      "new_path": "src/com/facebook/buck/rules/ParamInfo.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a207fd6d6fe8b7f0c5017511be6fc56b366068ed",
      "new_mode": 33188,
      "new_path": "test/com/facebook/buck/rules/ArgObjectPopulatomaticTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c094549f2acec3874ed7f1d7e69e8a72d463e638",
      "new_mode": 33188,
      "new_path": "test/com/facebook/buck/rules/BuckPyFunctionTest.java"
    }
  ]
}
