)]}'
{
  "log": [
    {
      "commit": "adb10f1600f2a1be705a5e435dbfdb49dabdcd2f",
      "tree": "d50bebf3bb723f7e2ec987f37e03bf90815d654b",
      "parents": [
        "3d472e345530429bd8af6170a6ff2db1e0e6c642"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Aug 07 16:01:53 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Aug 07 16:36:33 2013 +0200"
      },
      "message": "Implement Parameter interpolation\n\nParameters can now reference each other, and resolution happens in\ntopological order. This is done in two steps: while merging already\nwalks the entire dictionary, a list of references and their occurrences\nis kept. After merging is complete, interpolate() is called on the\ninstance, which recursively resolves the references found during\nmerging. If a referenced value itself contains other references, those\nare resolved first (which is the topological ordering).\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "3d472e345530429bd8af6170a6ff2db1e0e6c642",
      "tree": "0d4ff2ca7f3b5bf901458a0b439936421030fdbc",
      "parents": [
        "ad1f89fd592063ff016def8a8905883cafd024bb"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Aug 07 15:58:15 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Aug 07 16:33:24 2013 +0200"
      },
      "message": "Provide utils.RefValue\n\nRefValue encapsulates string parameter values and can be used to isolate\nand resolve references to other parameter values.\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "ad1f89fd592063ff016def8a8905883cafd024bb",
      "tree": "367a71ead35a9fbaf828e4b32cea89840993a5b1",
      "parents": [
        "e09d37be3aa939f4bd9bf7d2497e926cda54bd12"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Aug 07 15:50:09 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Aug 07 15:50:15 2013 +0200"
      },
      "message": "Provide utils.DictPath\n\nDictPath is a class used to represent \"paths\" to values in nested\ndictionaries. This works around Python\u0027s limitation of not being able to\nassign to the variable pointed to by a reference. It\u0027s used to translate\nvariable strings like ${foo:bar} into locations in the parameters\ndictionary.\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "e09d37be3aa939f4bd9bf7d2497e926cda54bd12",
      "tree": "dfda675730937a43bcc162c937dda1511f7dd756",
      "parents": [
        "97c4cd980841b119bc971b1c8716687888203c72"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sun Jul 07 13:05:19 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sat Jul 20 20:53:47 2013 +0200"
      },
      "message": "Interpolation specifics defined in defaults\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "97c4cd980841b119bc971b1c8716687888203c72",
      "tree": "f8bc37c3642842811cf7a8c0ef1c0d52e6b5aa68",
      "parents": [
        "c4625120f9e9eaee4b6d94679484ed0ef06d6d8e"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jul 19 07:43:27 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jul 19 07:43:27 2013 +0200"
      },
      "message": "Ensure Salt inventory dir default is absolute path\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "c4625120f9e9eaee4b6d94679484ed0ef06d6d8e",
      "tree": "74bae9cdbbed84e5cf0f1ce323ed6fbd2510663a",
      "parents": [
        "b159e7a88644ebaded007bf3e28c9a04d5629f96"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jul 19 07:42:43 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jul 19 07:42:43 2013 +0200"
      },
      "message": "Remove leftover mergers import\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "b159e7a88644ebaded007bf3e28c9a04d5629f96",
      "tree": "21f014e6a0dbcc4a0fc55389ebef2bd21299dfac",
      "parents": [
        "5092a0cc91c085a85c7afc9dbe66e72cfccc4bdb"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jul 18 21:35:21 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jul 18 21:35:21 2013 +0200"
      },
      "message": "Remove crap nosetests for yaml_fs\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "5092a0cc91c085a85c7afc9dbe66e72cfccc4bdb",
      "tree": "3cb21ccea463169ca0d0b5da4d76eaac72aa60f2",
      "parents": [
        "445f9ffd6550350ba624d21d3381004f9c0d6bdd"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jul 18 21:34:24 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jul 18 21:34:24 2013 +0200"
      },
      "message": "TODO update\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "445f9ffd6550350ba624d21d3381004f9c0d6bdd",
      "tree": "8008b3cc86f0f27fed38d0b7942f1d3f78011204",
      "parents": [
        "cd27b64f030e046b371804c804c0c9096fd07911"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jul 18 21:18:03 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jul 18 21:18:05 2013 +0200"
      },
      "message": "Purge mergers hierarchy\n\nThe rewrite of all the datatypes made the mergers unnecessary, i.e. they\nare now integrated with the datatypes.\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "cd27b64f030e046b371804c804c0c9096fd07911",
      "tree": "34ac81335518765f69a82ffe81310dc0c01a5cc8",
      "parents": [
        "f8618130637ac88d01dd1f41bd6572dd45a70a43"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jul 18 21:17:40 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jul 18 21:17:40 2013 +0200"
      },
      "message": "datatypes.tests needs __init__.py to be a module\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "f8618130637ac88d01dd1f41bd6572dd45a70a43",
      "tree": "ce676f1ed1e4cb5f55ffef4ea0151c9cda0f561b",
      "parents": [
        "ec7d1a6a14e813c764a150b82ee573770d2e8725"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jul 18 21:13:58 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jul 18 21:14:20 2013 +0200"
      },
      "message": "Default inventory_base_uri to dirname of script for Salt adapter\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "ec7d1a6a14e813c764a150b82ee573770d2e8725",
      "tree": "f455ee3dd0ef4638b6bb5ad8da1fecd29d22ac67",
      "parents": [
        "1a53cb0a5e790aaba1467d90ebe25555647ef806"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Tue Jul 09 17:18:36 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jul 18 21:14:20 2013 +0200"
      },
      "message": "Reimplement Parameters\n\nParameters is not a dict, so let\u0027s not pretend to be one. Instead, be\na very specific type doing exactly what it should and exposing only as\nmuch functionality as needed.\n\nThis is a complete rewrite and pulls in the entire mergers logic.\n\nAlso switches from nose to unittest.\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "1a53cb0a5e790aaba1467d90ebe25555647ef806",
      "tree": "17b917662e5a4ea3946ce4a4e01783abe3d480e3",
      "parents": [
        "e81051f63eaaabed14dd11217b562fd830d83e53"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Tue Jul 09 00:17:04 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jul 18 21:14:20 2013 +0200"
      },
      "message": "Reimplement Applications as a subclass of Classes\n\nApplications are like Classes an ordered set, so we inherit from Classes\nand thus reuse the same, limited functionality.\n\nThe concept of negation requires to override extend() and append().\nSince we would like Applications to keep a memory of negations they\nembody, for instance for later merging (extending) into another list,\nthereby removing elements, the negations are kept in a separate list.\n\nAlso, switch from nose to unittest.\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "e81051f63eaaabed14dd11217b562fd830d83e53",
      "tree": "22f605e3c44fe106819126b15c90bad97ca30832",
      "parents": [
        "ff57ea1071997c7fe0f4d55e31ea603fd30122c6"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Mon Jul 08 23:13:23 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jul 18 21:14:20 2013 +0200"
      },
      "message": "Reimplement Classes as simplified (not-fully-functional) ordered set\n\nClasses is essentially an ordered set, but we only need very limited\nfunctionality, so keep it simple and provide only the very basics.\n\nPurposely, Classes no longer derives from list so as to not give a false\nimpression.\n\nAlso, switch from nose to unittest.\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "ff57ea1071997c7fe0f4d55e31ea603fd30122c6",
      "tree": "a9ee0d3df4597890ba5922d0a2add68123fad976",
      "parents": [
        "59cf02afdf79328d3ad2b34b6662c269e34e3a94"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Tue Jul 09 16:39:35 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jul 18 21:04:31 2013 +0200"
      },
      "message": "Improve Entity class\n\nAmong a bit of cleanup, this mainly adds type-safety and a better\nrepresentation of instances.\n\nAlso, switch from nose to unittest.\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "59cf02afdf79328d3ad2b34b6662c269e34e3a94",
      "tree": "6f74912163885924510165087bb1258bf0993ecf",
      "parents": [
        "df9f4afcf85fadfd1ed9337ee4a1f697f8e64af5"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Tue Jul 09 15:28:28 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Tue Jul 09 16:40:32 2013 +0200"
      },
      "message": "Switch to Python unittest\n\nNose has some inherent problems as it is file-based, so let\u0027s switch\nto the Python default anyway.\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "df9f4afcf85fadfd1ed9337ee4a1f697f8e64af5",
      "tree": "d45123554ce1be9bde198cf42407beb5b60a8262",
      "parents": [
        "29be058d452ef5743b0355ccc36f3e65c18b8fb5"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Tue Jul 09 07:38:09 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Tue Jul 09 07:39:21 2013 +0200"
      },
      "message": "Avoid Py2.5 syntax\n\n\u0027foo\u0027 if condition else \u0027bar\u0027 is post-Python-2.5 syntax and while\nconvenient, just not necessary.\n"
    },
    {
      "commit": "29be058d452ef5743b0355ccc36f3e65c18b8fb5",
      "tree": "76d6cc31efb3445e983264cefdc75321ee4ab1dc",
      "parents": [
        "ce821e0ea21e7e9051ca32463a79b8377c20e53a"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sat Jul 06 21:02:53 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Mon Jul 08 21:43:59 2013 +0200"
      },
      "message": "Properly handle negater, if not default\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "ce821e0ea21e7e9051ca32463a79b8377c20e53a",
      "tree": "60472020cddb0004de43e29e1e5d16b630c88aef",
      "parents": [
        "5428b828a8c41afe95a03c1c683e7cf0edcc172c"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sat Jul 06 20:58:04 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sun Jul 07 09:01:06 2013 +0200"
      },
      "message": "Add test target to Makefile\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "5428b828a8c41afe95a03c1c683e7cf0edcc172c",
      "tree": "833e996b0760def97f03ecf23f99acaa2c332124",
      "parents": [
        "7deb3d299876812cd3ca03ccd7bdb141b9c4fa57"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sat Jul 06 20:50:26 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sun Jul 07 09:01:06 2013 +0200"
      },
      "message": "Do not use constructors in default arguments\n\nSomething like __init__(self, classes\u003dClasses(), …) causes Python to\ncreate a single Classes instance that gets used as default argument\nsubsequently. If something changes the variable then referenced by\nclasses, subsequent calls to the default constructor will cause the\nchanged object to be referenced.\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "7deb3d299876812cd3ca03ccd7bdb141b9c4fa57",
      "tree": "013bf95a23672ee303409b3e95bce7dc0a992d43",
      "parents": [
        "a1750e3021db5bd708e300156b813c5544f4a100"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sat Jul 06 20:22:59 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sun Jul 07 09:00:47 2013 +0200"
      },
      "message": "Add test for merging into empty Entity\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "a1750e3021db5bd708e300156b813c5544f4a100",
      "tree": "eca32645876389cdc3a0b2983454e0a3353c01d9",
      "parents": [
        "97a66f51dbcefea70a433b8cd094a0e4aaa85013"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sat Jul 06 15:50:09 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sat Jul 06 20:52:37 2013 +0200"
      },
      "message": "Simplify yaml_fs merge loop\n\nBy merging into an empty Entity, we can simplify the loop.\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "97a66f51dbcefea70a433b8cd094a0e4aaa85013",
      "tree": "d50ed6870f9e0ae131f77b74559a199259a69c37",
      "parents": [
        "a5c998e0f19ca533ad9b23f6001909ebd9dbd398"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sat Jul 06 19:55:46 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sat Jul 06 19:55:46 2013 +0200"
      },
      "message": "Fix yaml_fs tests\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "a5c998e0f19ca533ad9b23f6001909ebd9dbd398",
      "tree": "4b28ec572883bc99987a53b7d3835fe43256be95",
      "parents": [
        "b17a7b733c78442fc37a1f77185213ab002e362e"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jul 05 08:50:10 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jul 05 08:50:10 2013 +0200"
      },
      "message": "Fix tests, add note about lint/coverage to hacking doc\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "b17a7b733c78442fc37a1f77185213ab002e362e",
      "tree": "e02ea932b2bf08ae3b01e89b6f96709ba2e758e5",
      "parents": [
        "bea29d1b440190a347084105368026cfaf8c382b"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jul 05 08:45:35 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jul 05 08:45:35 2013 +0200"
      },
      "message": "Add coverage.py invocation to Makefile\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "bea29d1b440190a347084105368026cfaf8c382b",
      "tree": "6ebebeddc2404cca2a8defb417f262d03ed40b03",
      "parents": [
        "035cdd74e6a85dc57cad7c81628e4b9dca60b6a1"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jul 05 08:35:19 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jul 05 08:35:23 2013 +0200"
      },
      "message": "Add pylintrc and Makefile for easier linting\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "035cdd74e6a85dc57cad7c81628e4b9dca60b6a1",
      "tree": "22a598ed76ac940ccdd93ef3bf349abc435f57e9",
      "parents": [
        "30943277e3d6c2e50a2bb43be751b69892e8789c"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jul 05 07:25:18 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jul 05 07:25:18 2013 +0200"
      },
      "message": "Add TODO for CLI and adapter tests\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "30943277e3d6c2e50a2bb43be751b69892e8789c",
      "tree": "a705a59a817298c99e56396ca5701bf234dac1aa",
      "parents": [
        "ac7fc53a29af9067febe59a9837d5566c8bb9b64"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jul 04 08:32:00 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jul 04 22:26:48 2013 +0200"
      },
      "message": "Massive refactoring\n\nThis commit does some massive refactoring of the Salt source:\n\n  - reclass and all adapters have been changed to support the distribute\n    (setuptools) entry-points interface, while they are also runnable\n    directly (using `/usr/bin/env python`);\n\n  - reclass and all adapters now use exactly the same approach to\n    configuration (sensible defaults + config file + command-line\n    options), but inventory/nodeinfo is properly parametrised (e.g.\n    top/pillar for Salt);\n\n  - the documentation has been updated accordingly;\n\n  - defaults and constants were factored out into common modules.\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "ac7fc53a29af9067febe59a9837d5566c8bb9b64",
      "tree": "c3c1633bcd4982775e97beeeacbde2feaa410acd",
      "parents": [
        "59765e6c306dafd00e0e2089c548867ce823efe3"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jul 04 19:23:50 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jul 04 22:21:09 2013 +0200"
      },
      "message": "Update docs to reflect ext_pillar taking a list\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "59765e6c306dafd00e0e2089c548867ce823efe3",
      "tree": "fd18cd1a6fdebee0313c6e66383b66e30fe01de9",
      "parents": [
        "0f473f732e4353ba00eec9c8c559fcc3551ab31b"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jul 04 16:17:20 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jul 04 22:21:09 2013 +0200"
      },
      "message": "Add deprecation notice to Ansible adapter module\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "0f473f732e4353ba00eec9c8c559fcc3551ab31b",
      "tree": "eea31923df5cf27b39ab9a1fc8deda7f7271f726",
      "parents": [
        "ec0e8d75ff3e00d025100cc33420b41d9b216094"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jul 04 16:14:30 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jul 04 22:21:09 2013 +0200"
      },
      "message": "Add an exception for permission errors\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "ec0e8d75ff3e00d025100cc33420b41d9b216094",
      "tree": "4c9a95a11db5079ddf9656e993c6150f1d866bbd",
      "parents": [
        "a6f145b570c65598a00eac078b0f857f0b6d1d8d"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jul 04 16:14:12 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jul 04 22:21:09 2013 +0200"
      },
      "message": "Make exiting with message a function of the exception\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "a6f145b570c65598a00eac078b0f857f0b6d1d8d",
      "tree": "acd6ba2e61c70380d0bc9fbe31ac4044858f7a3a",
      "parents": [
        "c43c60d4763687bd5feb057f9093a97227c5aa13"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jul 04 16:12:21 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jul 04 22:21:09 2013 +0200"
      },
      "message": "Add verbosity/debugging output to TODO\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "c43c60d4763687bd5feb057f9093a97227c5aa13",
      "tree": "3b15a668eea702432be8e21a57c5c86b37b5b8ec",
      "parents": [
        "ff1bae8bc03d15531aea0b5f94ba75b312c0d6d7"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jul 04 16:08:23 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jul 04 22:21:09 2013 +0200"
      },
      "message": "Capitalize error messages from yaml_fs storage backend\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "ff1bae8bc03d15531aea0b5f94ba75b312c0d6d7",
      "tree": "cea086272569366923cc98eeb6fbd0a62f4cddc6",
      "parents": [
        "51406fb63b286b4be9fadb63afbdbe40197fa78f"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jul 04 07:52:30 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jul 04 07:52:30 2013 +0200"
      },
      "message": "Amended descriptions\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "51406fb63b286b4be9fadb63afbdbe40197fa78f",
      "tree": "49583abe32edb5a69016d093c8dd35d7ab823fc3",
      "parents": [
        "da52287043f8828d4359878fdd5ff40d2755868c"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jul 04 07:48:44 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jul 04 07:48:44 2013 +0200"
      },
      "message": "Provide additional meta information\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "da52287043f8828d4359878fdd5ff40d2755868c",
      "tree": "709a519a85bf6713f2ee134a1af561e16775bfc4",
      "parents": [
        "e85333b984fbe343da70d027dafda5535533bb13"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jul 03 20:31:55 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jul 03 20:31:55 2013 +0200"
      },
      "message": "Add note about running against example inventory\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "e85333b984fbe343da70d027dafda5535533bb13",
      "tree": "1a6c1c5fa690c084323c8912f27c6b14e73203fd",
      "parents": [
        "46c0652de840a36e373632f6c92dae30052ff5ef"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jul 03 20:24:25 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jul 03 20:24:25 2013 +0200"
      },
      "message": "Git-ignore egg-info files\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "46c0652de840a36e373632f6c92dae30052ff5ef",
      "tree": "3bea23048c3396b44bfe5f254481369d6d2def49",
      "parents": [
        "012103e1eddc7a7811232985ecbeae0c726c9d76"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jul 03 20:03:22 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jul 03 20:03:22 2013 +0200"
      },
      "message": "Move hacking-relevant docs to separate file\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "012103e1eddc7a7811232985ecbeae0c726c9d76",
      "tree": "1f5dfadb77cb959ac9b427f1d63c02676c2c7259",
      "parents": [
        "0eda02e0ce677a964cd18123ba9f11df40241032"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jul 03 20:02:02 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jul 03 20:02:02 2013 +0200"
      },
      "message": "Docs update for setuptools\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "0eda02e0ce677a964cd18123ba9f11df40241032",
      "tree": "b3821e8cd3e73198eb0f481a47dce78a677c82e0",
      "parents": [
        "a56b2ec4486ccab2dd11bdd23c1055be8a11e720"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jul 03 19:05:34 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jul 03 19:05:34 2013 +0200"
      },
      "message": "Header comment update\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "a56b2ec4486ccab2dd11bdd23c1055be8a11e720",
      "tree": "7ee9fd821aaba0aa72cb3e1e624e1e9b482886e0",
      "parents": [
        "0bcf5a9d7125340605e18e50ab6a3cfb8369504a"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jul 03 19:04:54 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jul 03 19:05:15 2013 +0200"
      },
      "message": "Factor out version information to central location\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "0bcf5a9d7125340605e18e50ab6a3cfb8369504a",
      "tree": "9ebbf39892bfe5cea846ef32b3f757de188b7f91",
      "parents": [
        "b029e75c8953b57254f6387bda71510d30a7035e"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jul 03 17:09:28 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jul 03 17:09:28 2013 +0200"
      },
      "message": "Remove unnecessary Makefile\n"
    },
    {
      "commit": "b029e75c8953b57254f6387bda71510d30a7035e",
      "tree": "dc20e560f621bee09ca798e333f4c1dab0ecf024",
      "parents": [
        "c70e4ee0ac7511dc93c47d0589732212262c2fe7"
      ],
      "author": {
        "name": "Ollie Walsh",
        "email": "ollie.walsh@geemail.kom",
        "time": "Sat Jun 29 14:14:23 2013 +0100"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jul 03 17:09:06 2013 +0200"
      },
      "message": "Basic setuptools support\n"
    },
    {
      "commit": "c70e4ee0ac7511dc93c47d0589732212262c2fe7",
      "tree": "bf667d47d23771c58f3f711071cfbe37c68f7338",
      "parents": [
        "243eb3d39768b86906b37bf8862be1e4dfd96ad9"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jul 03 15:37:01 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jul 03 15:37:19 2013 +0200"
      },
      "message": "Add variable interpolation TODO\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "243eb3d39768b86906b37bf8862be1e4dfd96ad9",
      "tree": "e0f9a7aa9ed5b54ac3b48877c9797d3396efdd2f",
      "parents": [
        "367532c77377dcbe5ada42d54757cd2e2acf2135"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jul 03 15:28:34 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jul 03 15:37:19 2013 +0200"
      },
      "message": "README update about contributing and pull requests\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "367532c77377dcbe5ada42d54757cd2e2acf2135",
      "tree": "59f159f80e75b548a5032350bfd062abc2e5be4f",
      "parents": [
        "e38475f484817c9d835e26a703a30cdf9d0a784b"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jun 26 21:08:18 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jul 03 15:37:19 2013 +0200"
      },
      "message": "Add README for Salt integration/adapter\n"
    },
    {
      "commit": "e38475f484817c9d835e26a703a30cdf9d0a784b",
      "tree": "a689ff671e009ef1c691055bff4a41fb0bb40fa6",
      "parents": [
        "42c475dfb3ab88794c89ad653c3978c6bddf9d71"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Mon Jul 01 15:08:47 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jul 03 15:37:19 2013 +0200"
      },
      "message": "Move Salt-internals to Salt\u0027s reclass adapters\n\nThe Salt reclass_adapter plugins now hide all the internals and provide\nreclass only with the information it needs, without having to make\nassumptions about Salt internals.\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "42c475dfb3ab88794c89ad653c3978c6bddf9d71",
      "tree": "a57e9f3ae98ce50afd6ee3e3097a72f7e71aec4c",
      "parents": [
        "df1014f8b90c84bcaca4d269b0d01c6bec6f2ec8"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jun 26 18:39:06 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jul 03 15:22:47 2013 +0200"
      },
      "message": "Initial version of a Salt adapter\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "df1014f8b90c84bcaca4d269b0d01c6bec6f2ec8",
      "tree": "f7e710e5ff5877331d5ad97d2ad2c745a109c560",
      "parents": [
        "c2c355b09909ab57610b2832e2a9dd5cd8c83d20"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jul 03 14:37:53 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jul 03 14:37:53 2013 +0200"
      },
      "message": "Move applications_postfix to Ansible adapter\n\nIn its current incarnation, the applications_postfix configuration\nparameter, along with the concept of \"groups\" is only relevant to\nAnsible. Therefore, in the interest of simplicity, move it out of the\nmain code and into the Ansible adapter.\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "c2c355b09909ab57610b2832e2a9dd5cd8c83d20",
      "tree": "93abb948dcb666fc1cd0707e4afa9e33d69f7807",
      "parents": [
        "cb93bc729bd5929c596c290e217aca545c6837bc"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Mon Jul 01 20:04:15 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Mon Jul 01 20:05:03 2013 +0200"
      },
      "message": "Add note about deprecation of ansible adapter\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "cb93bc729bd5929c596c290e217aca545c6837bc",
      "tree": "7ebf969dff0d4d89d1a81e630c302a4fd1049c9c",
      "parents": [
        "d3bc8bb6f07c8c9be97bf6d714a068c0c827cd1b"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Mon Jul 01 19:31:47 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Mon Jul 01 19:32:19 2013 +0200"
      },
      "message": "Add TODO about adapters and entrypoints\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "d3bc8bb6f07c8c9be97bf6d714a068c0c827cd1b",
      "tree": "02ae43616474e98f3ad11c1b0884c16851bab196",
      "parents": [
        "3664cf2f1aceaef680f986ddacd4f7979e0fe58f"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Mon Jul 01 15:17:56 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Mon Jul 01 15:17:56 2013 +0200"
      },
      "message": "Test update for 1de70cc\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "3664cf2f1aceaef680f986ddacd4f7979e0fe58f",
      "tree": "6ecc520c36bed7acc4e578396b8aa9cbf3a5e88b",
      "parents": [
        "db915945dec61075d0584015f64ed84b2e0b184b"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jun 28 13:24:40 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jun 28 13:24:59 2013 +0200"
      },
      "message": "Default inventory_base to .\n\nIf inventory_base_uri is not passed, default it to the current\ndirectory.\n\nIn either case, default nodes_uri and classes_uri to \u0027nodes\u0027 and\n\u0027classes\u0027 in all cases.\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "db915945dec61075d0584015f64ed84b2e0b184b",
      "tree": "42461f03ca4839d53c573bb589025e42a1e86e88",
      "parents": [
        "90015d047925d7f0f67dd4147f1d2dc6fe72eef1"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jun 28 12:34:58 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jun 28 12:38:27 2013 +0200"
      },
      "message": "Add applications to groups only if postfix is defined\n\nIf applications_postfix is not set, then the groups list should only be\nthe classes list. Else there might be naming conflicts.\n\nIn any case, applications_postfix is probably not going to stay, so this\nis a hack.\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "90015d047925d7f0f67dd4147f1d2dc6fe72eef1",
      "tree": "9b9c61b83d47fc5413359197c5bd9e635782f9b2",
      "parents": [
        "4cf004bacb317dceaf8ffb39becb682f4f59f14c"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jun 26 18:44:02 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jun 26 20:47:30 2013 +0200"
      },
      "message": "Add rudimentary error handling to yaml_fs\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "4cf004bacb317dceaf8ffb39becb682f4f59f14c",
      "tree": "4af62325cefa60958636b32bc7ede74cdcfbc452",
      "parents": [
        "4b855e62bd4f92c7aa9b2614cb6eb57e112d7db6"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jun 26 18:38:23 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jun 26 20:47:30 2013 +0200"
      },
      "message": "Make reclass key on return data look internal\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "4b855e62bd4f92c7aa9b2614cb6eb57e112d7db6",
      "tree": "6ab9475647ba34e8450af05a36702a244f6dccda",
      "parents": [
        "833936fe5838f6d52f0aae7c194f54cf0c7fb1b3"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jun 26 20:46:18 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jun 26 20:47:30 2013 +0200"
      },
      "message": "Allow node to be None to trigger inventory\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "833936fe5838f6d52f0aae7c194f54cf0c7fb1b3",
      "tree": "182a8addd96bb9de43df6b525f8f550da857db6d",
      "parents": [
        "1de70ccc9ec6161bfe167546f01e72c7570d75a1"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jun 26 17:58:30 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jun 26 20:47:29 2013 +0200"
      },
      "message": "Default to pretty-printed YAML output\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "1de70ccc9ec6161bfe167546f01e72c7570d75a1",
      "tree": "1facbb6ce15f62d669a1a51b4637d97b3b703cc2",
      "parents": [
        "80c79e24bbcdea5c493af5bbb9b9004235a99565"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jun 26 16:11:58 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jun 26 20:47:29 2013 +0200"
      },
      "message": "Put all information into inventory output\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "80c79e24bbcdea5c493af5bbb9b9004235a99565",
      "tree": "a3129920b93ed3673e4375c94fcd1d402631f83a",
      "parents": [
        "b37f9dfe83ee53b32c8756cbb66b7923d4bd9b9a"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jun 26 18:35:11 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jun 26 20:47:29 2013 +0200"
      },
      "message": "Add timestamp to nodeinfo in storage\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "b37f9dfe83ee53b32c8756cbb66b7923d4bd9b9a",
      "tree": "d9045ce4ccf136ab4f7987a5c6b9c60c0c6659b3",
      "parents": [
        "97a554d4ed3d9971b9218152f0f2954f0e788833"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jun 26 15:41:31 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jun 26 20:47:29 2013 +0200"
      },
      "message": "Refactor the Ansible adapter\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "97a554d4ed3d9971b9218152f0f2954f0e788833",
      "tree": "6b73c4aa6ccd0d51bf1521af203c7ce9f16a6968",
      "parents": [
        "9d3c6a451807792c1c7dfce143df9c4e7bc5d1a0"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jun 26 13:27:49 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jun 26 20:47:29 2013 +0200"
      },
      "message": "Add an InvocationError exception\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "9d3c6a451807792c1c7dfce143df9c4e7bc5d1a0",
      "tree": "943fa53ec5eca2da0a4804e0397cce5739fac8f3",
      "parents": [
        "7c64f9cbc5961ddf06ec5eb06e493b6705ce23ac"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jun 26 13:27:36 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jun 26 20:47:29 2013 +0200"
      },
      "message": "Refactor exceptions, reuse message\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "7c64f9cbc5961ddf06ec5eb06e493b6705ce23ac",
      "tree": "2bab6c994b2440f77a05dd58cb45d010d552b1b9",
      "parents": [
        "aeb1c8d96ae2723a5b13fdab90b337c50d945b52"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Tue Jun 25 13:26:23 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jun 26 20:47:29 2013 +0200"
      },
      "message": "Restructure reclass into a Python module\n\nBy moving all code into ./reclass/, reclass can now be used as a Python\nmodule. The Ansible adapter and the CLI have been updated accordingly.\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "aeb1c8d96ae2723a5b13fdab90b337c50d945b52",
      "tree": "f572561ac39be146738dcd55ae1e88813bc591d8",
      "parents": [
        "3924e89044fe445a663ffab4e1712634101ae9c1"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jun 26 18:05:22 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jun 26 20:47:29 2013 +0200"
      },
      "message": "Default the inventory_base_uri to the current directory\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "3924e89044fe445a663ffab4e1712634101ae9c1",
      "tree": "3f008082be00d5cec73e08db6631e749fb3e57c3",
      "parents": [
        "d2fd6863eb02569fa1906d26cffaf42a86ee76aa"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Tue Jun 25 11:57:03 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jun 26 20:47:29 2013 +0200"
      },
      "message": "Introduce --inventory-base-uri option\n\nThe --inventory-base-uri will get prepended to the --nodes-uri and\n--classes-uri options, unless they are absolute paths.\n\n--nodes-uri and --classes-uri now default to \u0027nodes\u0027 and \u0027classes\u0027\nrespectively.\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "d2fd6863eb02569fa1906d26cffaf42a86ee76aa",
      "tree": "a7f9dff229e128a5f834e25120f32b09b4cdbf1e",
      "parents": [
        "a7451017fe627ac2d367fed39c3f7938a87d5929"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jun 26 16:12:12 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jun 26 20:47:29 2013 +0200"
      },
      "message": "Add TODO item about YAML filename extensions\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "a7451017fe627ac2d367fed39c3f7938a87d5929",
      "tree": "d7ed20a82f1795eb9546ade5ded0ec3c943f2625",
      "parents": [
        "7e314601cfa4677c849c3f16bcfeebd6d96e88b7"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jun 26 18:09:20 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jun 26 20:47:29 2013 +0200"
      },
      "message": "Add note about having to run make to README.Ansible\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "7e314601cfa4677c849c3f16bcfeebd6d96e88b7",
      "tree": "5b361afe61a2c0c917dbca35f23336fa25c9a95b",
      "parents": [
        "5ee69b3779f384af0322324bb51f58a82c9fe4f5"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jun 26 18:39:34 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Wed Jun 26 20:47:29 2013 +0200"
      },
      "message": "Ignore Vim swap files in git-status output\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "5ee69b3779f384af0322324bb51f58a82c9fe4f5",
      "tree": "aaa34549f378ebf1356c3df4f674855e12697300",
      "parents": [
        "42df1faea0e46c3cbafadca787a4c7062a3415db"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Mon Jun 24 13:41:06 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Mon Jun 24 13:41:06 2013 +0200"
      },
      "message": "Split Ansible-specific stuff from README\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "42df1faea0e46c3cbafadca787a4c7062a3415db",
      "tree": "432a977ada49457735dd6e8b847916d8932c198d",
      "parents": [
        "87f23c342127206ebf12300c8e4e577e45a3bc1b"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Mon Jun 24 13:15:24 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Mon Jun 24 13:15:24 2013 +0200"
      },
      "message": "Rename file to .gitignore\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "87f23c342127206ebf12300c8e4e577e45a3bc1b",
      "tree": "b68701a23f698c3aeb6a23d0e272e2460e31c921",
      "parents": [
        "729481ce247f8ac29efb375ae879e4a9fed2e451"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sun Jun 23 21:27:18 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Mon Jun 24 12:36:32 2013 +0200"
      },
      "message": "Fix merging of parameters\n\nThe merging logic was wrong, inverting the behaviour of parameter\nmerging, somewhat anyway.\n\nThis is now fixed. Entities are collected in a list, and then the list\nis reduced through merging the second element into the first. The entity\nof the current level is only merged once, at the very end.\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "729481ce247f8ac29efb375ae879e4a9fed2e451",
      "tree": "8943e65955bdde9ce18c0166650a742f84bb5a5c",
      "parents": [
        "b0f63e1610cd4d91a7e1975aeb9993ae40f919e7"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Mon Jun 24 12:24:49 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Mon Jun 24 12:31:14 2013 +0200"
      },
      "message": "Add optional name attribute to entities\n\nEntities can now carry an optional name attribute, and the YamlFile\nclass uses that to store the basename of the file, which eases debugging\ntremendously.\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "b0f63e1610cd4d91a7e1975aeb9993ae40f919e7",
      "tree": "f6214cb875c406832a153ee79a7da88d614bb6c8",
      "parents": [
        "e91f0597eecd4b6effaf31179c8f93bab83988c0"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Mon Jun 24 12:23:03 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Mon Jun 24 12:31:14 2013 +0200"
      },
      "message": "Remove debugging print calls\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "e91f0597eecd4b6effaf31179c8f93bab83988c0",
      "tree": "07d1b2d6e186db34cc80ce52226ac5708ff5b912",
      "parents": [
        "d4833b3ca4a2bbd990b3e5794849b5eaad9ee13a"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sun Jun 23 16:57:12 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sun Jun 23 16:57:12 2013 +0200"
      },
      "message": "Fix example hosts symlink\n\nThis fixes #2, thanks for the catch\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "d4833b3ca4a2bbd990b3e5794849b5eaad9ee13a",
      "tree": "a3608e96e764f2d7a14c1210589670b52cecfc8f",
      "parents": [
        "9a9b0ac4ca1fb69a7a235a5d032c4f22ad6e8f81"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sun Jun 23 13:35:46 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sun Jun 23 13:35:46 2013 +0200"
      },
      "message": "Make Python-path configurable\n\nThis commit introduces a Makefile that needs to be run initially to\nconfigure reclass for use on the local system, by setting the full path\nto the Python interpreter.\n\nCloses: #1\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "9a9b0ac4ca1fb69a7a235a5d032c4f22ad6e8f81",
      "tree": "abe6429720bb32ef5f4266539bf6195dc64759bc",
      "parents": [
        "a0db0700413a4e59bc02309289dd43c81e424d73"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jun 21 21:24:18 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jun 21 21:38:26 2013 +0200"
      },
      "message": "Allow applications postfix to be configured\n\nThe postfix _hosts appended to applications to create host groups is now\nconfigurable.\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "a0db0700413a4e59bc02309289dd43c81e424d73",
      "tree": "dcd0d8e1222e7078f005e944f97214c63b47a1bd",
      "parents": [
        "ff1cb06c9fb4aa5cbeea29c96a7ceca1fbc58b0c"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jun 20 17:25:01 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jun 20 17:25:01 2013 +0200"
      },
      "message": "fixups\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "ff1cb06c9fb4aa5cbeea29c96a7ceca1fbc58b0c",
      "tree": "ffe9df26fcb52aa99ed48d9ac96d809dc1049a53",
      "parents": [
        "6e9dcbaecc9bfda31f3c3f2edf7d04a5b26f085c"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jun 20 17:23:00 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Thu Jun 20 17:23:00 2013 +0200"
      },
      "message": "Doc clarifications to order of evaluation\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "6e9dcbaecc9bfda31f3c3f2edf7d04a5b26f085c",
      "tree": "258f6e8e832360a1c10fa6c02c8f77d74a7937aa",
      "parents": [
        "e497b75945241303ae7556b3f7d3a3e2f4216021"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sun Jun 16 15:21:09 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sun Jun 16 15:21:09 2013 +0200"
      },
      "message": "Document variable polymorphism\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "e497b75945241303ae7556b3f7d3a3e2f4216021",
      "tree": "8449f47370a6a8a0ee1e06cc8ddbde3745897d8d",
      "parents": [
        "ae0a392ccbace6188ff66b636d45e04c8b6772dd"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sun Jun 16 14:15:11 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sun Jun 16 14:15:11 2013 +0200"
      },
      "message": "Handle empty top-level parameters\n\nIf classes/applications/parameters are undefined, that\u0027s not an error.\nJust make them empty collections.\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "ae0a392ccbace6188ff66b636d45e04c8b6772dd",
      "tree": "ac73c2d579f554292f332d0cc22d194707ff3757",
      "parents": [
        "33223a2916918f3bc1acf20622559606ffc62670"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sun Jun 16 12:46:05 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sun Jun 16 12:47:36 2013 +0200"
      },
      "message": "Improved merging of null-values\n\nYAML returns \u0027None\u0027 when a key is parsed without a value. This is\nproperly handled by a95eaa35f5c48417420fe37472d8148fdbf5ddd5, except for\nthe recursive dict merger, which shouldn\u0027t overwrite existing data\nstructures when None is encountered. The solution is simply to provide\nappropriate policy entries for when the second value is a NoneType.\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "33223a2916918f3bc1acf20622559606ffc62670",
      "tree": "8530bb0d7336c1054c83f8f444dd0bb30109f463",
      "parents": [
        "f0265d457bcd1e4f51bb1422ab78e23beeab50c8"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sun Jun 16 12:14:49 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sun Jun 16 12:15:24 2013 +0200"
      },
      "message": "test types of Entity attributes\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "f0265d457bcd1e4f51bb1422ab78e23beeab50c8",
      "tree": "bf6ff59a88810a5efd2cf407e9c53421ca5d5378",
      "parents": [
        "a95eaa35f5c48417420fe37472d8148fdbf5ddd5"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sun Jun 16 12:14:16 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sun Jun 16 12:15:20 2013 +0200"
      },
      "message": "Reorder Entity constructor, parameters last\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "a95eaa35f5c48417420fe37472d8148fdbf5ddd5",
      "tree": "1d5bd053ad8deacda62570b1cc1ced986b0c99a0",
      "parents": [
        "a07b4208dcf30cdab35a8021c54a767f0b47cf3c"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sun Jun 16 11:56:41 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sun Jun 16 11:56:41 2013 +0200"
      },
      "message": "Handle merging None into lists/dicts\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "a07b4208dcf30cdab35a8021c54a767f0b47cf3c",
      "tree": "be95851c4e263e4d7580192bb48c58b3e892118c",
      "parents": [
        "404df4b879a8562f4fc9aa2fd444a36a446b5792"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sun Jun 16 11:55:35 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sun Jun 16 11:55:35 2013 +0200"
      },
      "message": "Remove old files that are not needed\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "404df4b879a8562f4fc9aa2fd444a36a446b5792",
      "tree": "accf094fdbae9663cc60e499d05ae7a2203ff19e",
      "parents": [
        "00e6a8109adcb1deada5e6a0b03fb37c68322aad"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sat Jun 15 15:41:58 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sat Jun 15 15:41:58 2013 +0200"
      },
      "message": "Test applications parsing in YamlFile\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "00e6a8109adcb1deada5e6a0b03fb37c68322aad",
      "tree": "0ca1f20228b648ec3c0907a115f2b136a5653ae5",
      "parents": [
        "f7858a84a165b59d0b55674b82c1cbc7c68c03f6"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sat Jun 15 15:40:41 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sat Jun 15 15:40:41 2013 +0200"
      },
      "message": "Handle reading of empty YamlFiles\n\npython-yaml\u0027s safe_load returns \u0027None\u0027 when it parses an empty YamlFile,\nbut since empty YamlFiles correspond to empty dictionaries, really, we\nhandle things accordingly.\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "f7858a84a165b59d0b55674b82c1cbc7c68c03f6",
      "tree": "dbed231d9377bfad78f55d154bcb6fce5a7d5fd7",
      "parents": [
        "e39e89076f6d78155344d71a7b524f1721c1d602"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sat Jun 15 15:33:28 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sat Jun 15 15:35:18 2013 +0200"
      },
      "message": "Identify YamlFile by path, not name\n\nThere is no point in storing a \u0027name\u0027 for a YamlFile, let\u0027s use the\npath, which is unique.\n\nAlso, adds a test for the property.\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "e39e89076f6d78155344d71a7b524f1721c1d602",
      "tree": "af5ae50751b18e0da43e959203d071fcd8049488",
      "parents": [
        "b608e6d7445a49a22e0ce7097a7e94f82fdc645b"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jun 14 22:12:17 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jun 14 22:12:17 2013 +0200"
      },
      "message": "README touchups\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "b608e6d7445a49a22e0ce7097a7e94f82fdc645b",
      "tree": "7aed9e21ea87fdb1069a0ae7f62e8e1b848ea027",
      "parents": [
        "3434b6b07a260ec50ce83e0b1fa6f58d4309fb20"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jun 14 22:10:43 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jun 14 22:10:52 2013 +0200"
      },
      "message": "additional notes about playbooks\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "3434b6b07a260ec50ce83e0b1fa6f58d4309fb20",
      "tree": "d7516bfecf7af10497189f718480eac313d87352",
      "parents": [
        "9b2049eef93dbed672e5d9cb672328403eb3edd3"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jun 14 20:40:52 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jun 14 20:40:52 2013 +0200"
      },
      "message": "Exception handling when file-not-found\n\nAdded rudimentary exception handling for when yaml_fs encounters\na node/class for which no file exists.\n\nUnfortunately, there is no way to properly communicate that to Ansible\nwhen it invokes the adapter. Oh well.\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "9b2049eef93dbed672e5d9cb672328403eb3edd3",
      "tree": "77daa7cae51f5bedafd2c744edaec07400e58c4b",
      "parents": [
        "622398921b6427df420c7b7a7be5ec034e3b9e0a"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jun 14 20:05:08 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jun 14 20:05:08 2013 +0200"
      },
      "message": "Add Git recommendation\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "622398921b6427df420c7b7a7be5ec034e3b9e0a",
      "tree": "6c38da8c6e24b66c1d50d730b97c0555bdfc2dfc",
      "parents": [
        "9fd35ca44a261e7e523f6fa60b8fc64733efc53e"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jun 14 20:03:59 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jun 14 20:03:59 2013 +0200"
      },
      "message": "add a bit of a sales blurb\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "9fd35ca44a261e7e523f6fa60b8fc64733efc53e",
      "tree": "f2fa209ca8c61a2367c13a3327d2f76149c5a825",
      "parents": [
        "3c33322c82f9ef658658a83d250efefa8255986f"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jun 14 19:56:26 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jun 14 19:56:26 2013 +0200"
      },
      "message": "Add LICENSE\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "3c33322c82f9ef658658a83d250efefa8255986f",
      "tree": "b65806bb0cffa5227d4d2a21782efef81803098c",
      "parents": [
        "f37f06830233ee4a30cffb684ad97bc64043f925"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jun 14 19:27:57 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jun 14 19:51:08 2013 +0200"
      },
      "message": "add batch of docs\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "f37f06830233ee4a30cffb684ad97bc64043f925",
      "tree": "03fdbd899c4f8ba73d958d3db3014d234aec97d1",
      "parents": [
        "f1501201df46d8d4d1ae21b302911823cee87807"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jun 14 16:36:20 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jun 14 19:48:32 2013 +0200"
      },
      "message": "Import of working code base\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "f1501201df46d8d4d1ae21b302911823cee87807",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jun 14 19:47:01 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jun 14 19:47:01 2013 +0200"
      },
      "message": "Initial, empty commit\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    }
  ]
}
