)]}'
{
  "commit": "b4d4c4f59c12c9b500f83d8cd4381418e1124f67",
  "tree": "ff2b7c958ba18ab3a018d1917a7b9369bc82b8a9",
  "parents": [
    "e61f471376d6d3ef2691abf3eee75d30999e7f05"
  ],
  "author": {
    "name": "Phil Dawson",
    "email": "phil.dawson@codethink.co.uk",
    "time": "Wed Jan 16 14:03:41 2019 +0000"
  },
  "committer": {
    "name": "Phil Dawson",
    "email": "phil.dawson@codethink.co.uk",
    "time": "Fri Feb 08 14:27:54 2019 +0000"
  },
  "message": "Expose basic api for testing external plugins.\n\nWe want external plugins to be able to make use of the core testing utils.\nThis commit exposes the basic utilities which are currently in use in\nbst-external plugins. If necessary, more utilities could be exposed in the\nfuture.\n\nMoves the following files from tests/testutils/ to\nbuildstream/plugintestingutils/:\no runcli.py\no integration.py\n\nAs part of this, this commit makes the following changes to runcli.py\nand integration.py:\no runcli.py: Fix linting errors\no runcli.py: Add user facing documentation\no Integration.py: Add user facing documentation\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c7238a29c953f1ec81b956636996e7fc168fdfe8",
      "new_mode": 33188,
      "new_path": "buildstream/plugintestutils/__init__.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e29f480eab7f14054b7e7eeb2c5ac0d8ab6830bc",
      "new_mode": 33188,
      "new_path": "buildstream/plugintestutils/integration.py"
    },
    {
      "type": "rename",
      "old_id": "b051dec216eb643a5001a4c162d0b6f79d77150a",
      "old_mode": 33188,
      "old_path": "tests/testutils/runcli.py",
      "new_id": "fb7c23c6c0ebae5e756f0bc47905329342190cd9",
      "new_mode": 33188,
      "new_path": "buildstream/plugintestutils/runcli.py",
      "score": 92
    },
    {
      "type": "modify",
      "old_id": "63ab9ad07a359e219f17bd66cbbf9c16d0887fc5",
      "old_mode": 33188,
      "old_path": "tests/artifactcache/cache_size.py",
      "new_id": "88f8eaddffdab3bd46575b8a757bbb2ddb82b622",
      "new_mode": 33188,
      "new_path": "tests/artifactcache/cache_size.py"
    },
    {
      "type": "modify",
      "old_id": "fecb3dd2ee365e711c2bd3021acc8ea20b4c808f",
      "old_mode": 33188,
      "old_path": "tests/artifactcache/config.py",
      "new_id": "fda30972587e7f5ca07b5a17f9fae47fd086d239",
      "new_mode": 33188,
      "new_path": "tests/artifactcache/config.py"
    },
    {
      "type": "modify",
      "old_id": "2cc59e03c208aae4124c2e83504624676fbdf25b",
      "old_mode": 33188,
      "old_path": "tests/artifactcache/expiry.py",
      "new_id": "d92e68f0bfcf6af40f9255cc173dca3e3135e2ca",
      "new_mode": 33188,
      "new_path": "tests/artifactcache/expiry.py"
    },
    {
      "type": "modify",
      "old_id": "c6d6921c8e0856f931f1619e0ba987e4926dffb0",
      "old_mode": 33188,
      "old_path": "tests/artifactcache/junctions.py",
      "new_id": "d5de16282ff865a804d3b501b48e4d421c286a38",
      "new_mode": 33188,
      "new_path": "tests/artifactcache/junctions.py"
    },
    {
      "type": "modify",
      "old_id": "4c332bf367c89e26558ea90fa5cc002eaf9b9815",
      "old_mode": 33188,
      "old_path": "tests/artifactcache/pull.py",
      "new_id": "edd5a93ba78299050324cd755231740ceecd4be0",
      "new_mode": 33188,
      "new_path": "tests/artifactcache/pull.py"
    },
    {
      "type": "modify",
      "old_id": "116fa7865ab15f92638648e1c8473e145deaf3cf",
      "old_mode": 33188,
      "old_path": "tests/artifactcache/push.py",
      "new_id": "ed2a140e7b362cf83b7191397ce33429309478cd",
      "new_mode": 33188,
      "new_path": "tests/artifactcache/push.py"
    },
    {
      "type": "modify",
      "old_id": "761ff0c769166a1c8acc2366335531af6686a48d",
      "old_mode": 33188,
      "old_path": "tests/cachekey/cachekey.py",
      "new_id": "4a6896888ea7ec6f80b6dda6bc44d294db283b6e",
      "new_mode": 33188,
      "new_path": "tests/cachekey/cachekey.py"
    },
    {
      "type": "modify",
      "old_id": "d574d07b31c32a9e43ff659ff383ac0d38add510",
      "old_mode": 33261,
      "old_path": "tests/cachekey/update.py",
      "new_id": "3e0924925c114a1908813e95739a7f7ccae4312b",
      "new_mode": 33261,
      "new_path": "tests/cachekey/update.py"
    },
    {
      "type": "modify",
      "old_id": "d40a8bdd134b40185d6f6e384534fe7b2cdf1e72",
      "old_mode": 33188,
      "old_path": "tests/elements/filter.py",
      "new_id": "c0ef2568a0cc32db61ca8c87ef003cee8b09cdf9",
      "new_mode": 33188,
      "new_path": "tests/elements/filter.py"
    },
    {
      "type": "modify",
      "old_id": "30f50768bf75f2566eb7a6981208aece1e3cc75e",
      "old_mode": 33188,
      "old_path": "tests/examples/autotools.py",
      "new_id": "96827ff4c3add4ad54ecfa6ca8ef8b3fd4b27e52",
      "new_mode": 33188,
      "new_path": "tests/examples/autotools.py"
    },
    {
      "type": "modify",
      "old_id": "166fcf3742a717dcacadd9a235f21accabb42ad5",
      "old_mode": 33188,
      "old_path": "tests/examples/developing.py",
      "new_id": "3ef78fd36a8c7dbda1050c221998d9f06b21e273",
      "new_mode": 33188,
      "new_path": "tests/examples/developing.py"
    },
    {
      "type": "modify",
      "old_id": "821d2c190099812b5c1ae2f13de1d673a758ccd6",
      "old_mode": 33188,
      "old_path": "tests/examples/first-project.py",
      "new_id": "35839770c3e83569ff18e3e874b7640634031e1a",
      "new_mode": 33188,
      "new_path": "tests/examples/first-project.py"
    },
    {
      "type": "modify",
      "old_id": "4153a95630539b30cd7b718c5c393e8617ce1259",
      "old_mode": 33188,
      "old_path": "tests/examples/flatpak-autotools.py",
      "new_id": "454b8d0bb2fc6fde1d3a336a08e9f250dce8b759",
      "new_mode": 33188,
      "new_path": "tests/examples/flatpak-autotools.py"
    },
    {
      "type": "modify",
      "old_id": "71e383008a7c9e8c5e838b4bab4edf43e8afa5f7",
      "old_mode": 33188,
      "old_path": "tests/examples/integration-commands.py",
      "new_id": "abc64d9515eb7b1acbcd6c0eba71ab01c1b413da",
      "new_mode": 33188,
      "new_path": "tests/examples/integration-commands.py"
    },
    {
      "type": "modify",
      "old_id": "753fa2dc0a0dfb0658e5946c003ef0aa32e9b8b1",
      "old_mode": 33188,
      "old_path": "tests/examples/junctions.py",
      "new_id": "3992b15203c36d5d28fdfc2ea2acb32583b662e3",
      "new_mode": 33188,
      "new_path": "tests/examples/junctions.py"
    },
    {
      "type": "modify",
      "old_id": "61e23fd9c8a264036e9325f7fcbf9bd479ac2a0e",
      "old_mode": 33188,
      "old_path": "tests/examples/running-commands.py",
      "new_id": "6290204a95af0a869907e45bba0db2f3de478889",
      "new_mode": 33188,
      "new_path": "tests/examples/running-commands.py"
    },
    {
      "type": "modify",
      "old_id": "42f69b759040232ffd918d22af91c67a7227dce9",
      "old_mode": 33188,
      "old_path": "tests/format/assertion.py",
      "new_id": "b787e07fc16342b698ed2d6992ae954e4ca5ee86",
      "new_mode": 33188,
      "new_path": "tests/format/assertion.py"
    },
    {
      "type": "modify",
      "old_id": "a6b417a662fdb07bb7c7c22942d5a5f2491ec7f7",
      "old_mode": 33188,
      "old_path": "tests/format/dependencies.py",
      "new_id": "5513077ee23b3be8fabb98e73a5f9f77d63d96ee",
      "new_mode": 33188,
      "new_path": "tests/format/dependencies.py"
    },
    {
      "type": "modify",
      "old_id": "36e723ed05b074d502ddf55b7234e008ff09cacc",
      "old_mode": 33188,
      "old_path": "tests/format/include.py",
      "new_id": "1db37083ec8ff453047267bc86e1dd5e7e285726",
      "new_mode": 33188,
      "new_path": "tests/format/include.py"
    },
    {
      "type": "modify",
      "old_id": "90608d0fc4f7530d4b06057868b20966858ad8f3",
      "old_mode": 33188,
      "old_path": "tests/format/junctions.py",
      "new_id": "7f27b59824614e300341b9614c121791fb358a09",
      "new_mode": 33188,
      "new_path": "tests/format/junctions.py"
    },
    {
      "type": "modify",
      "old_id": "4a2de86fcf7661be5d565c6e153509a5760ac10e",
      "old_mode": 33188,
      "old_path": "tests/format/listdirectiveerrors.py",
      "new_id": "8c397252c6f4fc209eaff3a5d8cef2c053b66bbd",
      "new_mode": 33188,
      "new_path": "tests/format/listdirectiveerrors.py"
    },
    {
      "type": "modify",
      "old_id": "09f9c07c9ba2169a496bcce76da6ec3464579948",
      "old_mode": 33188,
      "old_path": "tests/format/optionarch.py",
      "new_id": "a1237002d7edb9a337923e5e74bd12abe15390ec",
      "new_mode": 33188,
      "new_path": "tests/format/optionarch.py"
    },
    {
      "type": "modify",
      "old_id": "f02f0eee39b4019fda3c6dfbaf0f3658e8add4fa",
      "old_mode": 33188,
      "old_path": "tests/format/optionbool.py",
      "new_id": "598496cd39152a58b4c4b5049dd49e9df57f9a89",
      "new_mode": 33188,
      "new_path": "tests/format/optionbool.py"
    },
    {
      "type": "modify",
      "old_id": "b49eee88a17698e941bd67ef2318aa77580c5d05",
      "old_mode": 33188,
      "old_path": "tests/format/optioneltmask.py",
      "new_id": "7cbbd88f40f291e8399e9caeb5ab71cdbd2afdc8",
      "new_mode": 33188,
      "new_path": "tests/format/optioneltmask.py"
    },
    {
      "type": "modify",
      "old_id": "6990ad9153900e6d5017e3b80922b90bb0e47539",
      "old_mode": 33188,
      "old_path": "tests/format/optionenum.py",
      "new_id": "936126dfccfc510bd02a30bacb826bcc04d73c70",
      "new_mode": 33188,
      "new_path": "tests/format/optionenum.py"
    },
    {
      "type": "modify",
      "old_id": "26eadc677ae570c7e80f979bae85ea1ee9f96a19",
      "old_mode": 33188,
      "old_path": "tests/format/optionexports.py",
      "new_id": "5e65e97215cb549b9aee727ce5208763b8cc12ce",
      "new_mode": 33188,
      "new_path": "tests/format/optionexports.py"
    },
    {
      "type": "modify",
      "old_id": "3585f5ea5300358b166c424e1a39456006e65617",
      "old_mode": 33188,
      "old_path": "tests/format/optionflags.py",
      "new_id": "341bb8c8042f285a9716d46dd7d085c078318beb",
      "new_mode": 33188,
      "new_path": "tests/format/optionflags.py"
    },
    {
      "type": "modify",
      "old_id": "b05d7e49e54b5c6f75c18962d0f7ff3fd85fe5b1",
      "old_mode": 33188,
      "old_path": "tests/format/optionos.py",
      "new_id": "ba6ab2a48f54509cf72eb410d9d38c7520499f6e",
      "new_mode": 33188,
      "new_path": "tests/format/optionos.py"
    },
    {
      "type": "modify",
      "old_id": "e5c37b3a515867df106b2af086ee4b00d0d00071",
      "old_mode": 33188,
      "old_path": "tests/format/optionoverrides.py",
      "new_id": "256562edf5999a48c61e467f251440f9924b24c5",
      "new_mode": 33188,
      "new_path": "tests/format/optionoverrides.py"
    },
    {
      "type": "modify",
      "old_id": "2076106cbc3eef2c1241125227ca18891cf88545",
      "old_mode": 33188,
      "old_path": "tests/format/options.py",
      "new_id": "3a1b1287795b5822661b415406f3f3cb8da2dfca",
      "new_mode": 33188,
      "new_path": "tests/format/options.py"
    },
    {
      "type": "modify",
      "old_id": "0433df99e4498c782476110ba834f98f71a39d0e",
      "old_mode": 33188,
      "old_path": "tests/format/project.py",
      "new_id": "db6604409e3e2f0e30e0657e5aa1b741cc85cafe",
      "new_mode": 33188,
      "new_path": "tests/format/project.py"
    },
    {
      "type": "modify",
      "old_id": "d63b0a23d3707ed07919ccdc9c4f2f1acb15860c",
      "old_mode": 33188,
      "old_path": "tests/format/projectoverrides.py",
      "new_id": "cf9a1d35e7f6f600db988257061ef0f2c7aa5eba",
      "new_mode": 33188,
      "new_path": "tests/format/projectoverrides.py"
    },
    {
      "type": "modify",
      "old_id": "be7faefc5f1e6a45eefa8f4f7f3a2cb3453f179b",
      "old_mode": 33188,
      "old_path": "tests/format/variables.py",
      "new_id": "5a0d212061a3c6f0238aac5e8efeb6a313b00a8f",
      "new_mode": 33188,
      "new_path": "tests/format/variables.py"
    },
    {
      "type": "modify",
      "old_id": "b35b148200837637431edafc8f6c3f3374980d24",
      "old_mode": 33188,
      "old_path": "tests/frontend/buildcheckout.py",
      "new_id": "80d710f6f7f13c7b24b779e1dd9735d785b0d5da",
      "new_mode": 33188,
      "new_path": "tests/frontend/buildcheckout.py"
    },
    {
      "type": "modify",
      "old_id": "720ab7efcc99caa5a8d3673e3cbfe210f6296365",
      "old_mode": 33188,
      "old_path": "tests/frontend/buildtrack.py",
      "new_id": "9c56fb4a03baec2136c48b91d05a37e6e4327ea2",
      "new_mode": 33188,
      "new_path": "tests/frontend/buildtrack.py"
    },
    {
      "type": "modify",
      "old_id": "93b908f606788ceffc09b9e3206c4ecb6573734f",
      "old_mode": 33188,
      "old_path": "tests/frontend/completions.py",
      "new_id": "cb151c2840c3beca8fcfbb74ad12682bf7ac5b82",
      "new_mode": 33188,
      "new_path": "tests/frontend/completions.py"
    },
    {
      "type": "modify",
      "old_id": "97558b6538241de75d16d7d2fb84c1938a58a844",
      "old_mode": 33188,
      "old_path": "tests/frontend/compose_splits.py",
      "new_id": "3d2db44fb42e6c06eef1e3c81ad9fb08430f18d5",
      "new_mode": 33188,
      "new_path": "tests/frontend/compose_splits.py"
    },
    {
      "type": "modify",
      "old_id": "e8a7b6ac8a560b4aed1743df6e5142e9a0febe44",
      "old_mode": 33188,
      "old_path": "tests/frontend/configurable_warnings.py",
      "new_id": "0428745296ead7fd24c217857132861234a07657",
      "new_mode": 33188,
      "new_path": "tests/frontend/configurable_warnings.py"
    },
    {
      "type": "modify",
      "old_id": "a10eb742131ad4f33e446434362b38fe4e3e9c5b",
      "old_mode": 33188,
      "old_path": "tests/frontend/cross_junction_workspace.py",
      "new_id": "837a09f8acedf0376728285fbc792824bdbc84b3",
      "new_mode": 33188,
      "new_path": "tests/frontend/cross_junction_workspace.py"
    },
    {
      "type": "modify",
      "old_id": "24d9a36a676764c1b0ea61d6f8cf5354289ff110",
      "old_mode": 33188,
      "old_path": "tests/frontend/fetch.py",
      "new_id": "9edfad94b91e3853fb3e326fdfef5820f25491cf",
      "new_mode": 33188,
      "new_path": "tests/frontend/fetch.py"
    },
    {
      "type": "modify",
      "old_id": "331eb43c014c0dff8213f07dcb98c456fbd0d987",
      "old_mode": 33188,
      "old_path": "tests/frontend/help.py",
      "new_id": "540a3a60f691c8957a0423a065efb7514682f124",
      "new_mode": 33188,
      "new_path": "tests/frontend/help.py"
    },
    {
      "type": "modify",
      "old_id": "f6e7dd68a044d165989dcf21cf73070aa8821022",
      "old_mode": 33188,
      "old_path": "tests/frontend/init.py",
      "new_id": "b323a01c819a6be9abe3bcdd45ff46841189cf23",
      "new_mode": 33188,
      "new_path": "tests/frontend/init.py"
    },
    {
      "type": "modify",
      "old_id": "ddaadfa266dc7855a504df91b80a9b2dff14ed27",
      "old_mode": 33188,
      "old_path": "tests/frontend/logging.py",
      "new_id": "17d925cd1a43802415189e627c21246bbf9855e3",
      "new_mode": 33188,
      "new_path": "tests/frontend/logging.py"
    },
    {
      "type": "modify",
      "old_id": "3cadd15f3481c025a6af5001b8915de77dafed17",
      "old_mode": 33188,
      "old_path": "tests/frontend/mirror.py",
      "new_id": "c0c2e7059e32306285737ce4f69a4d385fd310e9",
      "new_mode": 33188,
      "new_path": "tests/frontend/mirror.py"
    },
    {
      "type": "modify",
      "old_id": "97ebc2bf6aee276e1c45b7c27f0f39cb0a578cc2",
      "old_mode": 33188,
      "old_path": "tests/frontend/order.py",
      "new_id": "422fce2605074a52a379d7a1e36efbf0b6918812",
      "new_mode": 33188,
      "new_path": "tests/frontend/order.py"
    },
    {
      "type": "modify",
      "old_id": "27be8deac9905ac0a80021a9c455f22d5f47bfb8",
      "old_mode": 33188,
      "old_path": "tests/frontend/overlaps.py",
      "new_id": "22365e442868055ab490f71568e3b54f44fc15ec",
      "new_mode": 33188,
      "new_path": "tests/frontend/overlaps.py"
    },
    {
      "type": "modify",
      "old_id": "a2c710fb85089a06c36f6eb164e55d1db97bc170",
      "old_mode": 33188,
      "old_path": "tests/frontend/pull.py",
      "new_id": "9579d9f27715198d992179c2546c2e1cc19f1571",
      "new_mode": 33188,
      "new_path": "tests/frontend/pull.py"
    },
    {
      "type": "modify",
      "old_id": "729df9ae937e2a4aff81b1b068b60f02b157f5c3",
      "old_mode": 33188,
      "old_path": "tests/frontend/push.py",
      "new_id": "7a4cb3c0d6215b32af49136f836fde74b340354f",
      "new_mode": 33188,
      "new_path": "tests/frontend/push.py"
    },
    {
      "type": "modify",
      "old_id": "d93aac0dcf0f5b76f76a04739e8fa73ede7ab5c5",
      "old_mode": 33188,
      "old_path": "tests/frontend/rebuild.py",
      "new_id": "6a46e855e85e593f2ec903080c36ebf3b3f7a475",
      "new_mode": 33188,
      "new_path": "tests/frontend/rebuild.py"
    },
    {
      "type": "modify",
      "old_id": "88f38dd6af23e6a335ecb900f20a3114ad63edf5",
      "old_mode": 33188,
      "old_path": "tests/frontend/show.py",
      "new_id": "ad3ae359110603398382a0f7fcc4548b07b28cd9",
      "new_mode": 33188,
      "new_path": "tests/frontend/show.py"
    },
    {
      "type": "modify",
      "old_id": "d7ff86d70d96dfb114078f94ed9d7e61aa3b42d8",
      "old_mode": 33188,
      "old_path": "tests/frontend/source_checkout.py",
      "new_id": "b41d3249177176b95730849f6abd745b9bf7b291",
      "new_mode": 33188,
      "new_path": "tests/frontend/source_checkout.py"
    },
    {
      "type": "modify",
      "old_id": "a4ace92b6d3516b0158b85c6e0ef0a207feaa58a",
      "old_mode": 33188,
      "old_path": "tests/frontend/track.py",
      "new_id": "486a4123c8dd634c76112f09fbb207c004daae66",
      "new_mode": 33188,
      "new_path": "tests/frontend/track.py"
    },
    {
      "type": "modify",
      "old_id": "4bbf2db18ba5b489fd6eb4a966c8c4ecfc099272",
      "old_mode": 33188,
      "old_path": "tests/frontend/track_cross_junction.py",
      "new_id": "7d9d468ae72c09ff36e55fcaf4a1e18d56906c41",
      "new_mode": 33188,
      "new_path": "tests/frontend/track_cross_junction.py"
    },
    {
      "type": "modify",
      "old_id": "997eb2340d0e7e6433c79d654af495b65127717f",
      "old_mode": 33188,
      "old_path": "tests/frontend/version.py",
      "new_id": "1d36a33b529a0767ef55a3537ae3a006c0cc0f68",
      "new_mode": 33188,
      "new_path": "tests/frontend/version.py"
    },
    {
      "type": "modify",
      "old_id": "6d4270e11ace44ca8c654dbb13ede0bc3415c3c6",
      "old_mode": 33188,
      "old_path": "tests/frontend/workspace.py",
      "new_id": "f6d12e8bf3ce333c57e7c43f44c1c6e798e859ce",
      "new_mode": 33188,
      "new_path": "tests/frontend/workspace.py"
    },
    {
      "type": "modify",
      "old_id": "20388593ea37ad783fed23a26ad4cf7b514c623e",
      "old_mode": 33188,
      "old_path": "tests/frontend/yamlcache.py",
      "new_id": "99b5d71c31412ea07d4f58a77aff015becfcb00d",
      "new_mode": 33188,
      "new_path": "tests/frontend/yamlcache.py"
    },
    {
      "type": "modify",
      "old_id": "2e12e712c4975395a80b0a06514ef168dffba09a",
      "old_mode": 33188,
      "old_path": "tests/integration/artifact.py",
      "new_id": "459241209a1d451a1ac522aca762ceaaa179de63",
      "new_mode": 33188,
      "new_path": "tests/integration/artifact.py"
    },
    {
      "type": "modify",
      "old_id": "b1d33f497cdc2bd568b08d897bda5b50a606cbb4",
      "old_mode": 33188,
      "old_path": "tests/integration/autotools.py",
      "new_id": "3ed0533cf582e0a55d589da682551175bc9bc25b",
      "new_mode": 33188,
      "new_path": "tests/integration/autotools.py"
    },
    {
      "type": "modify",
      "old_id": "bacbf1cc71c5c73cf0a00c7ffc7444f94bb60f9f",
      "old_mode": 33188,
      "old_path": "tests/integration/build-tree.py",
      "new_id": "98bb5b1e87bc0267536a372ccecbccb2c87b67cb",
      "new_mode": 33188,
      "new_path": "tests/integration/build-tree.py"
    },
    {
      "type": "modify",
      "old_id": "06779ee20f90885fd7aeb0ac61e80c6a7968a57d",
      "old_mode": 33188,
      "old_path": "tests/integration/build-uid.py",
      "new_id": "88b887b5ebaf3fa096c6d86041d8993ee2d90c38",
      "new_mode": 33188,
      "new_path": "tests/integration/build-uid.py"
    },
    {
      "type": "modify",
      "old_id": "08dbf81e1487a82c593610887097da6656bf65ff",
      "old_mode": 33188,
      "old_path": "tests/integration/cachedfail.py",
      "new_id": "5335ff5ed0bd1dee6dd21d776404210ff1ba116c",
      "new_mode": 33188,
      "new_path": "tests/integration/cachedfail.py"
    },
    {
      "type": "modify",
      "old_id": "7d03e291dc940edff8eb49027fcc0191f2b0c9d6",
      "old_mode": 33188,
      "old_path": "tests/integration/cmake.py",
      "new_id": "51e215655f62770cb8918645debfd3723fbaf806",
      "new_mode": 33188,
      "new_path": "tests/integration/cmake.py"
    },
    {
      "type": "modify",
      "old_id": "2599d8bcd3f9fbdf98ee5db1ac359876c12e6683",
      "old_mode": 33188,
      "old_path": "tests/integration/compose-symlinks.py",
      "new_id": "c6027bf2b45b5b944a6c38a96839489223ed453a",
      "new_mode": 33188,
      "new_path": "tests/integration/compose-symlinks.py"
    },
    {
      "type": "modify",
      "old_id": "077d5eea0d52338a759ca966176740938ae312c3",
      "old_mode": 33188,
      "old_path": "tests/integration/compose.py",
      "new_id": "386e0843849ca74eac57fa2b60fd4649d7e7978e",
      "new_mode": 33188,
      "new_path": "tests/integration/compose.py"
    },
    {
      "type": "modify",
      "old_id": "84264051521e112dd6c7b469a2556b31096cef98",
      "old_mode": 33188,
      "old_path": "tests/integration/import.py",
      "new_id": "deef66bc1a993809a3083bea1698652b2579c53f",
      "new_mode": 33188,
      "new_path": "tests/integration/import.py"
    },
    {
      "type": "modify",
      "old_id": "12c027b61a9e242018165552280b3ee6c8073dc4",
      "old_mode": 33188,
      "old_path": "tests/integration/make.py",
      "new_id": "a76fe9a41d558fc80b27c5a2356cfbfa1ad07229",
      "new_mode": 33188,
      "new_path": "tests/integration/make.py"
    },
    {
      "type": "modify",
      "old_id": "b9f09e25cec91f4eb6ba2d013ac5ad2c7b88fe75",
      "old_mode": 33188,
      "old_path": "tests/integration/manual.py",
      "new_id": "97cbec53767dc1c13b080b3bb727e00d15be94bb",
      "new_mode": 33188,
      "new_path": "tests/integration/manual.py"
    },
    {
      "type": "modify",
      "old_id": "03c9224725cc0278f6f69502f014b9867c86262c",
      "old_mode": 33188,
      "old_path": "tests/integration/messages.py",
      "new_id": "7f4194e0ffba1644e39a81f809c624dd1e09b3a2",
      "new_mode": 33188,
      "new_path": "tests/integration/messages.py"
    },
    {
      "type": "modify",
      "old_id": "807123620c773b7151ddb2284f2db6c5ef88bcef",
      "old_mode": 33188,
      "old_path": "tests/integration/pip_element.py",
      "new_id": "48ca13bf5cd142a241dac0bee67ce6fe23e3a0de",
      "new_mode": 33188,
      "new_path": "tests/integration/pip_element.py"
    },
    {
      "type": "modify",
      "old_id": "d43b380aafb2f9a7b4f7f6e735632762f1196453",
      "old_mode": 33188,
      "old_path": "tests/integration/pip_source.py",
      "new_id": "993b3a182b28e7c5c066caa4d1791012137694a2",
      "new_mode": 33188,
      "new_path": "tests/integration/pip_source.py"
    },
    {
      "type": "modify",
      "old_id": "ca6c40f94128878223806ccb3175e8aa56c68386",
      "old_mode": 33188,
      "old_path": "tests/integration/pullbuildtrees.py",
      "new_id": "24fac7e00a331163d5c293b04b5c91ff9e8ea06b",
      "new_mode": 33188,
      "new_path": "tests/integration/pullbuildtrees.py"
    },
    {
      "type": "modify",
      "old_id": "66e9f5b572294e6352f40b8a1fda0d27fd7a5d8a",
      "old_mode": 33188,
      "old_path": "tests/integration/sandbox-bwrap.py",
      "new_id": "2c939e9be67eca75fa0e1d0919030c5511304691",
      "new_mode": 33188,
      "new_path": "tests/integration/sandbox-bwrap.py"
    },
    {
      "type": "modify",
      "old_id": "446a63f3dfe7c145e27237c87a9b647f50013b64",
      "old_mode": 33188,
      "old_path": "tests/integration/script.py",
      "new_id": "0297a3f0a2959a95afdc507babba4255a9cdc45a",
      "new_mode": 33188,
      "new_path": "tests/integration/script.py"
    },
    {
      "type": "modify",
      "old_id": "9b35db883ac145cfeba21ae55c70abbe6d187fde",
      "old_mode": 33188,
      "old_path": "tests/integration/shell.py",
      "new_id": "d1a551f53593832faba6f527547dcf02cbf1df7c",
      "new_mode": 33188,
      "new_path": "tests/integration/shell.py"
    },
    {
      "type": "modify",
      "old_id": "30cf622cf994c65cdfa3c2e8ea8b059b8004d4ba",
      "old_mode": 33188,
      "old_path": "tests/integration/sockets.py",
      "new_id": "fc2fb2b92a9b3ee5f8fb2dc618ccd8c8db50abc3",
      "new_mode": 33188,
      "new_path": "tests/integration/sockets.py"
    },
    {
      "type": "modify",
      "old_id": "6be6a4d4a5ade4f30d27a676a8ee21f9399fc510",
      "old_mode": 33188,
      "old_path": "tests/integration/source-determinism.py",
      "new_id": "f7b2bf2ac36ed51d2cb46e806d18cb60a9bb5926",
      "new_mode": 33188,
      "new_path": "tests/integration/source-determinism.py"
    },
    {
      "type": "modify",
      "old_id": "1b8d38198f74ba50414a2d8cc9cbc83333129d8f",
      "old_mode": 33188,
      "old_path": "tests/integration/stack.py",
      "new_id": "d5208d7bec3e92f091d8a2ff69d094aacaef4407",
      "new_mode": 33188,
      "new_path": "tests/integration/stack.py"
    },
    {
      "type": "modify",
      "old_id": "c45c811778e4b4b347062e00ed16094b94d44dc0",
      "old_mode": 33188,
      "old_path": "tests/integration/symlinks.py",
      "new_id": "22ff527f897c8039cad44da7e8850d106f052b39",
      "new_mode": 33188,
      "new_path": "tests/integration/symlinks.py"
    },
    {
      "type": "modify",
      "old_id": "ee1d575bf90884bb8845eb9f939172bd1aaf865b",
      "old_mode": 33188,
      "old_path": "tests/integration/workspace.py",
      "new_id": "f1d8d6fcda2e64de19e75d7d541dfd0e2bfeec71",
      "new_mode": 33188,
      "new_path": "tests/integration/workspace.py"
    },
    {
      "type": "modify",
      "old_id": "0bb47e3cd79f320035c747eec3ab58525607c671",
      "old_mode": 33188,
      "old_path": "tests/internals/storage_vdir_import.py",
      "new_id": "1d61a6e5f1ca61f893df7c40ba9052f1cabe8a44",
      "new_mode": 33188,
      "new_path": "tests/internals/storage_vdir_import.py"
    },
    {
      "type": "modify",
      "old_id": "8f210bceccdb095f58fc5b527693feb5ad53d170",
      "old_mode": 33188,
      "old_path": "tests/sandboxes/missing-command.py",
      "new_id": "ddf1c487f83c53b14522d77a7e82ea2a0a5dbce9",
      "new_mode": 33188,
      "new_path": "tests/sandboxes/missing-command.py"
    },
    {
      "type": "modify",
      "old_id": "d77674c64b056465549a0efaed56ddcb5a56d2fe",
      "old_mode": 33188,
      "old_path": "tests/sandboxes/missing_dependencies.py",
      "new_id": "19515a187f93ea5497727d1929836582f552efb8",
      "new_mode": 33188,
      "new_path": "tests/sandboxes/missing_dependencies.py"
    },
    {
      "type": "modify",
      "old_id": "9cf0a8f083986f3d8e175168cc58a050ba8c2092",
      "old_mode": 33188,
      "old_path": "tests/sandboxes/remote-exec-config.py",
      "new_id": "9864f25911cc9122f15d44ec7e9bb056407c0490",
      "new_mode": 33188,
      "new_path": "tests/sandboxes/remote-exec-config.py"
    },
    {
      "type": "modify",
      "old_id": "a56005f5e43f29127a2d4b77763d80c23320d72c",
      "old_mode": 33188,
      "old_path": "tests/sources/bzr.py",
      "new_id": "bf7d1e8440991fb6bcc4ca6680fe91a498333219",
      "new_mode": 33188,
      "new_path": "tests/sources/bzr.py"
    },
    {
      "type": "modify",
      "old_id": "b40358eaabc31473b81e3032c52473f610cf0c0b",
      "old_mode": 33188,
      "old_path": "tests/sources/deb.py",
      "new_id": "480bea6f4c10c83e204459e313b6a3df3fe8676f",
      "new_mode": 33188,
      "new_path": "tests/sources/deb.py"
    },
    {
      "type": "modify",
      "old_id": "795908329eed90f2b6b9a4f2d320efa5f28e93e3",
      "old_mode": 33188,
      "old_path": "tests/sources/git.py",
      "new_id": "f3d2e28092c761f61ae09bff1e4a01e3d8cd0572",
      "new_mode": 33188,
      "new_path": "tests/sources/git.py"
    },
    {
      "type": "modify",
      "old_id": "4a0851d724f7bd18a29fc1ba13141ccf95073b21",
      "old_mode": 33188,
      "old_path": "tests/sources/local.py",
      "new_id": "f7c1f4bd2f6a39756126a6f2998bf694fbae4008",
      "new_mode": 33188,
      "new_path": "tests/sources/local.py"
    },
    {
      "type": "modify",
      "old_id": "d2880f62817f8e283bc4828ef8a042bbb7f80401",
      "old_mode": 33188,
      "old_path": "tests/sources/no_fetch_cached.py",
      "new_id": "9ef838cf4d2a509141efef500b93829c2ef66010",
      "new_mode": 33188,
      "new_path": "tests/sources/no_fetch_cached.py"
    },
    {
      "type": "modify",
      "old_id": "e059a882f84ff00e2e604164d962b42f6e23b980",
      "old_mode": 33188,
      "old_path": "tests/sources/ostree.py",
      "new_id": "7ddea77f64e64d0b7e388b67d5ed74649a044099",
      "new_mode": 33188,
      "new_path": "tests/sources/ostree.py"
    },
    {
      "type": "modify",
      "old_id": "51ae69021d99ce6a289ea3de60a722f1cf2fd2c7",
      "old_mode": 33188,
      "old_path": "tests/sources/patch.py",
      "new_id": "2a82bf1846f9fc5c26fd2d51d1506436f137c44f",
      "new_mode": 33188,
      "new_path": "tests/sources/patch.py"
    },
    {
      "type": "modify",
      "old_id": "6e1a347d99669c1488d6e25ea06f64e990535933",
      "old_mode": 33188,
      "old_path": "tests/sources/pip.py",
      "new_id": "3114a824e157de326936a3967fd1c6fb8a4188ca",
      "new_mode": 33188,
      "new_path": "tests/sources/pip.py"
    },
    {
      "type": "modify",
      "old_id": "26640d180c655e2af23a7ee51fa8ead6c22f4701",
      "old_mode": 33188,
      "old_path": "tests/sources/previous_source_access.py",
      "new_id": "9d831781a7a5b899d6f97968bd1828865710a787",
      "new_mode": 33188,
      "new_path": "tests/sources/previous_source_access.py"
    },
    {
      "type": "modify",
      "old_id": "1d7727302b876ceaf62c60d3bdd8ddb034fc4417",
      "old_mode": 33188,
      "old_path": "tests/sources/remote.py",
      "new_id": "30b65b4cc92c043a75d83b68ed86f597de062d95",
      "new_mode": 33188,
      "new_path": "tests/sources/remote.py"
    },
    {
      "type": "modify",
      "old_id": "406d6702b8c1251c1182491954982f84f5bae1e8",
      "old_mode": 33188,
      "old_path": "tests/sources/tar.py",
      "new_id": "959ff890cfdcbcf281fc30ea5bc516f6b52b59ad",
      "new_mode": 33188,
      "new_path": "tests/sources/tar.py"
    },
    {
      "type": "modify",
      "old_id": "009862e1caae8ad99c8ef40253daf4cfaf1b902e",
      "old_mode": 33188,
      "old_path": "tests/sources/zip.py",
      "new_id": "dd72dd579af6f28eb3d261bd0a06816f4e19c2f8",
      "new_mode": 33188,
      "new_path": "tests/sources/zip.py"
    },
    {
      "type": "modify",
      "old_id": "eb7211ea8bbc04e8780da04a436fe749df69d3b7",
      "old_mode": 33188,
      "old_path": "tests/testutils/__init__.py",
      "new_id": "173cc7c3e0bd0725572f225a2f055ea04e56cfdb",
      "new_mode": 33188,
      "new_path": "tests/testutils/__init__.py"
    },
    {
      "type": "delete",
      "old_id": "b2cf9fba41a310fa0cf1dc5607fe535672088866",
      "old_mode": 33188,
      "old_path": "tests/testutils/integration.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "6683df79639eb24b40653f67b56e11fd84ccab33",
      "old_mode": 33188,
      "old_path": "tox.ini",
      "new_id": "9183e023f52f7c1e160f57248511db467a802339",
      "new_mode": 33188,
      "new_path": "tox.ini"
    }
  ]
}
