)]}'
{
  "log": [
    {
      "commit": "81202d81ea1321dab6f335e482f4733e0b82a183",
      "tree": "b1a36b4e99cd4e3331b575f70646307e24f32b59",
      "parents": [
        "9becf829f6f61cf81bbbe5ad9c785b9917fcc664"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Mon Jul 29 21:35:14 2019 -0700"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Mon Jul 29 21:35:56 2019 -0700"
      },
      "message": "Add \u0027patent\u0027 to the set of contract words.\n\nChange-Id: I3a4c2d10b5236a61e65292ce71c7a994c3f6213f\n"
    },
    {
      "commit": "9becf829f6f61cf81bbbe5ad9c785b9917fcc664",
      "tree": "6229f53f1e4fd2a5320fbc52a25af4c5ad4493dd",
      "parents": [
        "1e38154c1b378cca567e46df4f82b3b46e115c0c"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Mon Jul 29 16:24:35 2019 -0700"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Mon Jul 29 17:01:43 2019 -0700"
      },
      "message": "Apply recent changes to internal version here.\n\nAdd more known licenses.\n\nAdd support for .pom files.\n\nImprove coverage etc.\n\nChange-Id: I90868950930b3a4df1b119c58d47dce0e2d714c3\n"
    },
    {
      "commit": "1e38154c1b378cca567e46df4f82b3b46e115c0c",
      "tree": "d9ee946c49968af075925d497acc75356933191f",
      "parents": [
        "b2c4f2793a6e3ecd9e3b987ef1e97367e8f13684"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Wed Jul 24 15:11:41 2019 -0700"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Wed Jul 24 15:27:12 2019 -0700"
      },
      "message": "Play better with automatic rotations.\n\nIf a rotation alias is added to REVIEWER, the rotation feature will\nmove it to CC. Moving it back to REVIEWER could trigger adding\nanother reviewer for each revision. Don\u0027t add a reviwer if already\nin reviewers list.\n\nUpgraded CopyrightPatternsTest to the latest version of Truth to fix\nbroken test.\n\nChange-Id: Ifd31baad8e9031c1d4b50ad766f93d2c99349691\n"
    },
    {
      "commit": "b2c4f2793a6e3ecd9e3b987ef1e97367e8f13684",
      "tree": "fea0d08895e02169bcb8fcbd5ad004d496229d8a",
      "parents": [
        "fa887a0bb22e90ff5001bdaa45828fca03a6aa28"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Tue Jul 23 13:57:12 2019 -0700"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Tue Jul 23 13:58:43 2019 -0700"
      },
      "message": "Fix build breakage: MetricMaker Field constructors changed.\n\nChange-Id: Ib5aeb76e2559c64187924380d3fd890869ed6270\n"
    },
    {
      "commit": "fa887a0bb22e90ff5001bdaa45828fca03a6aa28",
      "tree": "11547a986555ed6735cfc9318a1b4917e76f946a",
      "parents": [
        "9edeb09e9a13a0c73c1df2f873eff783bbe30582"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri May 24 12:03:13 2019 -0700"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Tue Jun 11 13:28:15 2019 -0700"
      },
      "message": "Copyright plugin source.\n\nTouched all the source for the copyright plugin for gerrit team review.\n\nOmitted .../testdata/archives/ which contains binary archives\ncontaining files from .../testdata/licenses/\n\nChange-Id: Ifdc8aae584598ad4ce1f8c8372468b51fb593a4d\n"
    },
    {
      "commit": "9edeb09e9a13a0c73c1df2f873eff783bbe30582",
      "tree": "c13247284dc9e166091625cca5462c65f453b939",
      "parents": [
        "394707dc43b4b1872e97cb6edb43a66151e94899"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Thu May 23 17:06:12 2019 -0700"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri May 24 00:14:49 2019 +0000"
      },
      "message": "Remove prefix per hanwen@ -- automatically added.\n\nThe plugin prefix is automatically added by the MetricMaker bound to\nplugins.\n\nChange-Id: I0442167b4a02f30b4126a0c3e947b6c61b1352d5\n"
    },
    {
      "commit": "394707dc43b4b1872e97cb6edb43a66151e94899",
      "tree": "770e750a941230a808e874f12b895d5d3509d3fd",
      "parents": [
        "854fe1da37d3e92ed683d1b90fc889b5f38976ad"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Thu May 23 15:52:52 2019 -0700"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Thu May 23 15:54:26 2019 -0700"
      },
      "message": "Fix test failures at head.\n\nGroup uuid code copied from Groups acceptance tests no good in this\ncontext.\n\nChange-Id: I73abe808d046753d788fb9a42f47ee2025edfdf8\n"
    },
    {
      "commit": "854fe1da37d3e92ed683d1b90fc889b5f38976ad",
      "tree": "d487c1dbb58141042ee23ab39fd975974248ea33",
      "parents": [
        "596df9f8efcec231b0047b6a3f4579623464b351"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Wed May 01 16:56:40 2019 -0700"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Wed May 01 16:58:31 2019 -0700"
      },
      "message": "Apply refactorings and upgrade bazlets to latest\n\nUpgrade bazlets to latest master to build with 3.0.0-rc1 API\n\nChange-Id: I44a1ba8efb163894641694a614bc1ce4015b4a45\n"
    },
    {
      "commit": "596df9f8efcec231b0047b6a3f4579623464b351",
      "tree": "7f58196bebbb14e0e759d7344268222a2db98804",
      "parents": [
        "1a0ec839414a67da61033d7fb0a7e8dba89c1246"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Wed May 01 15:56:40 2019 -0700"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Wed May 01 15:58:21 2019 -0700"
      },
      "message": "Start documentation + add eclipse support\n\nCopied eclipse support from uploadvalidator plugin.\n\nStarted the plugin documentation.\n\nChange-Id: I74c0560974060c8b42ea22a35cf1f75d8b88a2cb\n"
    },
    {
      "commit": "1a0ec839414a67da61033d7fb0a7e8dba89c1246",
      "tree": "470f3be1612ded3e99e69638956116cb0949068c",
      "parents": [
        "be4480149b7454b4d3b2befb715c1c1b7e7139fa"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Wed May 01 14:34:51 2019 -0700"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Wed May 01 14:37:21 2019 -0700"
      },
      "message": "Fix dual build: switch to EasyMock + fix NPE\n\nCannot get dual build to work with mockito -- switch to EasyMock.\n\nDiscovered NullPointerException while testing change -- fixed.\n\nChange-Id: I1fc9da05b83258e9761e8e348c9e17e53aa57788\n"
    },
    {
      "commit": "be4480149b7454b4d3b2befb715c1c1b7e7139fa",
      "tree": "7583efba3514971a2991998c79d66cd6e25d3def",
      "parents": [
        "d1cd28111e8d58e5074f0aa8e9ffe1c1a8356de1"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Mon Apr 29 22:12:22 2019 -0700"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Tue Apr 30 05:36:01 2019 +0000"
      },
      "message": "CopyrightValidator to scan uploaded files.\n\nCopyright plugin part 3 of 3: CopyrightValidator scans each new\nrevision looking for copyright author/owner or license declarations.\n\nWhenever it finds a copyright declaration that might not be allowed, it\nrequires special review by voting down a configured label and by adding\na configured reviewer.\n\ne.g. If it finds a third-party license or owner outside of the projects\nwhere third-party code is allowed, it requires special review.\n\nIf it finds a forbidden or unknown license anywhere, it requires\nspecial review.\n\nIf it finds a first-party license--including first-party licensed code\nfrom a third-party, it notes the findings but requires no special\nreview.\n\netc.\n\nChange-Id: Ia272fd02b3f38c5649dfc9fd8cbe3521cdfa4efc\n"
    },
    {
      "commit": "d1cd28111e8d58e5074f0aa8e9ffe1c1a8356de1",
      "tree": "1cb796e373cd28d241e32b4137a077ea90693bfd",
      "parents": [
        "27c2e533d20167717a1e5f640d507028e06be572"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Apr 26 15:35:25 2019 -0700"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Apr 26 15:38:58 2019 -0700"
      },
      "message": "Fix standalone build: add Module and workspace\n\nChange-Id: I7e163453d20a059e57b9433c08b0970d11fa1cc1\n"
    },
    {
      "commit": "27c2e533d20167717a1e5f640d507028e06be572",
      "tree": "1b5f43a5a9bbe33f503f4dfa68b10ace936896e2",
      "parents": [
        "76053db02600edbe7e6cfb84244c89d2fbd9452d"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Wed Apr 24 17:10:25 2019 -0700"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Thu Apr 25 22:44:44 2019 +0000"
      },
      "message": "CopyrightConfig to manage plugin configurations.\n\nCopyright plugin part 2 of 3: CopyrightConfig manages and validates\nplugin configurations described in the gerrit.config file, and in the\nAll-Projects project.config and groups files.\n\nScannerConfig wraps all of the parameters needed for scanning files.\n\nCheckConfig wraps facilitates validation of the configuration. It also\nprovides the main entry point for a command-line tool to check for\nperformance-harming regular expression patterns.\n\nWhen a new configuration changes the scanner pattern, the gerrit server\nmay be configured to require the submitter run the command-line tool\nand copy its output to the commit message. By default, the server will\nrequire this process, which can be turned off by making the timeTestMax\nvalue 0.\n\nChange-Id: I82c034be01b9b33b1f57041627d6065e27b021db\n"
    },
    {
      "commit": "76053db02600edbe7e6cfb84244c89d2fbd9452d",
      "tree": "47709cef6a31a5bf065f276999151b26cbd5d284",
      "parents": [
        "f7af4b178d645dcc8b85d074522e638fb97e6241"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Tue Apr 16 21:48:00 2019 -0700"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Wed Apr 17 17:21:41 2019 -0700"
      },
      "message": "CopyrightReviewApi to update gerrit review threads.\n\nCopyright plugin part 1 of 3: CopyrightReviewApi manages and updates\ngerrit code review threads with findings found in new pushed revisions.\n\nCopyrightConfig is a stripped down shell of only what is needed for\nCopyrightReviewApi and its tests to build and run. Part 2 will expand\nCoprightConfig with listeners and code to parse, validate and load\nplugin/scanner configurations.\n\nPart 3 will introduce CopyrightValidator to scan the files in pushed\nrevisions.\n\nChange-Id: I54f1f69edff19404ecec4f09f21e4ba0051a0b1c\n"
    },
    {
      "commit": "f7af4b178d645dcc8b85d074522e638fb97e6241",
      "tree": "686be1db6069d7ab2d6e78bf0aa9e55bdb57cb79",
      "parents": [
        "86f1eb183856795858c69a19963685044c74a310"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Tue Apr 16 01:18:55 2019 -0700"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Tue Apr 16 01:39:39 2019 -0700"
      },
      "message": "Fix shell script directories.\n\nThe build flags affect the `bazel info bazel-bin` output and must match\nthose used during `bazel build`.\n\nThe path to the files from the data attribute of the build rule differs\nwhen built from gerrit than when built from plugins/copyright, but the\ndifferences are reflected in the ${TEST_BINARY} dirname.\n\nChange-Id: Ide5bb8abdb39c5835b3b9a00b1f67abf2a0e7e46\n"
    },
    {
      "commit": "86f1eb183856795858c69a19963685044c74a310",
      "tree": "36a63aaa9de80a05b190cfef1a62dbcefe8bb656",
      "parents": [
        "550b761b3ffe71a3dcc0f78975636165ca5739a7"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Wed Mar 27 17:09:25 2019 -0700"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Mar 29 14:36:25 2019 -0700"
      },
      "message": "Shell script to ease scans from the command-line.\n\nPerforms copyright scan on each of the command-line arguments.\n\nIf the argument is a directory, scans all of the files contained in the\ndirectory or in subdirectories.\n\nIf the argument is a file, scans the file.\n\nThe script tries to see through symbolic links to the actual\ndestination path.\n\nUse the --deep flag to extract and scan files embedded in archives.\n\nOr the --nodeep to turn off deep scanning for subsequent command-line\narguments.\n\nChange-Id: Iba04ead63c876f6e6020cfc40d2933002a3ee70f\n"
    },
    {
      "commit": "550b761b3ffe71a3dcc0f78975636165ca5739a7",
      "tree": "a70aab8853e8436cc459577d233c1827ad5e19e0",
      "parents": [],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Tue Mar 26 20:07:36 2019 -0700"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Wed Mar 27 12:40:02 2019 -0700"
      },
      "message": "Initial release of copyright scanner library\n\nThis copyright scanner library has been developed for the purpose of\ncreating a plugin to ensure necessary review when new revisions may\nintroduce copyrighted files that are not compliant with a project\u0027s\npolicies around copyright.\n\nInitially targeted at the AOSP gerrit instances with the intent to\nexpand to other Google-owned instances, the plugin will be completely\nconfigurable.\n\nBest practices identify allowed copyrights as first party or third\nparty, and restrict third party copyrights to specific locations.\n\nSee for example: https://opensource.google.com/docs/thirdparty/\n\nRevisions containing only first-party code do not require special\nreview.\n\nRevisions to files in locations where third-party code is allowed that\nconsist entirely of first-party code or appropriately licensed\nthird-party code do not require special review.\n\nRevisions to files outside locations where third party licenses are\nallowed that appear to have third party licenses will require special\nreview to verify they are false positives, or a qualified reviewer may\nreject the commit.\n\nChanges to files that seem to introduce unknown or forbidden licenses\nlikewise require special review. A qualified reviewer may determine\nthat an unknown license has acceptable terms and allow it. The reviewer\nmay determine the match is a false positive or reject the change.\n\nSee for example: https://opensource.google.com/docs/thirdparty/licenses/\nand: https://opensource.google.com/docs/using/agpl-policy/\n\nThis commit does not include the plugin. It releases the copyright\nscanner library. The library has been extensively tested and used\ninternally for analyzing content on AOSP hosts.\n\nThe library and associated command-line tool supports deep scans into\narchive files (.zip, .jar, .apk etc.); however, the plugin will perform\nonly shallow scans.\n\nChange-Id: I8800cf011f392d7d0c848f43a8efa095dd68ad0a\n"
    }
  ]
}
