)]}'
{
  "log": [
    {
      "commit": "b358a91057a5df6d498ee38817e0f612c4155312",
      "tree": "0d96ae63e9ac630fb34157cfd9239314dfa92dff",
      "parents": [
        "e33f59e37aedbcf757d95ec2fa22bb66f8076224"
      ],
      "author": {
        "name": "G M Kallidis",
        "email": "gk@apache.org",
        "time": "Fri Nov 22 09:16:12 2024 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Nov 22 09:16:12 2024 +0100"
      },
      "message": "EL 8 compatibility and PyYaml 5.x update, Fix in jira scanner plugin (#10)\n\n* Fix indentation in line KibbleBit.updateSource\r\n\r\n* More configurable elasticsearch; add a versionhint in config.yaml for configuration initialization;\r\nMake KibbleWrapper classes private;i\r\nAllow EL 8.x configuration, currently (untested) basic authentication\r\nwith options;\r\nAdd debug traceback method in kibbleBit class;\r\nFix pyyaml 5.1+ requires Loader\u003d;\r\n\r\n* Explain source argument restriction, allow sourceURL\r\n\r\n* Fix condition, add self argument for class method traceback\r\n\r\n* Fix scan for github sources by adding empty steps key"
    },
    {
      "commit": "e33f59e37aedbcf757d95ec2fa22bb66f8076224",
      "tree": "fbdd7e772cb1d198dcc70c440a38f540935be4ee",
      "parents": [
        "4d581b106180664ce895108e2865cc37ada5fef8",
        "5fa43a869250dda79852f57947a14669afcab735"
      ],
      "author": {
        "name": "dfoulks1",
        "email": "48735727+dfoulks1@users.noreply.github.com",
        "time": "Mon Feb 13 12:50:38 2023 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 13 12:50:38 2023 -0600"
      },
      "message": "Merge pull request #8 from apache/christ/buildbot_scanner\n\nupdating buildbot api url"
    },
    {
      "commit": "5fa43a869250dda79852f57947a14669afcab735",
      "tree": "fbdd7e772cb1d198dcc70c440a38f540935be4ee",
      "parents": [
        "4d581b106180664ce895108e2865cc37ada5fef8"
      ],
      "author": {
        "name": "Chris Thistlethwaite",
        "email": "christ@apache.org",
        "time": "Tue Jan 17 17:27:44 2023 -0500"
      },
      "committer": {
        "name": "Chris Thistlethwaite",
        "email": "christ@apache.org",
        "time": "Tue Jan 17 17:27:44 2023 -0500"
      },
      "message": "updating buildbot api url\n"
    },
    {
      "commit": "4d581b106180664ce895108e2865cc37ada5fef8",
      "tree": "6faff60a801bac4a2688306c0c53816c45728270",
      "parents": [
        "2a8c00de493d4f9fbab8abd633622f08880b8e78"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Sun Mar 20 20:14:09 2022 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 20 20:14:09 2022 +0100"
      },
      "message": "main has recently become the default branch for git, so add that into the mix"
    },
    {
      "commit": "2a8c00de493d4f9fbab8abd633622f08880b8e78",
      "tree": "95ff415dbc170463d03214ec816629d4c39af1b6",
      "parents": [
        "6611d4e345bf871dc1cee27274a724701174dc0d"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Tue Jun 01 14:24:01 2021 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 01 14:24:01 2021 +0200"
      },
      "message": "Account for various connection hiccups that can happen"
    },
    {
      "commit": "6611d4e345bf871dc1cee27274a724701174dc0d",
      "tree": "84cf02ab86ed3ae90ef59a9d3ba9c08619db59d5",
      "parents": [
        "77c257262e1ca6e586b065e6dd30abb41eb36279",
        "6ed9254b467008460b3814768ec1684e410e83bf"
      ],
      "author": {
        "name": "Tomek Urbaszek",
        "email": "turbaszek@apache.org",
        "time": "Thu Mar 25 14:07:24 2021 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 25 14:07:24 2021 +0100"
      },
      "message": "Merge pull request #5 from erogol/patch-1\n\nUpdate requirements.txt"
    },
    {
      "commit": "6ed9254b467008460b3814768ec1684e410e83bf",
      "tree": "84cf02ab86ed3ae90ef59a9d3ba9c08619db59d5",
      "parents": [
        "77c257262e1ca6e586b065e6dd30abb41eb36279"
      ],
      "author": {
        "name": "Eren Gölge",
        "email": "erogol@hotmail.com",
        "time": "Wed Mar 24 11:43:23 2021 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 24 11:43:23 2021 +0100"
      },
      "message": "Update requirements.txt\n\nMissing ```pyyaml```"
    },
    {
      "commit": "77c257262e1ca6e586b065e6dd30abb41eb36279",
      "tree": "558cc25ba161b46575415c796b8d9c275d51096d",
      "parents": [
        "87dfe96212e85f0ae6982e25ec6aed066d7bdc45"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Sat May 02 08:44:02 2020 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 02 08:44:02 2020 -0500"
      },
      "message": "Remove try/except here, so we can catch raw python/ES errors"
    },
    {
      "commit": "87dfe96212e85f0ae6982e25ec6aed066d7bdc45",
      "tree": "116743d33c121ddb49908e4a0754ad7986ad6fb3",
      "parents": [
        "dd45d59449b6414760065dac439d514360bc4db4"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri May 01 17:13:10 2020 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 17:13:10 2020 -0500"
      },
      "message": "Update supported plugins"
    },
    {
      "commit": "dd45d59449b6414760065dac439d514360bc4db4",
      "tree": "5dcfc1705977019e1061ed9610d54949ca48eb88",
      "parents": [
        "6f316a93de7702cee34ff19a1c2b47b6e4767bc6"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri May 01 17:08:49 2020 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 17:08:49 2020 -0500"
      },
      "message": "We don\u0027t use bttf any longer, nix it"
    },
    {
      "commit": "6f316a93de7702cee34ff19a1c2b47b6e4767bc6",
      "tree": "3e7241f9960059663dc2a0f171baabd1064cafbb",
      "parents": [
        "c345691709233993bd9fa85201d1037384aadf4f"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri May 01 17:07:55 2020 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 17:07:55 2020 -0500"
      },
      "message": "Obvious fix: these parameters are never used, and cause forward compatibility issues. So, nix them.\n\nThanks to ncg81 for pointing this out."
    },
    {
      "commit": "c345691709233993bd9fa85201d1037384aadf4f",
      "tree": "64f66dd727af7bcb78d7a609cd5e607c0eda9150",
      "parents": [
        "ee37a9ff672053527746757af38ff511240918b3"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Mar 27 12:02:17 2020 -0500"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Mar 27 12:02:17 2020 -0500"
      },
      "message": "don\u0027t count folders as building (even if sub-projects are)\n"
    },
    {
      "commit": "ee37a9ff672053527746757af38ff511240918b3",
      "tree": "955d805a14e07a814db6077bc6dde89fedac61fd",
      "parents": [
        "097af86c09801d6122cc4bddb44fd10f12d79a4e"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Thu Mar 26 23:42:29 2020 -0500"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Thu Mar 26 23:42:29 2020 -0500"
      },
      "message": "rework Jenkins scanners to work with org folders and multibranch jobs\n"
    },
    {
      "commit": "097af86c09801d6122cc4bddb44fd10f12d79a4e",
      "tree": "e8d3e4e968b3f82b4a0ccab1c10c3c05a9512b99",
      "parents": [
        "5dd93539ef7e7149a719a7af8aa484e802678fff"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Sun Mar 15 11:38:15 2020 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 15 11:38:15 2020 -0500"
      },
      "message": "duration is in ms as well, so divide all of it by 1000"
    },
    {
      "commit": "5dd93539ef7e7149a719a7af8aa484e802678fff",
      "tree": "195074a156c248937f46c55c1e4444b914920548",
      "parents": [
        "86fabfb9dbef28d807fb1b74d3c52749aa95a27c"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Jul 17 12:59:35 2019 +0200"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Jul 17 12:59:35 2019 +0200"
      },
      "message": "fix old typo, pass on KibbleBit to allow for custom branch detection\n"
    },
    {
      "commit": "86fabfb9dbef28d807fb1b74d3c52749aa95a27c",
      "tree": "4643d29e605927d0294d4e434427dcceec0b965d",
      "parents": [
        "19ee562a4f917dcb3adf9603ce816ac50b50202f"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Jul 17 12:59:10 2019 +0200"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Jul 17 12:59:10 2019 +0200"
      },
      "message": "refactor branch detection, allow for custom config\n\n- Refactor branch detection to iterate over a set of wanted branches\n- Allow said branches to be defined in the main yaml.\n"
    },
    {
      "commit": "19ee562a4f917dcb3adf9603ce816ac50b50202f",
      "tree": "8312ea59972e9236561e946639c58c504e51b5eb",
      "parents": [
        "31ebcf3fcca0a40fa3205bf5e9a58022dc9f4fa3"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Jul 17 05:54:38 2019 +0200"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Jul 17 05:54:38 2019 +0200"
      },
      "message": "work around rate limits by sleeping it off\n\nIf we get hit by rate limits, first try to sleep it off in 5 minute\nintervals till we hopefully get refreshed limits, otherwise bail\nafter a max of 2 hours of waiting.\n"
    },
    {
      "commit": "31ebcf3fcca0a40fa3205bf5e9a58022dc9f4fa3",
      "tree": "bcd40ad6ae05fed3fbb2c161099229ea87028a19",
      "parents": [
        "ba6a37aa06d79b88636b72ba90e380cacc80585f"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Jul 17 05:53:28 2019 +0200"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Jul 17 05:53:28 2019 +0200"
      },
      "message": "forgot to pass along params!\n"
    },
    {
      "commit": "ba6a37aa06d79b88636b72ba90e380cacc80585f",
      "tree": "0e9c2c68c5e6b296e429bcbca8dfe0c3fba0a971",
      "parents": [
        "a07ff82fdb8a87a6103e965bdfbb3b3567384fb9"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Jul 17 05:50:30 2019 +0200"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Jul 17 05:50:30 2019 +0200"
      },
      "message": "tweak GitHub to work around abuse limitations\n\nIf we hit the abuse detection system, try to sleep it off a few times\nbefore finally bailing.\n"
    },
    {
      "commit": "a07ff82fdb8a87a6103e965bdfbb3b3567384fb9",
      "tree": "bbb21c002d60651a01c7f064c5c36eea0200a6a4",
      "parents": [
        "4e636d7de68129fe9eeb044467942b1bec701307"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Sun Jul 14 06:59:44 2019 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 14 06:59:44 2019 +0200"
      },
      "message": "Add timeouts for JSON requests\n\n- Add a default, hardcoded connection timeout (this apparently can prevent hangups on some debian/ubuntu systems)\r\n- Add a default timeout of 30 seconds for the read phase of the request as well."
    },
    {
      "commit": "4e636d7de68129fe9eeb044467942b1bec701307",
      "tree": "b64cf6df2ab3eb5808d862b1aa513c3c686b31cc",
      "parents": [
        "ff31052a40eb56b8fbca0fd3971e5a26b38642e8"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Jun 14 14:43:55 2019 +0200"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Jun 14 14:43:55 2019 +0200"
      },
      "message": "State who we actually are :)\n"
    },
    {
      "commit": "ff31052a40eb56b8fbca0fd3971e5a26b38642e8",
      "tree": "24a03af29c10650f406364a34e7d41fb5d4352cf",
      "parents": [
        "35aeeb015133d1eee297010cd0cbcaec687fbf6f"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Jun 14 14:06:42 2019 +0200"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Jun 14 14:06:42 2019 +0200"
      },
      "message": "Raise a ConnectionError, so we can catch it\n\nscanners are expecting a ConnectionError exception on failure,\nso let\u0027s make sure we raise that, and don\u0027t break scanning.\n"
    },
    {
      "commit": "35aeeb015133d1eee297010cd0cbcaec687fbf6f",
      "tree": "d5cc071b310344af12d90263d8f7f9d3e9cec24f",
      "parents": [
        "963a5d7f42b124c12a1855ac6a18712b7e1f182c",
        "083ed5975c1a83eb0eb4f86457c9718ae8b499a2"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Tue Jun 11 21:36:45 2019 +0200"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Tue Jun 11 21:36:45 2019 +0200"
      },
      "message": "Merge branch \u0027master\u0027 of github.com:apache/kibble-scanners\n"
    },
    {
      "commit": "963a5d7f42b124c12a1855ac6a18712b7e1f182c",
      "tree": "22a14c87d55f21d6762c40e14a4d20387659adfd",
      "parents": [
        "e6a4f86ee439a85f19c41d21576156f774983f71"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Tue Jun 11 21:36:19 2019 +0200"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Tue Jun 11 21:36:19 2019 +0200"
      },
      "message": "only fetch as json if not errored out.\n\nWe only expect JSON if we hit an okay response code.\nfor error responses, we are not interested in the JSON, raise exception\ninstead.\n"
    },
    {
      "commit": "083ed5975c1a83eb0eb4f86457c9718ae8b499a2",
      "tree": "1c5552b777e7e6b4c253a214a8a2fd1dcda94139",
      "parents": [
        "8988daea83f058f7c783351d7b93e22496817f0a"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Mon Jun 10 17:53:20 2019 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 10 17:53:20 2019 +0200"
      },
      "message": "consistency is not always a thing, ignore it..."
    },
    {
      "commit": "8988daea83f058f7c783351d7b93e22496817f0a",
      "tree": "cf5c360b03b5ed1a809e3685857f10f258391c15",
      "parents": [
        "c70d210a0e2257baef04819cf3938dacd2fcba8b"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Mon Jun 10 17:43:17 2019 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 10 17:43:17 2019 +0200"
      },
      "message": "copypasto"
    },
    {
      "commit": "c70d210a0e2257baef04819cf3938dacd2fcba8b",
      "tree": "3e26d24bea89093cb0a33996b3a05d78afc5f3b9",
      "parents": [
        "8de0240f41b1139949bef4ed72660e5543837d1e"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Mon Jun 10 17:42:41 2019 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 10 17:42:41 2019 +0200"
      },
      "message": "Adjust to work with ES \u003e\u003d 7.x (prepping for no doc_types at all in 8.x)"
    },
    {
      "commit": "8de0240f41b1139949bef4ed72660e5543837d1e",
      "tree": "e2cc80c8990bee482cdba5090b021e00c0e8c4b4",
      "parents": [
        "e6a4f86ee439a85f19c41d21576156f774983f71"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Apr 26 23:38:47 2019 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 26 23:38:47 2019 -0500"
      },
      "message": "Commit timestamps should have H:M:S as well, not just days"
    },
    {
      "commit": "e6a4f86ee439a85f19c41d21576156f774983f71",
      "tree": "1ba3e15201ca9af811451e4c573e8797dddf8865",
      "parents": [
        "64250cacd58e27244ad5b0d369be6eaf5631631f"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Thu Jan 24 22:17:10 2019 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Thu Jan 24 22:17:10 2019 +0100"
      },
      "message": "Try our best to respect and compromise on rate limiting, quietly fail otherwise\n"
    },
    {
      "commit": "64250cacd58e27244ad5b0d369be6eaf5631631f",
      "tree": "803cae16e7299db6fe8df483ae0fb566cd948169",
      "parents": [
        "5b6f9c7fc53ec83fb0a8e03695ebf2db1b8e0be6"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Jan 09 09:26:59 2019 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Jan 09 09:26:59 2019 +0100"
      },
      "message": "fix dependency notes\n\ndateutils is for the server, not the scanner\n"
    },
    {
      "commit": "5b6f9c7fc53ec83fb0a8e03695ebf2db1b8e0be6",
      "tree": "b1a1fa0f5fd68fd7a472e348410f520ec66777cf",
      "parents": [
        "183f5d1394c530d4a13761a3de21e73778353c1b"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Jan 09 09:23:09 2019 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Jan 09 09:23:09 2019 +0100"
      },
      "message": "Move to using cloc 1.76 as minimum\n\n- Change minimum required version of cloc for counting to 1.76\n- Start utilizing multiprocessing for cloc\n- Fix Readme to reflect this change, note that it\u0027s optional\n"
    },
    {
      "commit": "183f5d1394c530d4a13761a3de21e73778353c1b",
      "tree": "6e3f5504b6112d9e7df88bc9478fefc25784e9c5",
      "parents": [
        "754202a205e5d325759def7abd6e7f976d7dd527"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Jan 09 09:13:03 2019 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jan 09 09:13:03 2019 +0100"
      },
      "message": "Add command line options to readme"
    },
    {
      "commit": "754202a205e5d325759def7abd6e7f976d7dd527",
      "tree": "84e66a24b4bf94c3a9ba193fcda2920e212175b9",
      "parents": [
        "ac30427ace2767750c905883b7495304852190d3"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Mon Dec 31 06:25:37 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Mon Dec 31 06:25:37 2018 +0100"
      },
      "message": "tickets with these values are broken and need a rescan\n\nTickets with unknown@kibble are likely scanned with the\nold (broken) scanner, and we should redo them when\nencountered in the DB.\n"
    },
    {
      "commit": "ac30427ace2767750c905883b7495304852190d3",
      "tree": "d094efd73b227848a294e36f6f586148ec0ee014",
      "parents": [
        "2c32eea1ee4e9d81bddac286709290d65a127dab"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Mon Dec 31 05:50:32 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Mon Dec 31 05:50:32 2018 +0100"
      },
      "message": "Fake user email if nto provided by JIRA\n\nIn some instances, JIRA will have email visibility turned\noff for the REST API. In such instances, we should use the\ndomain of the JIRA instance and the username (which is still\nvisible to us) to fake an email address. While not perfect,\nthis still allows us to get a good unique count of actors.\n"
    },
    {
      "commit": "2c32eea1ee4e9d81bddac286709290d65a127dab",
      "tree": "0556eb75edf1798bcc421573675e7a8ab8391d76",
      "parents": [
        "4a7ea213318208a87ae21b3bd3c9595e00cd563a"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Sep 19 09:35:59 2018 +0200"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Sep 19 09:35:59 2018 +0200"
      },
      "message": "if we\u0027ve scanned before, only grab latest changes\n"
    },
    {
      "commit": "4a7ea213318208a87ae21b3bd3c9595e00cd563a",
      "tree": "9e9904223ced2e68c22e7ad89840f53b123be560",
      "parents": [
        "db88a8393fdbc81446286ee906de0f4a18b5efbf"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Sep 19 09:19:57 2018 +0200"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Sep 19 09:19:57 2018 +0200"
      },
      "message": "we need to sleep to avoid abusing github\n"
    },
    {
      "commit": "db88a8393fdbc81446286ee906de0f4a18b5efbf",
      "tree": "825eeade65a9f9a154ac7df9d40b31c7efbdd93e",
      "parents": [
        "6fc3f4cee4fc3a3fa7ab42ccd119029c3898282d"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Sep 19 09:12:51 2018 +0200"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Sep 19 09:12:51 2018 +0200"
      },
      "message": "this is extremely spammy when running manually :(\n\ndisable it for now\n"
    },
    {
      "commit": "6fc3f4cee4fc3a3fa7ab42ccd119029c3898282d",
      "tree": "0bd29d8e06c86d848a7e096e0b5b0070ab90114a",
      "parents": [
        "31a75c4793cfeb0b33fc83d06af9a7dd59c42c6d"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Sep 19 09:09:11 2018 +0200"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Sep 19 09:09:11 2018 +0200"
      },
      "message": "we should just pass the response text..\n"
    },
    {
      "commit": "31a75c4793cfeb0b33fc83d06af9a7dd59c42c6d",
      "tree": "c98bf553ca3ec5f2553a2cac070cb78a3e1b08fb",
      "parents": [
        "376c7cd92a95a6c858b51128ccf6ecf0aad6121d"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Sep 19 09:01:59 2018 +0200"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Sep 19 09:01:59 2018 +0200"
      },
      "message": "could be no auth was set..\n"
    },
    {
      "commit": "376c7cd92a95a6c858b51128ccf6ecf0aad6121d",
      "tree": "2588b9181a6b204ca239fd114d7783c04be96768",
      "parents": [
        "423b54c43340f56df3fa686df0505d3c945e5d28"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Sep 19 08:58:02 2018 +0200"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Sep 19 08:58:02 2018 +0200"
      },
      "message": "we\u0027re only interested in label names for now\n"
    },
    {
      "commit": "423b54c43340f56df3fa686df0505d3c945e5d28",
      "tree": "784e548b3c7b6a5ac247f493ad52946257ae2ccb",
      "parents": [
        "ff0253f2a30f6483b5c72ac4dd894cc834550b2c"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Sep 19 08:55:17 2018 +0200"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Sep 19 08:55:17 2018 +0200"
      },
      "message": "fix error logging\n\nwrong position of parens\n"
    },
    {
      "commit": "ff0253f2a30f6483b5c72ac4dd894cc834550b2c",
      "tree": "220371c87a36e15d66ff418d8506254a32d06366",
      "parents": [
        "1beda5dbc71a960d23fc6c7eed1e0a12bb63f89b"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Sep 19 08:39:35 2018 +0200"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Sep 19 08:39:35 2018 +0200"
      },
      "message": "wrong var name here\n"
    },
    {
      "commit": "1beda5dbc71a960d23fc6c7eed1e0a12bb63f89b",
      "tree": "3a3afe48d5e0af04a88fe4ac2667acc64b4fffbe",
      "parents": [
        "858733f239c2a90346a3c055ed205eb9c50c6e50"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Sep 12 13:40:52 2018 +0200"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Sep 12 13:40:52 2018 +0200"
      },
      "message": "oops, typo\n"
    },
    {
      "commit": "858733f239c2a90346a3c055ed205eb9c50c6e50",
      "tree": "520d7bdd1c5a61b520b91ea16900c9dd17b4ca41",
      "parents": [
        "52fbb8e79a2492011f46918a1a31827f7757db29"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Sep 12 12:16:09 2018 +0200"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Sep 12 12:16:09 2018 +0200"
      },
      "message": "add support for files changed as a list in each commit object\n"
    },
    {
      "commit": "52fbb8e79a2492011f46918a1a31827f7757db29",
      "tree": "97686ec528966f3450025182f20da9d37d6e59a7",
      "parents": [
        "899a7511473e7cd27adc64a637401daa5210c465"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Sun Sep 09 16:06:20 2018 +0200"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Sun Sep 09 16:06:20 2018 +0200"
      },
      "message": "handle closer key errors properly\n\nit\u0027s a dict...\n"
    },
    {
      "commit": "899a7511473e7cd27adc64a637401daa5210c465",
      "tree": "574eb5632a6fbec9d399e0ca59a5ebb71e7420f2",
      "parents": [
        "6aff99ddcc2ed72149cb0fe778b5b7c7e3d5ec7b"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Sun Sep 09 16:05:23 2018 +0200"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Sun Sep 09 16:05:23 2018 +0200"
      },
      "message": "closer may be null for imported issues\n"
    },
    {
      "commit": "6aff99ddcc2ed72149cb0fe778b5b7c7e3d5ec7b",
      "tree": "6eb0b92eb857c6d64e7fb57fd29d38296b84ecba",
      "parents": [
        "fdd5984370cf064fe3774c06ec92c3d1eb13f2d6"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Sun Sep 09 16:03:50 2018 +0200"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Sun Sep 09 16:03:50 2018 +0200"
      },
      "message": "bump default limits for tone/mood analysis\n"
    },
    {
      "commit": "fdd5984370cf064fe3774c06ec92c3d1eb13f2d6",
      "tree": "228da135401f90f53e4267e4a4e74393deb57f1e",
      "parents": [
        "2e67be04a9c5ecb4cdb87247d7ee9891e5030dd1"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Sun Sep 09 16:03:18 2018 +0200"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Sun Sep 09 16:03:18 2018 +0200"
      },
      "message": "fix key errors\n\nsometimes the assignee/reporter is set but no email address is\navailable, so just try to get it non-fatally.\n"
    },
    {
      "commit": "2e67be04a9c5ecb4cdb87247d7ee9891e5030dd1",
      "tree": "892b26d6adb3fec169dbb60b67aa06323b54f242",
      "parents": [
        "c3d634ec3ab8d2af042ca06c16db6305eacf7a18"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Mar 02 19:51:32 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Mar 02 19:51:32 2018 +0100"
      },
      "message": "prefer full name over username, if available\n\n- only store shortened bio if it\u0027s new\n- prefer full name over username if we find it.\n"
    },
    {
      "commit": "c3d634ec3ab8d2af042ca06c16db6305eacf7a18",
      "tree": "b8661629224dfda08b5647300db63c260454d97c",
      "parents": [
        "f6cf17e962f4a2eb2b755c245f0d2cb246dbb760"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Mar 02 16:46:28 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Mar 02 16:46:28 2018 +0100"
      },
      "message": "turns out this needs to be 0 for latest posts\n"
    },
    {
      "commit": "f6cf17e962f4a2eb2b755c245f0d2cb246dbb760",
      "tree": "07d0322faad196b5f63231a71bc5638b539d952b",
      "parents": [
        "21380bfc1a7c55b821866fa10afe9e840117ec41"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Mar 02 16:33:45 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Mar 02 16:33:45 2018 +0100"
      },
      "message": "add forum type, and a date-string field for histograms\n"
    },
    {
      "commit": "21380bfc1a7c55b821866fa10afe9e840117ec41",
      "tree": "6f66e5914967deaa4791f55ec448b505b0b4620c",
      "parents": [
        "79c51711874849d9fc9a6c793fa7b29c7964222a"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Mar 02 15:51:41 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Mar 02 15:51:41 2018 +0100"
      },
      "message": "don\u0027t kill the loop\n\nscope is wrong here. it should return True at the end,\nif the loop is successful, and False within the loop when\nan error occurs.\n"
    },
    {
      "commit": "79c51711874849d9fc9a6c793fa7b29c7964222a",
      "tree": "187557dbdcce1c7f52092ca1ebba1ec0903b14b5",
      "parents": [
        "36dd76133c00674d6b08f568e872ec690e2683c2"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Mar 02 15:46:53 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Mar 02 15:46:53 2018 +0100"
      },
      "message": "We can accept both version 1 and 2 atm\n\n...but 2 is obviously preferred!\n"
    },
    {
      "commit": "36dd76133c00674d6b08f568e872ec690e2683c2",
      "tree": "4f46dc85480224837d11cb20e5da846b38227f87",
      "parents": [
        "d4750da886f78e41a3d6ff9df8003d6bd1fa33bf"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Mar 02 15:44:01 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Mar 02 15:44:01 2018 +0100"
      },
      "message": "Rewrite broker class, inherit kibble UI wrapper\n\nInstead of doing checks constantly, we\u0027ll inherit the\nwrapper class from the UI repo. There are a few cases\nwhere we still have to manually do if/else (bulk and\napi checks), but the rest can be aliases.\n\nBump accepted DB version to 2.\n"
    },
    {
      "commit": "d4750da886f78e41a3d6ff9df8003d6bd1fa33bf",
      "tree": "0d1f4d78000f8e6ee42ab970e67eab4e1a0ddb14",
      "parents": [
        "9a94bde0e097247522bb2f0a169ed00f7b8b4072"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Mar 02 12:07:45 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Mar 02 12:07:45 2018 +0100"
      },
      "message": "Alignm with new DB format\n\nif the DB is typeless, write to it and fetch from it\naccordingly.\n"
    },
    {
      "commit": "9a94bde0e097247522bb2f0a169ed00f7b8b4072",
      "tree": "8de99499a654a7a0e02067d9663730ac08b79cb1",
      "parents": [
        "2468fc2b3a127a3551c26d8ebb5733a9a57c8954"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Mon Feb 26 20:49:33 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Mon Feb 26 20:49:33 2018 +0100"
      },
      "message": "store the person posting, d\u0027uh.\n"
    },
    {
      "commit": "2468fc2b3a127a3551c26d8ebb5733a9a57c8954",
      "tree": "5e81bd9cc1df7d84af2f005d441a7fc7859acb92",
      "parents": [
        "69ed9aacb90af5fb74befdee8e9f208a28b91c4c"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Mon Feb 26 20:47:54 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Mon Feb 26 20:47:54 2018 +0100"
      },
      "message": "be sure to actually store the post doc in ES\n"
    },
    {
      "commit": "69ed9aacb90af5fb74befdee8e9f208a28b91c4c",
      "tree": "b87f1e5a9bda74beb31f35a303ffbdccbf6b07c0",
      "parents": [
        "f8595af0cf00747bd6017720dba344cdfee44d28"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Mon Feb 26 20:21:28 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Mon Feb 26 20:21:28 2018 +0100"
      },
      "message": "remove spurious comment\n"
    },
    {
      "commit": "f8595af0cf00747bd6017720dba344cdfee44d28",
      "tree": "08e807db01412d0a4b770617bf441320b31b7764",
      "parents": [
        "91b41080265f81871915ef5b79a2e2e7d08b2624"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Mon Feb 26 20:20:16 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Mon Feb 26 20:20:16 2018 +0100"
      },
      "message": "Updates to JSON API\n\n- We want JSON, so specify that\n- Sometimes we need a token (like for Travis) instead of basic auth\n"
    },
    {
      "commit": "91b41080265f81871915ef5b79a2e2e7d08b2624",
      "tree": "60a0319eade74feda204cca14a856af46f44462f",
      "parents": [
        "b60230e36ebccc8262915c05d1679bf21bc39ecc"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Mon Feb 26 20:19:32 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Mon Feb 26 20:19:32 2018 +0100"
      },
      "message": "Add initial Discourse scanner plugin\n"
    },
    {
      "commit": "b60230e36ebccc8262915c05d1679bf21bc39ecc",
      "tree": "da7c98a42b89cd81ee16fd384ce5ff51bc362125",
      "parents": [
        "3f2e12526b987e7cc8d3c7976cbba3fe411381f6"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Feb 23 09:32:56 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Feb 23 09:32:56 2018 +0100"
      },
      "message": "Try to grab the different states of \u0027started\u0027 jobs\n\nhopefully I got this right and we\u0027ll be able to see the\ndiff between started and queued/blocked builds.\n"
    },
    {
      "commit": "3f2e12526b987e7cc8d3c7976cbba3fe411381f6",
      "tree": "2be2d13f6e3a93a03422b9cb38111f4f779ad314",
      "parents": [
        "45d448e5a73a1dc44cdc687ef163f50cb224beff"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Feb 21 20:26:06 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Feb 21 20:26:06 2018 +0100"
      },
      "message": "this should use kibble\u0027s pprinter\n"
    },
    {
      "commit": "45d448e5a73a1dc44cdc687ef163f50cb224beff",
      "tree": "696e6692eb57fcc84b2d6b9cf872c96d477f1614",
      "parents": [
        "22967d9ffc13f72b7edf686340f84a35398893f5"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Feb 21 20:24:53 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Feb 21 20:24:53 2018 +0100"
      },
      "message": "need to return true here\n\nthis isn\u0027t a failed position to be in.\n"
    },
    {
      "commit": "22967d9ffc13f72b7edf686340f84a35398893f5",
      "tree": "bd763b81367406c0cf1def6a98bc5715fd76d476",
      "parents": [
        "a337953fda97110f653e61421a8f29a10a716861"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Feb 21 20:23:12 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Feb 21 20:23:12 2018 +0100"
      },
      "message": "break if we hit the end\n\ncontinue is a bad choice, we need a clean break out of the loop\n"
    },
    {
      "commit": "a337953fda97110f653e61421a8f29a10a716861",
      "tree": "98892a818e55d9bd7a7cc45a50969d7b68d30a14",
      "parents": [
        "a16c3266261aa87bab34780ae43385f2226f2304"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Feb 21 19:37:45 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Feb 21 19:37:45 2018 +0100"
      },
      "message": "the job URL needs to be consistent, tweak it\n"
    },
    {
      "commit": "a16c3266261aa87bab34780ae43385f2226f2304",
      "tree": "0fc9087a8f514d971cef2ef32e1be9eec327dd40",
      "parents": [
        "fc3bc2fd28af7379776c8e3f990f9e3e87b11290"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Feb 21 19:29:58 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Feb 21 19:29:58 2018 +0100"
      },
      "message": "reverse logic, fix a string\n"
    },
    {
      "commit": "fc3bc2fd28af7379776c8e3f990f9e3e87b11290",
      "tree": "441bffb90c5c1a575621b849e13e869cdf740348",
      "parents": [
        "ab09e4000020c98cc006131cebe6d8fee79e78be"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Feb 21 19:25:37 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Feb 21 19:25:37 2018 +0100"
      },
      "message": "scan all previous jobs, if that makes sense\n\nif we haven\u0027t scanned older jobs before, we scan them all.\nThis has some built-in logic that cancels a full scan\nif we\u0027re on page 2 or above and find a build that we\u0027ve seen\nbefore, or if travis tells us to stop.\n"
    },
    {
      "commit": "ab09e4000020c98cc006131cebe6d8fee79e78be",
      "tree": "cc72f63a7c8f4b67b81e5618e83c2ae6d8c89f0e",
      "parents": [
        "88bc6d8daaa39df2c4065f7dd362e20b5587e598"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Feb 21 16:12:31 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Feb 21 16:12:31 2018 +0100"
      },
      "message": "queue size should reflect multibuilds\n\nsome jobs have multiple builds, which all increase\nthe queue size (I\u0027d think?). So let\u0027s multiply queue\nsize by number of concurrent jobs.\n"
    },
    {
      "commit": "88bc6d8daaa39df2c4065f7dd362e20b5587e598",
      "tree": "177e56153dde23b6de5b9cb55043cfa5bab3c5d8",
      "parents": [
        "36641888c14030d57a928de70f9a82211564d848"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Feb 21 15:31:55 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Feb 21 15:31:55 2018 +0100"
      },
      "message": "Add initial WIP Travis CI Scanner\n\nH/T to Pono for the help here.\n"
    },
    {
      "commit": "36641888c14030d57a928de70f9a82211564d848",
      "tree": "96152d5ab3ac592edd26711185fd2facc5f7c1a3",
      "parents": [
        "a0ed2454a172d846729e7e413f9ca822c6d7886e"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Feb 21 10:48:25 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Feb 21 10:48:25 2018 +0100"
      },
      "message": "don\u0027t bork if color isn\u0027t present\n"
    },
    {
      "commit": "a0ed2454a172d846729e7e413f9ca822c6d7886e",
      "tree": "9435a4b8c5a8e208309bd4526478e30dfaec37cb",
      "parents": [
        "b684c79b0009f9aa8e148cdf7fe3e035cd6cda03"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Feb 21 10:46:41 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Feb 21 10:46:41 2018 +0100"
      },
      "message": "allow for excluding scanner types with -e flag\n"
    },
    {
      "commit": "b684c79b0009f9aa8e148cdf7fe3e035cd6cda03",
      "tree": "82b0af5bcf1a136130d5d88fd91131ac6ced3f93",
      "parents": [
        "9a5f34c4c8ae45c291f8e3c4998af101545a0174"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Mon Feb 19 12:56:12 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Mon Feb 19 12:56:12 2018 +0100"
      },
      "message": "also count jobs building at the moment\n"
    },
    {
      "commit": "9a5f34c4c8ae45c291f8e3c4998af101545a0174",
      "tree": "c49fc8743737195a3ff950b3d1ccd03e02cbe046",
      "parents": [
        "fd9e921cdc51d5aef467057d915283aa7cd1ef46"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Sat Feb 17 10:29:55 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Sat Feb 17 10:29:55 2018 +0100"
      },
      "message": "Add in preliminary buildbot scanner\n\nThis isn\u0027t as advanced as the jenkins scanner (queues are\nrather opaque in buildbot), but it\u0027ll show stuck builds,\nas well as builds by duration/count.\n"
    },
    {
      "commit": "fd9e921cdc51d5aef467057d915283aa7cd1ef46",
      "tree": "bfc029349a2bad8f631f98a2b69721995f0b2bb2",
      "parents": [
        "103755f4cffeefa48b5224807e5c7f8f95c3fe4e"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Feb 16 19:25:32 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Feb 16 19:25:32 2018 +0100"
      },
      "message": "we need the jobURL, which is unique to a job\n\nThis is so we can sum up build durations per job,\nand sort them per CI (thus, if both Jenkins and Travis, for example, has\na job with the same name, we\u0027ll split them)\n"
    },
    {
      "commit": "103755f4cffeefa48b5224807e5c7f8f95c3fe4e",
      "tree": "00064410ca8048fc702eb2091e7afe3734911a3a",
      "parents": [
        "cf24721f7ebe219e20266d0c0f13204510129671"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Feb 16 19:18:17 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Feb 16 19:18:17 2018 +0100"
      },
      "message": "add a timestamp for when we think the build finished.\n"
    },
    {
      "commit": "cf24721f7ebe219e20266d0c0f13204510129671",
      "tree": "e1d5c3160d8b5932b4536735b6ee193b108c7863",
      "parents": [
        "5229665a4392ca7918b850704e4261fd50c63736"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Feb 16 19:16:10 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Feb 16 19:16:10 2018 +0100"
      },
      "message": "remove debug return\n\nwe want this to actually scan :)\n"
    },
    {
      "commit": "5229665a4392ca7918b850704e4261fd50c63736",
      "tree": "d1b9d942d09cdecc5e8bd669c080bf1e64e9102f",
      "parents": [
        "55857782c37b525f3a1b5b02c8867cc08805c86b"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Feb 16 19:06:01 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Feb 16 19:06:01 2018 +0100"
      },
      "message": "fix queue avg calc, add date key\n\navg needs to use max, not min.\nadd date, so we can do aggregations on dates\n"
    },
    {
      "commit": "55857782c37b525f3a1b5b02c8867cc08805c86b",
      "tree": "847f20754de5a14ab6a9a22d42209f88eb58b04f",
      "parents": [
        "29c9a41be969f73322876f9d1b192aa31204e18d"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Feb 16 13:13:35 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Feb 16 13:13:35 2018 +0100"
      },
      "message": "Add a generic Jenkins scanner\n\nThis archives jobs done, queue size, avg wait time,\nbuilds stuck/blocked and so on.\n"
    },
    {
      "commit": "29c9a41be969f73322876f9d1b192aa31204e18d",
      "tree": "80698b70da267612a02c162b348a3aa47fe39fb5",
      "parents": [
        "0a0bedb908a487d958105e4f2a8e7758d77fc252"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Mon Jan 15 17:19:17 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Mon Jan 15 17:19:17 2018 +0100"
      },
      "message": "we can\u0027t work on a jira ticket without fields data\n"
    },
    {
      "commit": "0a0bedb908a487d958105e4f2a8e7758d77fc252",
      "tree": "f6163e914aa74cf64f116973fb74230b14f8472a",
      "parents": [
        "31eb19dc62d12c3e88d06a9f25ccc08ad3bc97f7"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Tue Jan 09 02:37:27 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Tue Jan 09 02:37:27 2018 +0100"
      },
      "message": "If not key phrases, put _NULL_ to avoid breaking ES\n\nES does not seem to like empty sets here, so we\u0027ll\nput _NULL_ in there when no phrases were found,\nand ignore that in the UI.\n"
    },
    {
      "commit": "31eb19dc62d12c3e88d06a9f25ccc08ad3bc97f7",
      "tree": "2e158b098c438c1b75b5fb9e73f0fe00646a940d",
      "parents": [
        "9e3ecdf73602892ec220b32f109b9ee0af1f368f"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Tue Jan 09 01:55:07 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Tue Jan 09 01:55:07 2018 +0100"
      },
      "message": "better quote removal\n"
    },
    {
      "commit": "9e3ecdf73602892ec220b32f109b9ee0af1f368f",
      "tree": "a835c2c1c938e319ebb7712238e73b15bbacad5a",
      "parents": [
        "4d5a09a2a82769e6d22feca565765750391b8471"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Tue Jan 09 01:48:41 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Tue Jan 09 01:48:41 2018 +0100"
      },
      "message": "Better trimming of unnecessary text elements\n\nWe don\u0027t want to be analysing:\n- quotes\n- \"on $date, bla bla wrote\" sort of sentences\n- URLs, email addresses\n"
    },
    {
      "commit": "4d5a09a2a82769e6d22feca565765750391b8471",
      "tree": "48f4be8c4f4c405893491da1a17261539ae5e790",
      "parents": [
        "23839ca993ea16c7e0cbc8f39935eb52e6b03aad"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Tue Jan 09 01:32:31 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Tue Jan 09 01:32:31 2018 +0100"
      },
      "message": "forgot to add kpe to init.py\n"
    },
    {
      "commit": "23839ca993ea16c7e0cbc8f39935eb52e6b03aad",
      "tree": "b595a8d2ea8d74c811cb022a1f8bf65327d90aa1",
      "parents": [
        "aeae757e939c2ac4ac94d3b7cb7dd2fcc467acbf"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Tue Jan 09 01:29:09 2018 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Tue Jan 09 01:29:09 2018 +0100"
      },
      "message": "Initial stab at KPE for Kibble\n\nThis only supports pony mail so far.\nWe\u0027ll have to work on support for Pipermail etc\n"
    },
    {
      "commit": "aeae757e939c2ac4ac94d3b7cb7dd2fcc467acbf",
      "tree": "563afa28e260132e612216e02ab27460ccac4769",
      "parents": [
        "eac4ef9944e37cf4452701725efaf9280732426d"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Dec 29 12:02:44 2017 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Dec 29 12:02:44 2017 +0100"
      },
      "message": "additional emotional weighting available\n"
    },
    {
      "commit": "eac4ef9944e37cf4452701725efaf9280732426d",
      "tree": "4c4f2965c126d46d22976a4bcd231a385950cf4c",
      "parents": [
        "5be26b73818604407ea93a81d391dc59bb450639"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Dec 08 19:39:14 2017 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Dec 08 19:39:14 2017 +0100"
      },
      "message": "there\u0027s a value for this too.\n"
    },
    {
      "commit": "5be26b73818604407ea93a81d391dc59bb450639",
      "tree": "7009ed25d56d7acf9ecc51ed006cd449432f954e",
      "parents": [
        "047075c36a092bd8363a0486bb4b6927ad4825b9"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Dec 08 13:48:37 2017 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Dec 08 13:48:37 2017 +0100"
      },
      "message": "picoAPI has scores for positivity/negativity, let\u0027s use those\n"
    },
    {
      "commit": "047075c36a092bd8363a0486bb4b6927ad4825b9",
      "tree": "702ba2aaa7274ceb28a0fec9aa84979495641f71",
      "parents": [
        "0d3300b0eeba4e89a001d6aa01b1ed73e409c02a"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Dec 08 13:12:02 2017 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Dec 08 13:12:02 2017 +0100"
      },
      "message": "weave picoAPI into pm-tone\n"
    },
    {
      "commit": "0d3300b0eeba4e89a001d6aa01b1ed73e409c02a",
      "tree": "8cc6864a4a3b809f518164a7dc1c31fb32946d2b",
      "parents": [
        "387628ae50f13a266cb6a8c16d26621f278d7188"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Dec 08 13:11:05 2017 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Dec 08 13:11:05 2017 +0100"
      },
      "message": "add support for picoAPI sentiment analysis\n\nThe more the merrier\n"
    },
    {
      "commit": "387628ae50f13a266cb6a8c16d26621f278d7188",
      "tree": "6cd0fa7299849c6c44c01a0b160aac99142e044a",
      "parents": [
        "d49c1e798f3d51da1a9ac614362846ccd3e42f3d"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Thu Dec 07 11:36:10 2017 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Thu Dec 07 11:36:10 2017 +0100"
      },
      "message": "bump the limit from 1 email to 100 per scan at max\n"
    },
    {
      "commit": "d49c1e798f3d51da1a9ac614362846ccd3e42f3d",
      "tree": "141cd39b8046725298f462ddb5c0c88435b99d6b",
      "parents": [
        "cd0819008e0d55a11345ff90d76238f1a87fca04"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Thu Dec 07 11:35:50 2017 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Thu Dec 07 11:35:50 2017 +0100"
      },
      "message": "get ponymail-tone scanner to work with lib changes\n\ngrab all bodies, array them up, then scan them all at once\n"
    },
    {
      "commit": "cd0819008e0d55a11345ff90d76238f1a87fca04",
      "tree": "d68c3352aa2117001a3019701d9c459e8c4a1c16",
      "parents": [
        "ecc80ce1e3c4dee8afb0cc9a2cda434021686c65"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Thu Dec 07 11:35:24 2017 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Thu Dec 07 11:35:24 2017 +0100"
      },
      "message": "rework tone lib to accept an array of bodies\n\nAzure accepts up to 1000 bodies at the same time to\nspeed up and prevent rate limits, so let\u0027s make use of that.\nalso rework the watson to accept an array, even through\nit\u0027s still one call per body.\n"
    },
    {
      "commit": "ecc80ce1e3c4dee8afb0cc9a2cda434021686c65",
      "tree": "6d7b177072e18c3903498b7d57fce9c0cedb7de6",
      "parents": [
        "a4f651b17878092242311625cb7c5393b3e9223e"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Thu Dec 07 11:13:59 2017 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Thu Dec 07 11:13:59 2017 +0100"
      },
      "message": "account for azure rate limiting\n"
    },
    {
      "commit": "a4f651b17878092242311625cb7c5393b3e9223e",
      "tree": "1225dc0e11d52d3fb027b8e5bb9042a646bd0fa3",
      "parents": [
        "a3f70b13e6333112dbffe3f320755dc4f47f3259"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Thu Dec 07 10:58:15 2017 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Thu Dec 07 10:58:15 2017 +0100"
      },
      "message": "ensure that azure returns a valid response\n"
    },
    {
      "commit": "a3f70b13e6333112dbffe3f320755dc4f47f3259",
      "tree": "b2d7c244e4cb009cc90e4af01a636cf41283d6ed",
      "parents": [
        "201b8aac2dff7dfd5953e4892b2d8047e4a1a854"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Thu Dec 07 10:56:05 2017 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Thu Dec 07 10:56:05 2017 +0100"
      },
      "message": "this needs to be a string representation\n"
    },
    {
      "commit": "201b8aac2dff7dfd5953e4892b2d8047e4a1a854",
      "tree": "bbcf2c81d85be811e0f1c45e45b967c7c5edb362",
      "parents": [
        "6f15f8a25614b5b0a67699e70d6b386dc2b15c65"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Dec 06 23:52:01 2017 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Dec 06 23:52:01 2017 +0100"
      },
      "message": "add commented out example watson/azure creds\n"
    },
    {
      "commit": "6f15f8a25614b5b0a67699e70d6b386dc2b15c65",
      "tree": "4deec4d935390ddedc7aab89a2969a19582698c6",
      "parents": [
        "7c57f8c85fa510931d55eb28c404fd92d3ee7938"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Dec 06 23:49:02 2017 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Dec 06 23:49:02 2017 +0100"
      },
      "message": "also add azure text analysis option\n\nrename watson\u0027s to watsonTone.\n"
    },
    {
      "commit": "7c57f8c85fa510931d55eb28c404fd92d3ee7938",
      "tree": "d826fbc79aab60b040efd0f2778e90607870f880",
      "parents": [
        "8f6483f6589cd162d9af1b45c99ef47fecd8d15f"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Dec 06 12:13:25 2017 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Dec 06 12:13:25 2017 +0100"
      },
      "message": "catch exception and store in db if we fail to scan\n"
    },
    {
      "commit": "8f6483f6589cd162d9af1b45c99ef47fecd8d15f",
      "tree": "b7272a0caee1630dbc458ef342bf28d64e35c436",
      "parents": [
        "fbe036da95d6cefe36f366595f8c82c4d7e6b0f4"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Dec 06 12:12:02 2017 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Dec 06 12:12:02 2017 +0100"
      },
      "message": "report when we\u0027re done scanning\n"
    },
    {
      "commit": "fbe036da95d6cefe36f366595f8c82c4d7e6b0f4",
      "tree": "4d955cf835022651c5164f7cbc3847f684b62a42",
      "parents": [
        "9e53ef31472dac1776b84ccc76441b8087613002"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Dec 06 12:11:02 2017 +0100"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Dec 06 12:11:02 2017 +0100"
      },
      "message": "^- (merghebegin work on a PoC twitter scanner\n\nmight be replaced with a streams container, but for now we\u0027ll\nhave something to work with, data-wise.\n"
    }
  ],
  "next": "9e53ef31472dac1776b84ccc76441b8087613002"
}
