)]}'
{
  "commit": "b8336f176afb28c2b7bdf193571df932ea819321",
  "tree": "4e0838e7c9703f1bffad9db87e95f0d0ace977dd",
  "parents": [
    "b84c227162d4835c6ea928178fe9cc619d6e27c2"
  ],
  "author": {
    "name": "Dave Borowitz",
    "email": "dborowitz@google.com",
    "time": "Wed Aug 26 09:51:27 2015 -0400"
  },
  "committer": {
    "name": "Dave Borowitz",
    "email": "dborowitz@google.com",
    "time": "Fri Aug 28 14:13:13 2015 -0400"
  },
  "message": "Move most GPG-related code to a gerrit-gpg module\n\nBouncy Castle is still an optional dependency for Gerrit, so we want\nto avoid accidentally attempting to load Bouncy Castle classes when\nthey might not be available. Rather than try to guard every\norg.bouncycastle.* reference with a hasPGP() check, reduce the surface\narea of calls that actually require Bouncy Castle. Move almost all\ncode that calls Bouncy Castle into a new module, gerrit-gpg.\n\nCallers need only interact with this module by installing the\nGpgModule, which is careful to protect all Bouncy Castle class loading\nwith the appropriate havePGP() check. Moreover, this module doesn\u0027t\nneed to be installed in the gerrit-server package at all, so we can\nbreak the compile-time dependency between gerrit-server and Bouncy\nCastle, so accidentally introducing a dependency on Bouncy Castle\nresults in a compile error.\n\nThe REST API and extension APIs dealing with GPG keys only refer to\nthe GpgKeyInfo POJO, and don\u0027t need to actually refer to Bouncy Castle\nclasses. Add a shim interface, GpgApiAdapter, that is used by\nAccountApiImpl to process GPG keys. GpgModule binds this interface to\neither the Bouncy Castle enabled implementation, or a not-implemented\nimplementation.\n\nSince there are various places in the server code where we want to\ninspect whether signed push is enabled at the server level, but we\ndon\u0027t want to have to call into gerrit-gpg code to do this, bind a\nboolean with @EnableSignedPush from GpgModule.\n\nChange-Id: Idbab00a52d86216cae73d02876d56be54aef6581\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0888216ed01de19c4f985223c6e647424b7bd3f0",
      "old_mode": 33188,
      "old_path": "gerrit-acceptance-tests/BUCK",
      "new_id": "833070b7dd23700b2d63e00d3f9fe359703e26be",
      "new_mode": 33188,
      "new_path": "gerrit-acceptance-tests/BUCK"
    },
    {
      "type": "modify",
      "old_id": "91d3f11a12e88c8c3d9a025701505716837b468f",
      "old_mode": 33188,
      "old_path": "gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/accounts/AccountIT.java",
      "new_id": "c6482a9304298c260306f0b0917349f79ab91dba",
      "new_mode": 33188,
      "new_path": "gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/accounts/AccountIT.java"
    },
    {
      "type": "modify",
      "old_id": "10d0a147f21d0399758d9b30f5b2115bf8dee28b",
      "old_mode": 33188,
      "old_path": "gerrit-extension-api/src/main/java/com/google/gerrit/extensions/restapi/NotImplementedException.java",
      "new_id": "566159d8506a1b64dfc0c365cf7196ceeb9e3250",
      "new_mode": 33188,
      "new_path": "gerrit-extension-api/src/main/java/com/google/gerrit/extensions/restapi/NotImplementedException.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "592a5190305abcac6780b67e107aaba29bc02b40",
      "new_mode": 33188,
      "new_path": "gerrit-gpg/BUCK"
    },
    {
      "type": "rename",
      "old_id": "ba87d58e3d23bdbf6010df628f78f49df41d1f32",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/util/BouncyCastleUtil.java",
      "new_id": "ef065a173d732691846df0e72ad7f34a6472a3f9",
      "new_mode": 33188,
      "new_path": "gerrit-gpg/src/main/java/com/google/gerrit/gpg/BouncyCastleUtil.java",
      "score": 97
    },
    {
      "type": "rename",
      "old_id": "71321ba0a992bf1e2daabd2c2b5c3dca8a537edb",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/git/gpg/CheckResult.java",
      "new_id": "c41ecbecc7fc1960327ae21b2b2eca098c19a844",
      "new_mode": 33188,
      "new_path": "gerrit-gpg/src/main/java/com/google/gerrit/gpg/CheckResult.java",
      "score": 97
    },
    {
      "type": "rename",
      "old_id": "bc70cb3ef58246030c95403b5a481f30bec8f9aa",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/git/gpg/Fingerprint.java",
      "new_id": "6fd8bace11c8ee91d49a24db8551089b698f09ac",
      "new_mode": 33188,
      "new_path": "gerrit-gpg/src/main/java/com/google/gerrit/gpg/Fingerprint.java",
      "score": 97
    },
    {
      "type": "rename",
      "old_id": "851808c3d19fa8808e50eb0e821879688b8828ac",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/git/gpg/GerritPublicKeyChecker.java",
      "new_id": "69a09f0233c5a32da4f06dd68cf19b0e8dcae59b",
      "new_mode": 33188,
      "new_path": "gerrit-gpg/src/main/java/com/google/gerrit/gpg/GerritPublicKeyChecker.java",
      "score": 97
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fc1953a1cfe460e7262737a7c06253f8aa65d34d",
      "new_mode": 33188,
      "new_path": "gerrit-gpg/src/main/java/com/google/gerrit/gpg/GpgModule.java"
    },
    {
      "type": "rename",
      "old_id": "62cb563d9d926ec993864ac0edb500444ad09008",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/git/gpg/PublicKeyChecker.java",
      "new_id": "7b7aabb3e1eefa747cd1d450ddacd85c405a2ed2",
      "new_mode": 33188,
      "new_path": "gerrit-gpg/src/main/java/com/google/gerrit/gpg/PublicKeyChecker.java",
      "score": 94
    },
    {
      "type": "rename",
      "old_id": "7115c3fc60ea3754ce3ff1c9533e594bb22c61da",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/git/gpg/PublicKeyStore.java",
      "new_id": "3736a7c74be4c8e470f82cc9bb222b316d7b4b9e",
      "new_mode": 33188,
      "new_path": "gerrit-gpg/src/main/java/com/google/gerrit/gpg/PublicKeyStore.java",
      "score": 99
    },
    {
      "type": "rename",
      "old_id": "fcef3a36356740888a389a1e09b3bf518df5521b",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/git/gpg/PushCertificateChecker.java",
      "new_id": "80b87f71753c55af55c7569c831b0496608f9fe2",
      "new_mode": 33188,
      "new_path": "gerrit-gpg/src/main/java/com/google/gerrit/gpg/PushCertificateChecker.java",
      "score": 96
    },
    {
      "type": "rename",
      "old_id": "88bda9a3889118fe4348bdf9fddfd210c5881e50",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/git/gpg/SignedPushModule.java",
      "new_id": "750880682b760de2265b909a850d4451cbd4367e",
      "new_mode": 33188,
      "new_path": "gerrit-gpg/src/main/java/com/google/gerrit/gpg/SignedPushModule.java",
      "score": 91
    },
    {
      "type": "rename",
      "old_id": "f5e9f09653cc7503809a306f35da6f0e134a7128",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/git/gpg/SignedPushPreReceiveHook.java",
      "new_id": "8618f208f683b8f8bd7704e2aa60f8022bd0ad64",
      "new_mode": 33188,
      "new_path": "gerrit-gpg/src/main/java/com/google/gerrit/gpg/SignedPushPreReceiveHook.java",
      "score": 98
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "64b9e859e2a8a9c970edb0e86a6904c5be68e972",
      "new_mode": 33188,
      "new_path": "gerrit-gpg/src/main/java/com/google/gerrit/gpg/api/GpgApiAdapterImpl.java"
    },
    {
      "type": "rename",
      "old_id": "e42c2f6d131fa02a7739a400f37f89c0a88a6165",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/api/accounts/GpgKeyApiImpl.java",
      "new_id": "ab301840e8094c1a26296caa15fd8bb35f7caffb",
      "new_mode": 33188,
      "new_path": "gerrit-gpg/src/main/java/com/google/gerrit/gpg/api/GpgKeyApiImpl.java",
      "score": 80
    },
    {
      "type": "rename",
      "old_id": "b7e63cf16547544675404541093f31a770c5fd7c",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/account/DeleteGpgKey.java",
      "new_id": "baac7147c61c013186bb2e38ca86fa36683cde3f",
      "new_mode": 33188,
      "new_path": "gerrit-gpg/src/main/java/com/google/gerrit/gpg/server/DeleteGpgKey.java",
      "score": 90
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2fe7eb661ccc95005b5834144d3ba20184b96eb7",
      "new_mode": 33188,
      "new_path": "gerrit-gpg/src/main/java/com/google/gerrit/gpg/server/GpgKey.java"
    },
    {
      "type": "rename",
      "old_id": "bbcdd0632a028ba2c54127ec459b683020c9abae",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/account/GpgKeys.java",
      "new_id": "b22ca0e905d6ed456ad4f06eb274dfd67084aa20",
      "new_mode": 33188,
      "new_path": "gerrit-gpg/src/main/java/com/google/gerrit/gpg/server/GpgKeys.java",
      "score": 92
    },
    {
      "type": "rename",
      "old_id": "776f9831c810590a9ec3916a2a2c9e691c886060",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/account/PostGpgKeys.java",
      "new_id": "670adbaea29f55e57bc6e3d9bf26ea98dff85c95",
      "new_mode": 33188,
      "new_path": "gerrit-gpg/src/main/java/com/google/gerrit/gpg/server/PostGpgKeys.java",
      "score": 94
    },
    {
      "type": "rename",
      "old_id": "4b00d5caf433bd6399dfd19c911c88f20e5c6054",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/test/java/com/google/gerrit/server/git/gpg/GerritPublicKeyCheckerTest.java",
      "new_id": "e65ba002c95454c3c471f43a39771ccfb0d9e31c",
      "new_mode": 33188,
      "new_path": "gerrit-gpg/src/test/java/com/google/gerrit/gpg/GerritPublicKeyCheckerTest.java",
      "score": 98
    },
    {
      "type": "rename",
      "old_id": "a82619ca2b6187792a1447286621ab8eec48fdfe",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/test/java/com/google/gerrit/server/git/gpg/PublicKeyCheckerTest.java",
      "new_id": "ebc3e584c927ab721007df6e9d826fb3fe095bb6",
      "new_mode": 33188,
      "new_path": "gerrit-gpg/src/test/java/com/google/gerrit/gpg/PublicKeyCheckerTest.java",
      "score": 95
    },
    {
      "type": "rename",
      "old_id": "c84757eb774fe79b79fe7c0650a95999be284af0",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/test/java/com/google/gerrit/server/git/gpg/PublicKeyStoreTest.java",
      "new_id": "f48f9d806a3aa0a5465b6b18c8f43402393a16cb",
      "new_mode": 33188,
      "new_path": "gerrit-gpg/src/test/java/com/google/gerrit/gpg/PublicKeyStoreTest.java",
      "score": 96
    },
    {
      "type": "rename",
      "old_id": "aa2a2c763709ce8896c128d753352f479c4749e5",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/test/java/com/google/gerrit/server/git/gpg/PushCertificateCheckerTest.java",
      "new_id": "238156c43b55f0de8479aedfd4c30f44ff1b74cc",
      "new_mode": 33188,
      "new_path": "gerrit-gpg/src/test/java/com/google/gerrit/gpg/PushCertificateCheckerTest.java",
      "score": 95
    },
    {
      "type": "rename",
      "old_id": "321f01bba91fc220c69f85cf9eda596ea4019436",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/test/java/com/google/gerrit/server/git/gpg/TestKey.java",
      "new_id": "614818e28ea91f4d49517e397d1faebf2829e768",
      "new_mode": 33188,
      "new_path": "gerrit-gpg/src/test/java/com/google/gerrit/gpg/testutil/TestKey.java",
      "score": 99
    },
    {
      "type": "modify",
      "old_id": "b52e7af116a52d8e896944b9100c5df63291518e",
      "old_mode": 33188,
      "old_path": "gerrit-pgm/BUCK",
      "new_id": "80c37f7836a1c2b1ff0921b5caaafab0f110b9fc",
      "new_mode": 33188,
      "new_path": "gerrit-pgm/BUCK"
    },
    {
      "type": "modify",
      "old_id": "0cc3349f078f66f4761ef92e336057c390ed335c",
      "old_mode": 33188,
      "old_path": "gerrit-pgm/src/main/java/com/google/gerrit/pgm/Daemon.java",
      "new_id": "da87a20c11701d9694abab2378a75443ae39133d",
      "new_mode": 33188,
      "new_path": "gerrit-pgm/src/main/java/com/google/gerrit/pgm/Daemon.java"
    },
    {
      "type": "modify",
      "old_id": "707664f7f1b0306e972e7af7f42de42ea6c1b98b",
      "old_mode": 33188,
      "old_path": "gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/RefNames.java",
      "new_id": "9468d2d8cc86fb6349af60064255d476e65ddd8c",
      "new_mode": 33188,
      "new_path": "gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/RefNames.java"
    },
    {
      "type": "modify",
      "old_id": "61c4cff80fb9c43ce294c69cb4848a843fe25626",
      "old_mode": 33188,
      "old_path": "gerrit-server/BUCK",
      "new_id": "f7bb86f7c46b3e4d2bb79064a0654f4726e3494c",
      "new_mode": 33188,
      "new_path": "gerrit-server/BUCK"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "13942a67ff51fec56922fddbad8c728b821eab11",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/EnableSignedPush.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5ed27b5813324f598b05a99ed7edb7c4f9220ee9",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/GpgException.java"
    },
    {
      "type": "modify",
      "old_id": "7b5beadb756c83f63eec6a7a5fb85a1092de5222",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/account/AccountResource.java",
      "new_id": "75e5ae5185fc125b2f9e94964b17c5cb93448130",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/account/AccountResource.java"
    },
    {
      "type": "modify",
      "old_id": "fe1035590e1bda5c962c47a566bf34c0c14b7368",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/account/Module.java",
      "new_id": "7cf1e377c7fbcb09a2a5d14ad2207e0162adcb88",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/account/Module.java"
    },
    {
      "type": "modify",
      "old_id": "85e519bdf2768028ffbe22b917ecfc48ac4400ab",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/api/accounts/AccountApiImpl.java",
      "new_id": "c6e4ad1fd5367a63386545279b4a97752589903e",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/api/accounts/AccountApiImpl.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9faa4189162cdc81b8de9ffa0111b541b4e687ab",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/api/accounts/GpgApiAdapter.java"
    },
    {
      "type": "modify",
      "old_id": "6ac538d06c6361006e118f0a7389799b18fb2dcc",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/api/accounts/Module.java",
      "new_id": "935c4d73f9d343e7a5cc7ac547cd7cdfff1d3305",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/api/accounts/Module.java"
    },
    {
      "type": "modify",
      "old_id": "3716934e7bad50486336186bad86f8fabd36facc",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/config/GerritGlobalModule.java",
      "new_id": "cf1053d5adc60cadc925ceeeeb40d5c61d337026",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/config/GerritGlobalModule.java"
    },
    {
      "type": "modify",
      "old_id": "f45bf7c94c2fd15d5c1f50198e6f9c26b5fff915",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/config/GetServerInfo.java",
      "new_id": "b75d7750bce02e0bd1d233c8a1621594c90c466a",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/config/GetServerInfo.java"
    },
    {
      "type": "modify",
      "old_id": "180171288048d996db8e826ee6e201efd3904876",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/project/ConfigInfo.java",
      "new_id": "ae8fd535043832bbb9780da0b86a215aae0754b2",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/project/ConfigInfo.java"
    },
    {
      "type": "modify",
      "old_id": "2ab10c9a494bfe77536cce4d3e973cca2cc1a57d",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/project/GetConfig.java",
      "new_id": "469da9354500565e65395f5e1ad1ac038a943260",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/project/GetConfig.java"
    },
    {
      "type": "modify",
      "old_id": "7a4fb6eb8b46cab0d03aa31c28f065e5587d2186",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/project/PutConfig.java",
      "new_id": "e52904301f7699f7a431252e1eef3c36c51a2c12",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/project/PutConfig.java"
    },
    {
      "type": "modify",
      "old_id": "1dda48708bec9613cf8344d9820fe1dea0d1b0ce",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/test/java/com/google/gerrit/testutil/InMemoryModule.java",
      "new_id": "e5cd61914579113b30a8fe43ce188e0e605f9d2a",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/test/java/com/google/gerrit/testutil/InMemoryModule.java"
    },
    {
      "type": "modify",
      "old_id": "1f82849394d1292b0b0f88c23329b347855e32bd",
      "old_mode": 33188,
      "old_path": "gerrit-war/BUCK",
      "new_id": "27b1f4a84fc485416d90541f01798ac87008e1c9",
      "new_mode": 33188,
      "new_path": "gerrit-war/BUCK"
    },
    {
      "type": "modify",
      "old_id": "55be2df85766b02989b79952ec5019d262a091a6",
      "old_mode": 33188,
      "old_path": "gerrit-war/src/main/java/com/google/gerrit/httpd/WebAppInitializer.java",
      "new_id": "905d776cfc7ad8c77b01a7324b7abfc1ff978b55",
      "new_mode": 33188,
      "new_path": "gerrit-war/src/main/java/com/google/gerrit/httpd/WebAppInitializer.java"
    },
    {
      "type": "modify",
      "old_id": "865c9d72c01ad0e35be61c7892e401a719dc3839",
      "old_mode": 33188,
      "old_path": "tools/eclipse/BUCK",
      "new_id": "57f3afbcd9e4e5a9d870a0c74d52f5d42f9b4355",
      "new_mode": 33188,
      "new_path": "tools/eclipse/BUCK"
    }
  ]
}
