)]}'
{
  "commit": "ebf214f85f1128317d982c1651011e35539a6bb3",
  "tree": "a06192bd07ccd8a798e1e026857fa98909e9d8ae",
  "parents": [
    "d5d282d42077fd83fece9dc56a2af28c2095b55f"
  ],
  "author": {
    "name": "Fabio Ponciroli",
    "email": "ponch78@gmail.com",
    "time": "Wed Jan 02 10:17:43 2019 +0100"
  },
  "committer": {
    "name": "Fabio Ponciroli",
    "email": "ponch78@gmail.com",
    "time": "Fri Jan 04 12:21:05 2019 +0100"
  },
  "message": "Enrich user info in Auditlogs ETL\n\nAllow enrichment of user information. This change on allows \"user type\" to be defined, but it can\nbe easily extended to any other useful information.\n\nUser data is passed via a CSV file with the following format:\nid,type\n123,bot\n456,human\n\n\"User type\" is defaulted to \"human\" if not present in this file.\n\nA possible use case for this feature is the distinction between \"bot\" and \"human\" users.\n\nFeature: Issue 10229\nChange-Id: I042244154e668f5137ff97053f1cc2ad88342acd\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "165c68a283ae6c3f4bb0b5cd8f5493263027c271",
      "old_mode": 33188,
      "old_path": "README.md",
      "new_id": "9f5dfa4da458d11fd98879642de2f21793cb2d93",
      "new_mode": 33188,
      "new_path": "README.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4400a70b1331327116455f3582ec18cb6eeeacf0",
      "new_mode": 33188,
      "new_path": "auditlog/src/main/scala/com/gerritforge/analytics/auditlog/broadcast/AdditionalUserInfo.scala"
    },
    {
      "type": "modify",
      "old_id": "0c805fb941942e7c3cb780d955bd2420a4455c78",
      "old_mode": 33188,
      "old_path": "auditlog/src/main/scala/com/gerritforge/analytics/auditlog/broadcast/GerritUserIdentifiers.scala",
      "new_id": "9f040d2ce9341e8862529a215bee240ed56b20c0",
      "new_mode": 33188,
      "new_path": "auditlog/src/main/scala/com/gerritforge/analytics/auditlog/broadcast/GerritUserIdentifiers.scala"
    },
    {
      "type": "modify",
      "old_id": "4cc45a8143947492f767b7b268fecacb0d67f177",
      "old_mode": 33188,
      "old_path": "auditlog/src/main/scala/com/gerritforge/analytics/auditlog/broadcast/package.scala",
      "new_id": "0624eae16b0f95f6a903b598727ae87c5661e7a0",
      "new_mode": 33188,
      "new_path": "auditlog/src/main/scala/com/gerritforge/analytics/auditlog/broadcast/package.scala"
    },
    {
      "type": "modify",
      "old_id": "adda7f92d155660feb088990a16b6775220b1989",
      "old_mode": 33188,
      "old_path": "auditlog/src/main/scala/com/gerritforge/analytics/auditlog/job/Main.scala",
      "new_id": "8690c58e738de8e8d0ad4a8a31ad12e732f0e146",
      "new_mode": 33188,
      "new_path": "auditlog/src/main/scala/com/gerritforge/analytics/auditlog/job/Main.scala"
    },
    {
      "type": "modify",
      "old_id": "30e4c931ef610be08bcb8ebc7850664b79622619",
      "old_mode": 33188,
      "old_path": "auditlog/src/main/scala/com/gerritforge/analytics/auditlog/model/AuditLogETLConfig.scala",
      "new_id": "b95d81a54ac99c23dfd5f452cdf044c24dcbeac8",
      "new_mode": 33188,
      "new_path": "auditlog/src/main/scala/com/gerritforge/analytics/auditlog/model/AuditLogETLConfig.scala"
    },
    {
      "type": "modify",
      "old_id": "2ff685465f7429120fafafe81d54701bce163e21",
      "old_mode": 33188,
      "old_path": "auditlog/src/main/scala/com/gerritforge/analytics/auditlog/model/CommandLineArguments.scala",
      "new_id": "21b6a8497129d3d0a1a0b379340fd6b2b8d80c42",
      "new_mode": 33188,
      "new_path": "auditlog/src/main/scala/com/gerritforge/analytics/auditlog/model/CommandLineArguments.scala"
    },
    {
      "type": "modify",
      "old_id": "41d33ecff6c9aa559bc58a5c666beafb16bf0931",
      "old_mode": 33188,
      "old_path": "auditlog/src/main/scala/com/gerritforge/analytics/auditlog/model/ElasticSearchFields.scala",
      "new_id": "19803851bf759a42520418acf88821f76a94478f",
      "new_mode": 33188,
      "new_path": "auditlog/src/main/scala/com/gerritforge/analytics/auditlog/model/ElasticSearchFields.scala"
    },
    {
      "type": "modify",
      "old_id": "1b068290c53dff9d7b50c99728c49f3c54600214",
      "old_mode": 33188,
      "old_path": "auditlog/src/main/scala/com/gerritforge/analytics/auditlog/spark/AuditLogsTransformer.scala",
      "new_id": "d9138bce65bb09eeb68b2e9379cc90a39b3e31df",
      "new_mode": 33188,
      "new_path": "auditlog/src/main/scala/com/gerritforge/analytics/auditlog/spark/AuditLogsTransformer.scala"
    },
    {
      "type": "modify",
      "old_id": "f1ddd9b3d6d0df18066f6b20130290be9dd444ba",
      "old_mode": 33188,
      "old_path": "auditlog/src/main/scala/com/gerritforge/analytics/auditlog/spark/dataframe/ops/DataFrameOps.scala",
      "new_id": "80f2e24c7344ca7ccc60e4125226542ce61affa3",
      "new_mode": 33188,
      "new_path": "auditlog/src/main/scala/com/gerritforge/analytics/auditlog/spark/dataframe/ops/DataFrameOps.scala"
    },
    {
      "type": "modify",
      "old_id": "4602aee33eee6ecb050740be68d8ca98a71046f9",
      "old_mode": 33188,
      "old_path": "auditlog/src/main/scala/com/gerritforge/analytics/auditlog/spark/rdd/ops/SparkRDDOps.scala",
      "new_id": "22efd8839067fb95f5387643a4fae7a2074069f1",
      "new_mode": 33188,
      "new_path": "auditlog/src/main/scala/com/gerritforge/analytics/auditlog/spark/rdd/ops/SparkRDDOps.scala"
    },
    {
      "type": "modify",
      "old_id": "aade9f9c506a15a0e5f80136e1c5244008749ab7",
      "old_mode": 33188,
      "old_path": "auditlog/src/test/scala/com/gerritforge/analytics/auditlog/AuditLogsTransformerSpec.scala",
      "new_id": "b0a09a20022d597bddbb02b7062466709980d825",
      "new_mode": 33188,
      "new_path": "auditlog/src/test/scala/com/gerritforge/analytics/auditlog/AuditLogsTransformerSpec.scala"
    }
  ]
}
