)]}'
{
  "log": [
    {
      "commit": "b347d06f0946e2f018747951e92dae74df41672a",
      "tree": "802c53351cefe092db743adcc0038615cce88aec",
      "parents": [
        "cf9da6e7b2ded2b515a14b009cc0e95411eb246a"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Oct 21 15:23:58 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Oct 21 15:23:58 2026 -0400"
      },
      "message": "Bump ossf/scorecard-action from 2.4.4 to 2.5.0\n"
    },
    {
      "commit": "cf9da6e7b2ded2b515a14b009cc0e95411eb246a",
      "tree": "260627fbb642a0b5457fd99280fee5295c3cc3c3",
      "parents": [
        "39a85646d21002de4df6082342485dc2dedecd5a"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Oct 20 20:12:45 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Oct 20 20:12:45 2026 -0400"
      },
      "message": "Bump github/codeql-action from 4.38.3 to 4.39.0\n"
    },
    {
      "commit": "39a85646d21002de4df6082342485dc2dedecd5a",
      "tree": "9e91e2e69ce74a263a7caf1386b0b54657cb56c9",
      "parents": [
        "fced3979f79530f5ee01806164062f05fbbd470a"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Oct 17 15:54:21 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Oct 17 15:54:21 2026 -0400"
      },
      "message": "Bump actions/setup-java from 6.0.1 to 6.1.0\n"
    },
    {
      "commit": "fced3979f79530f5ee01806164062f05fbbd470a",
      "tree": "a94b7e67ab95ec79028f6545022c6cf4c62b24d5",
      "parents": [
        "fb3af95825d91611b258c62cf3b98786c35bfbb4"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Oct 17 13:23:42 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Oct 17 13:23:42 2026 -0400"
      },
      "message": "Bump org.apache.commons:commons-parent from 105 to 106\n"
    },
    {
      "commit": "fb3af95825d91611b258c62cf3b98786c35bfbb4",
      "tree": "6995ab8c077345a1f7a9aa532ff982fca52c60ea",
      "parents": [
        "ee6755cd1da9341fc33b3f828f59ef7cb9f2c505"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@users.noreply.github.com",
        "time": "Sat Oct 17 13:22:37 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 17 13:22:37 2026 -0400"
      },
      "message": "Bump Apache Commons Parent from 105 to 106 (#411)"
    },
    {
      "commit": "ee6755cd1da9341fc33b3f828f59ef7cb9f2c505",
      "tree": "f5bb2c2ac20e9117753b60237e2bb811659c1e86",
      "parents": [
        "55722655b92864b4e750aff26f12fbd6c76ad3ee"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Oct 15 09:20:42 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Oct 15 09:20:42 2026 -0400"
      },
      "message": "Bump github/codeql-action/analyze from 4.37.5 to 4.38.3\n"
    },
    {
      "commit": "55722655b92864b4e750aff26f12fbd6c76ad3ee",
      "tree": "ce8693e312d1353675ad2ce7f82d62ed2f6f660a",
      "parents": [
        "78c921e173b115828ac9b336ba1fe6f0fd0588fd"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Oct 15 08:29:08 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Oct 15 08:29:08 2026 -0400"
      },
      "message": "Revert \"Bump github/codeql-action/analyze from 4.37.5 to 4.38.3\"\n\nThis reverts commit 78c921e173b115828ac9b336ba1fe6f0fd0588fd.\n"
    },
    {
      "commit": "78c921e173b115828ac9b336ba1fe6f0fd0588fd",
      "tree": "a1d9db19128763c5a585e9b9815a8dffb55bef37",
      "parents": [
        "8218cc2d4c362a74f4525e29facda331ee67888c"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Oct 15 06:33:33 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Oct 15 06:33:33 2026 -0400"
      },
      "message": "Bump github/codeql-action/analyze from 4.37.5 to 4.38.3\n"
    },
    {
      "commit": "8218cc2d4c362a74f4525e29facda331ee67888c",
      "tree": "ce8693e312d1353675ad2ce7f82d62ed2f6f660a",
      "parents": [
        "7f9bd04c0d4c34741c9a625469137010d984d9f2"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Oct 15 06:25:16 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Oct 15 06:25:16 2026 -0400"
      },
      "message": "Bump actions/upload-artifact from 7.0.1 to 7.0.2\n"
    },
    {
      "commit": "7f9bd04c0d4c34741c9a625469137010d984d9f2",
      "tree": "fc243dff99a47755b65bcae7fd7cce1ff49ee4b2",
      "parents": [
        "3356e9978f10cd0dfbbe095ab3a8d1d07919da04"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Oct 10 08:01:41 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Oct 10 08:01:41 2026 -0400"
      },
      "message": "Add github.autolink_jira\n"
    },
    {
      "commit": "3356e9978f10cd0dfbbe095ab3a8d1d07919da04",
      "tree": "9f1f0dad1172b78935038aed7fe4b3930fe244ca",
      "parents": [
        "10d17795f5a5a5d8c6c2f59ec0d0f401106c3227"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Oct 03 15:09:35 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Oct 03 15:09:35 2026 -0400"
      },
      "message": "Add Java 27 to GH CI\n"
    },
    {
      "commit": "10d17795f5a5a5d8c6c2f59ec0d0f401106c3227",
      "tree": "552ec215c8ba92cfdc9ed62bd2083868543e3b01",
      "parents": [
        "7371d1f741512af69f49535f457bac52f3d9508b"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Sep 29 19:53:30 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Sep 29 19:53:30 2026 +0000"
      },
      "message": "[test] Bump org.apache.commons:commons-lang3 from 3.20.0 to 3.21.0\n"
    },
    {
      "commit": "7371d1f741512af69f49535f457bac52f3d9508b",
      "tree": "dc265f24391804f634fa2e146428c4ddadd375ec",
      "parents": [
        "7fd118e985436b6ac4bdd510c17fbf8391c5f23e"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@users.noreply.github.com",
        "time": "Tue Sep 29 15:52:39 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 29 15:52:39 2026 -0400"
      },
      "message": "Bump org.apache.commons:commons-lang3 from 3.20.0 to 3.21.0 (#409)"
    },
    {
      "commit": "7fd118e985436b6ac4bdd510c17fbf8391c5f23e",
      "tree": "22559c8f499db2a4400327d4a9ec7d6c0e2f3322",
      "parents": [
        "0b2602e73219880d017f8dbe4f7422f3d93c65c8"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Sep 24 12:57:51 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Sep 24 12:57:51 2026 -0400"
      },
      "message": "Bump github/codeql-action from 4.38.1 to 4.38.2\n"
    },
    {
      "commit": "0b2602e73219880d017f8dbe4f7422f3d93c65c8",
      "tree": "72fd1463f160ca75c5a68f3f31c1485ae49d2fdc",
      "parents": [
        "d825eb9b70b3886b8df95a24512ee614baea6447"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Sep 22 07:27:01 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Sep 22 07:27:01 2026 -0400"
      },
      "message": "Protect main branches\n"
    },
    {
      "commit": "d825eb9b70b3886b8df95a24512ee614baea6447",
      "tree": "cdbe9a00320808f9c6c9b8bc4f44880335560667",
      "parents": [
        "0ff8f7fa93ee136688155f8414d1765747c2ad13"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Sep 19 11:16:20 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Sep 19 11:16:20 2026 -0400"
      },
      "message": "Bump github/codeql-action/* from 4.37.9 to 4.38.1\n"
    },
    {
      "commit": "0ff8f7fa93ee136688155f8414d1765747c2ad13",
      "tree": "5bdfe968880f691eec474bf4e51f496e67475e49",
      "parents": [
        "b4ceda10d5d38623555d1074f006425f7c987971"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Sep 19 11:07:57 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Sep 19 11:07:57 2026 -0400"
      },
      "message": "Bump actions/setup-java from 6.0.0 to 6.0.1\n"
    },
    {
      "commit": "b4ceda10d5d38623555d1074f006425f7c987971",
      "tree": "934baef331396bfb80e554565fd241a681d6dfb7",
      "parents": [
        "d46aaece2329cbc4aec707cc22e0183259b48f8e"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Sep 07 10:49:04 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Sep 07 10:49:04 2026 -0400"
      },
      "message": "Bump org.apache.commons:commons-parent from 104 to 105.\n"
    },
    {
      "commit": "d46aaece2329cbc4aec707cc22e0183259b48f8e",
      "tree": "eaeb824e8c81647a24d630cd16c63ae635015417",
      "parents": [
        "5b437d7cfd7f16e62ac86a4074278b78eb2da410"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Aug 31 11:19:06 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Aug 31 11:19:06 2026 +0000"
      },
      "message": "Bump github/codeql-action/analyze from 4.37.8 to 4.37.9.\n"
    },
    {
      "commit": "5b437d7cfd7f16e62ac86a4074278b78eb2da410",
      "tree": "29920c08bba11f9787414a51c6f3ebf4ff25c99d",
      "parents": [
        "d2ca719988fe1364f0710648c1282c72a55ef7fe"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Aug 27 13:41:52 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Aug 27 13:41:52 2026 -0400"
      },
      "message": "Bump actions/setup-java from 5.7.0 to 6.0.0.\n"
    },
    {
      "commit": "d2ca719988fe1364f0710648c1282c72a55ef7fe",
      "tree": "36985b12d17a3b6ad3ecddd2ea60ac61a266ef4f",
      "parents": [
        "6ae62c8fce24d792810d7ba1ba557016a376250d"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Aug 25 14:14:25 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Aug 25 14:14:25 2026 -0400"
      },
      "message": "Bump github/codeql-action/init from 4.37.7 to 4.37.8\n"
    },
    {
      "commit": "6ae62c8fce24d792810d7ba1ba557016a376250d",
      "tree": "b542cf995d42266b681be4ef8007a9f2654cab96",
      "parents": [
        "f95c0fb06a5b71ed82b6b79527ba9c291a8d18b5"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 22 09:46:31 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 22 09:46:31 2026 -0400"
      },
      "message": "Bump org.apache.commons:commons-parent from 103 to 104.\n"
    },
    {
      "commit": "f95c0fb06a5b71ed82b6b79527ba9c291a8d18b5",
      "tree": "8c76ccc88d97134c6ab69b26ddbc76ee8ec31bce",
      "parents": [
        "f0fbd3b3cb926f6737b8f6d2da8ecbd6ac787d7f"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Aug 18 16:01:46 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Aug 18 16:01:46 2026 -0400"
      },
      "message": "Bump codeql-action from 4.37.6 to 4.37.7\n"
    },
    {
      "commit": "f0fbd3b3cb926f6737b8f6d2da8ecbd6ac787d7f",
      "tree": "17e083485806c35307dddca9bacda8c1af32f406",
      "parents": [
        "ec2d274e310a5a4c934fc60669a0f06d64330efc"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Aug 14 07:09:56 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Aug 14 07:09:56 2026 -0400"
      },
      "message": "TFTPRequestPacket now throws TFTPPacketException instead of\nArrayIndexOutOfBoundsException (#407).\n"
    },
    {
      "commit": "ec2d274e310a5a4c934fc60669a0f06d64330efc",
      "tree": "871c40720c49162f00db9a019391f443ad06c570",
      "parents": [
        "71fc4e683e1c2d20d5ca1cd1d2645f76c16876a1"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@users.noreply.github.com",
        "time": "Fri Aug 14 07:07:46 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 14 07:07:46 2026 -0400"
      },
      "message": "TFTPRequestPacket now throws TFTPPacketException instead of ArrayIndexOutOfBoundsException (#407)\n\n* TFTPRequestPacket now throws TFTPPacketException instead of\nArrayIndexOutOfBoundsException.\n\n* Refactor packet type checking\n\n* Inline local variable declaration and initialization.\n\n* Internal refactoring.\n\n* Add org.apache.commons.net.tftp.TFTPPacketTest"
    },
    {
      "commit": "71fc4e683e1c2d20d5ca1cd1d2645f76c16876a1",
      "tree": "0e21a3358befe82c3e14bfb29c98bc9b1c83dd1c",
      "parents": [
        "d923c1b272c4887ef6d909cbe845d657e05537d4"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Aug 10 08:58:43 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Aug 10 08:58:43 2026 -0400"
      },
      "message": "Bump org.apache.commons:commons-collections4 from 4.5.0 to 4.6.0.\n"
    },
    {
      "commit": "d923c1b272c4887ef6d909cbe845d657e05537d4",
      "tree": "11c0324b17c140e79552f111fc6c2da7f5b80a74",
      "parents": [
        "65da8af371b4446b602722161710a3fe815d82cb"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Aug 05 14:14:36 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Aug 05 14:14:36 2026 -0400"
      },
      "message": "Bump actions/setup-java from 5.6.0 to 5.7.0\n"
    },
    {
      "commit": "65da8af371b4446b602722161710a3fe815d82cb",
      "tree": "f5079ca41731565c41b3a698616ffcc27e9b8170",
      "parents": [
        "ba5f637e6df3218b32998e5b69fb82dc2e68306d"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Aug 04 15:59:06 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Aug 04 15:59:06 2026 -0400"
      },
      "message": "Bump github/codeql-action from 4.37.3 to 4.37.6.\n"
    },
    {
      "commit": "ba5f637e6df3218b32998e5b69fb82dc2e68306d",
      "tree": "8b7334215a4c794a7a456f1340670689333e4b4f",
      "parents": [
        "ac34c984f38156bc03b147d30903173cd01a41c2"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Aug 02 16:39:11 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Aug 02 16:39:11 2026 -0400"
      },
      "message": "Javadoc\n"
    },
    {
      "commit": "ac34c984f38156bc03b147d30903173cd01a41c2",
      "tree": "4e69c9b768ec1cb51ce33642129cc63029c5043c",
      "parents": [
        "9824e2a96721bb31761ddcc5a2a2e97617247064"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 29 11:23:41 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 29 11:23:41 2026 -0400"
      },
      "message": "Add and use FTPFile.setUserPermission(int, boolean)."
    },
    {
      "commit": "9824e2a96721bb31761ddcc5a2a2e97617247064",
      "tree": "5b77dfcfe56c07887b37941b366094394315ed87",
      "parents": [
        "f44465e408865cd663a8e3fcbfe48380f27f01ad"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 29 11:14:59 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 29 11:14:59 2026 -0400"
      },
      "message": "Refactor copy-pasta\n"
    },
    {
      "commit": "f44465e408865cd663a8e3fcbfe48380f27f01ad",
      "tree": "c586016018183d6ac84a5be8f33f61326cb121fc",
      "parents": [
        "c2ad9bc031d4cd55d0e67889efc4cda92e1f03e6"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 29 11:11:16 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 29 11:11:16 2026 -0400"
      },
      "message": "Javadoc\n"
    },
    {
      "commit": "c2ad9bc031d4cd55d0e67889efc4cda92e1f03e6",
      "tree": "5f636b46ed4ded4179085146183edcf97c824b81",
      "parents": [
        "67a11fe0f440943f7a4e622e077336e6ddbfc754"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 29 11:11:05 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 29 11:11:05 2026 -0400"
      },
      "message": "Extract constants from magic strings\n"
    },
    {
      "commit": "67a11fe0f440943f7a4e622e077336e6ddbfc754",
      "tree": "52aefd202542f66008b0d61d554e70b1bc9e1c9a",
      "parents": [
        "049602ad0c5b852c6ababd0cb3c20e5e4e39e7ff"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 29 11:03:56 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 29 11:03:56 2026 -0400"
      },
      "message": "Force Gregorian calendar in FTP listing timestamp parsers (##406)."
    },
    {
      "commit": "049602ad0c5b852c6ababd0cb3c20e5e4e39e7ff",
      "tree": "e085fe0006865656b17a89675c443d6d6032e07b",
      "parents": [
        "4bfe40348cbadf0efa607702e151f8ddf6ea55bb"
      ],
      "author": {
        "name": "Javid Khan",
        "email": "dxbjavid@gmail.com",
        "time": "Wed Jul 29 20:32:44 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 11:02:44 2026 -0400"
      },
      "message": "Force Gregorian calendar in FTP listing timestamp parsers (#406)\n\n* force gregorian calendar in ftp listing timestamp parsers\n\n* use junit pioneer for locale tests and derive appended year from gregorian calendar\n\n* No latin needed.\n\nUpdated comment for clarity regarding RFC 3659 timestamp parsing with non-Gregorian locales.\n\n* Clarify RFC 3659 timestamp parsing in test\n\nUpdate test comment to clarify RFC 3659 timestamp parsing.\n\n---------\n\nCo-authored-by: Gary Gregory \u003cgarydgregory@users.noreply.github.com\u003e"
    },
    {
      "commit": "4bfe40348cbadf0efa607702e151f8ddf6ea55bb",
      "tree": "eb4b03440a1db3c794398516bd0f144c68331da1",
      "parents": [
        "b6a6a0da04526514b9077f93140604f696e8daaf"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 29 10:43:29 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 29 10:43:29 2026 -0400"
      },
      "message": "Update GH CI Java versions\n"
    },
    {
      "commit": "b6a6a0da04526514b9077f93140604f696e8daaf",
      "tree": "ee93f251b2708889139e7c6a274f8b652e9430d0",
      "parents": [
        "5401c46d2812571ada64bc9d36dad34e92e8646f"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 29 08:14:36 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 29 08:14:36 2026 -0400"
      },
      "message": "Bump ossf/scorecard-action from 2.4.3 to 2.4.4.\n"
    },
    {
      "commit": "5401c46d2812571ada64bc9d36dad34e92e8646f",
      "tree": "f53abd862ef97e1d4648f456cfe4c2b6652d9bf3",
      "parents": [
        "0935cb540787407ce4ea9c768bfa36e8f1470f8f"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Jul 28 14:54:25 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Jul 28 14:54:25 2026 -0400"
      },
      "message": "Bump github/codeql-action from 4.37.1 to 4.37.3\n"
    },
    {
      "commit": "0935cb540787407ce4ea9c768bfa36e8f1470f8f",
      "tree": "53886b6e8b5c3ed1691ee548a788c8548914e2c5",
      "parents": [
        "11eebb35db6bbcfb94c8139c20e392b96e21f956"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jul 27 15:17:59 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jul 27 15:17:59 2026 +0000"
      },
      "message": "Better use of JUnit API (comment).\n"
    },
    {
      "commit": "11eebb35db6bbcfb94c8139c20e392b96e21f956",
      "tree": "5ed03cfc5be31e3bbde312f86b259e22c3be69cb",
      "parents": [
        "c66d035adac4ebfdf41c067e1cfaa13bb6f345ce"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 25 09:49:53 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 25 09:49:53 2026 -0400"
      },
      "message": "Bump actions/checkout from 7.0.0 to 7.0.1\n"
    },
    {
      "commit": "c66d035adac4ebfdf41c067e1cfaa13bb6f345ce",
      "tree": "917de48f0428c54410672309018fb904f88a6f68",
      "parents": [
        "ba6d2d687bfe677dc7adcaee133dcf5899919e5e"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 22 10:40:31 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 22 10:40:31 2026 -0400"
      },
      "message": "[NET-745][Javadoc] Improve UnixFTPEntryParser when filename with leading\nspace when listing contains a year instead of time (IBM i example)\n(#405).\n\nSort members.\n"
    },
    {
      "commit": "ba6d2d687bfe677dc7adcaee133dcf5899919e5e",
      "tree": "984a55384478b12c3077c55f7747ec74a4c22b28",
      "parents": [
        "54ee8fe99384bcd4198b3da4b8698618fd52d4cf"
      ],
      "author": {
        "name": "Sarankumar Baskar",
        "email": "saranbaskar121@gmail.com",
        "time": "Wed Jul 22 20:06:38 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 22 10:36:38 2026 -0400"
      },
      "message": "[NET-745] Clarify UnixFTPEntryParser trimLeadingSpaces in Javadoc (#405)\n\n* [NET-745] Clarify UnixFTPEntryParser trimLeadingSpaces in Javadoc\n\n* Refine comments on leading spaces in UnixFTPEntryParser\n\nUpdated comments to clarify handling of leading spaces in file names.\n\n---------\n\nCo-authored-by: Sarankumar Baskar \u003csbaskar@redhat.com\u003e\nCo-authored-by: Gary Gregory \u003cgarydgregory@users.noreply.github.com\u003e"
    },
    {
      "commit": "54ee8fe99384bcd4198b3da4b8698618fd52d4cf",
      "tree": "06a94bb4f0115312e208eb58905f7fcde07cfbdb",
      "parents": [
        "0c160ea4133380e58a1725d0fe5f8905595c8c01"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 22 08:27:45 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 22 08:27:45 2026 -0400"
      },
      "message": "Bump org.apache.commons:commons-parent from 102 to 103.\n"
    },
    {
      "commit": "0c160ea4133380e58a1725d0fe5f8905595c8c01",
      "tree": "437fa6adae8535caf00cd9898cf3aac1bb9828c8",
      "parents": [
        "ff6c4e5c73aecdfc89df197db160f80fe5ee7a99"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Jul 21 13:45:50 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Jul 21 13:45:50 2026 -0400"
      },
      "message": "Bump github/codeql-action from 4.37.0 to 4.37.1\n"
    },
    {
      "commit": "ff6c4e5c73aecdfc89df197db160f80fe5ee7a99",
      "tree": "18480ca8895bac5a852739150a68ff0b8e4fd660",
      "parents": [
        "52c16bb0cc2d6d1ad05e7d8624865b6b9efaa64c"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Jul 21 11:46:06 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Jul 21 11:46:06 2026 -0400"
      },
      "message": "Bump actions/setup-java from 5.5.0 to 5.6.0\n"
    },
    {
      "commit": "52c16bb0cc2d6d1ad05e7d8624865b6b9efaa64c",
      "tree": "2b93e05aad7aa6a81e0c127ff3e599ce0d40a828",
      "parents": [
        "cb70005bddcc6ba9dbe17ceaaef20b04aabd7636"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 18 10:53:48 2026 -0700"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 18 10:53:48 2026 -0700"
      },
      "message": "Refactor duplication.\n"
    },
    {
      "commit": "cb70005bddcc6ba9dbe17ceaaef20b04aabd7636",
      "tree": "b12663abe0942acbe404af75f107d24a01ec92b1",
      "parents": [
        "a79729464f6e69b773171ff30e3d483cab7afd70"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 18 10:51:45 2026 -0700"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 18 10:51:45 2026 -0700"
      },
      "message": "Run hostname verifier on FTPS data connection (#404)."
    },
    {
      "commit": "a79729464f6e69b773171ff30e3d483cab7afd70",
      "tree": "fde632f9b126b954f601e98315335dbc3d287210",
      "parents": [
        "faa4edd7e287a3db465a32efd9c2d5faa15757fe"
      ],
      "author": {
        "name": "Javid Khan",
        "email": "dxbjavid@gmail.com",
        "time": "Sat Jul 18 23:20:22 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 18 13:50:22 2026 -0400"
      },
      "message": "Run hostname verifier on FTPS data connection (#404)\n\n* run hostname verifier on FTPS data connection\n\n* Update FTPSClient.java\n\n---------\n\nCo-authored-by: Gary Gregory \u003cgarydgregory@users.noreply.github.com\u003e"
    },
    {
      "commit": "faa4edd7e287a3db465a32efd9c2d5faa15757fe",
      "tree": "52ebe8da904e09045f85349f1476cfeaf81d16ba",
      "parents": [
        "3ee3cdf937bc18c4391dd00d84fc9a561194f10e"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jul 13 13:50:04 2026 -0700"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jul 13 13:50:04 2026 -0700"
      },
      "message": "Bump actions/setup-java from 5.4.0 to 5.5.0\n"
    },
    {
      "commit": "3ee3cdf937bc18c4391dd00d84fc9a561194f10e",
      "tree": "eddc6c18a4e08fc91d222caa2818a0664fe3acbe",
      "parents": [
        "b4654a445b6f340d41a5afb0e7199705e300437e"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 11 11:22:38 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 11 11:22:38 2026 -0400"
      },
      "message": "Javadoc\n"
    },
    {
      "commit": "b4654a445b6f340d41a5afb0e7199705e300437e",
      "tree": "9a204242cfee75b12081a5a04457d643e96178b8",
      "parents": [
        "4b4c68d91ed1797232c98a478ca00dcb56758094"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 11 09:09:01 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 11 09:09:01 2026 -0400"
      },
      "message": "Javadoc\n"
    },
    {
      "commit": "4b4c68d91ed1797232c98a478ca00dcb56758094",
      "tree": "63ea066833cbfb007e228568340c3c4d98a2b924",
      "parents": [
        "e73324c16feaf6fd8c97a3b722b4a3a15458c906"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 11 08:51:17 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 11 08:51:17 2026 -0400"
      },
      "message": "Javadoc\n"
    },
    {
      "commit": "e73324c16feaf6fd8c97a3b722b4a3a15458c906",
      "tree": "709af71eb686b57e03fa8ac7dcfbc0c9ce518fc8",
      "parents": [
        "09ca15f41908f23fd02f11fc81cb2c81ef7eeed5"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Jul 10 09:08:56 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Jul 10 09:08:56 2026 -0400"
      },
      "message": "Bump github/codeql-action from 4.36.3 to 4.37.0\n"
    },
    {
      "commit": "09ca15f41908f23fd02f11fc81cb2c81ef7eeed5",
      "tree": "290d35922e6e759b6815b6f1a1e849b0dc901a97",
      "parents": [
        "a99c69043ad9aa7d39d66ead63e13ba7335e60cb"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 08 16:15:10 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 08 16:15:10 2026 -0400"
      },
      "message": "Bump github/codeql-action from 4.36.2 to 4.36.3\n"
    },
    {
      "commit": "a99c69043ad9aa7d39d66ead63e13ba7335e60cb",
      "tree": "7862a77bc66bae273c43ffe004412f28399b5f43",
      "parents": [
        "3112606673e8cd72378e4890d2ceaa6afb3a350e"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Jul 07 07:06:02 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Jul 07 07:06:02 2026 -0400"
      },
      "message": "Normalize spelling.\n"
    },
    {
      "commit": "3112606673e8cd72378e4890d2ceaa6afb3a350e",
      "tree": "953c5644af7a8c6b13428386c6fbf7a3c1923d7e",
      "parents": [
        "6e38749760c0366aac1637c7dc15e4ccf76329c9"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jul 05 12:06:10 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jul 05 12:06:10 2026 -0400"
      },
      "message": "Check parser type before instantiating class in\nDefaultFTPFileEntryParserFactory.createFileEntryParser() (#403)."
    },
    {
      "commit": "6e38749760c0366aac1637c7dc15e4ccf76329c9",
      "tree": "cf9e04e6ca416d803deb0ed02abb58db613765f0",
      "parents": [
        "a3d19751891edb9f7cb8c11bc344eaf1683b2b32"
      ],
      "author": {
        "name": "Javid Khan",
        "email": "dxbjavid@gmail.com",
        "time": "Sun Jul 05 21:35:17 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 05 12:05:17 2026 -0400"
      },
      "message": "Check parser type before instantiating class in DefaultFTPFileEntryParserFactory.createFileEntryParser() (#403)\n\n* check parser type before instantiating class in createFileEntryParser\n\nDuring listing auto-detection the parser key is taken from the server\u0027s SYST reply. A key shaped like a qualified class name was passed to Class.forName and constructed before the type was checked, so any classpath class could be instantiated for its side effects. Verify the class implements FTPFileEntryParser before calling the constructor.\n\n* load parser class without initialising before the type check\n\nClass.forName(key) initialises the class, so an unrelated class named\nin the key ran its static initialiser before isAssignableFrom rejected\nit. Load with the three-arg forName (initialize\u003dfalse) so only a real\nFTPFileEntryParser is initialised, when it is constructed. Test now\nasserts the static initialiser does not run.\n\nSigned-off-by: Javid Khan \u003cdxbjavid@gmail.com\u003e\n\n---------\n\nSigned-off-by: Javid Khan \u003cdxbjavid@gmail.com\u003e"
    },
    {
      "commit": "a3d19751891edb9f7cb8c11bc344eaf1683b2b32",
      "tree": "d8e5d7f5058d7c2fd8cab3667325aca3e37158e0",
      "parents": [
        "c4e9d892888c31d2f412caa13ac8c23661915ca0"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jul 05 10:00:15 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jul 05 10:00:15 2026 -0400"
      },
      "message": "Flip null test\n"
    },
    {
      "commit": "c4e9d892888c31d2f412caa13ac8c23661915ca0",
      "tree": "07992460c52bbf4ca5365287367a5570d3dad8e4",
      "parents": [
        "501ec114e7a8401d65077c28ffc594dc997ed563"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jul 05 09:40:37 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jul 05 09:40:37 2026 -0400"
      },
      "message": "Flip null test\n"
    },
    {
      "commit": "501ec114e7a8401d65077c28ffc594dc997ed563",
      "tree": "94e726767aaf62b05e0f927aa75d737cf4e440dc",
      "parents": [
        "eb50f66112db79ae004b9cb2d090fa3d587da35c"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jul 05 09:11:45 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jul 05 09:11:45 2026 -0400"
      },
      "message": "Flip test\n"
    },
    {
      "commit": "eb50f66112db79ae004b9cb2d090fa3d587da35c",
      "tree": "90f9b69ada6a134d74eb98eb8d27fb7cc61338e5",
      "parents": [
        "95f818f593e8b3d0b446dd21d2c3689ea9f8b725"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jul 02 14:33:15 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jul 02 14:33:15 2026 +0000"
      },
      "message": "Reject CR/LF in FTP, POP3, NNTP and SMTP command senders (#400)."
    },
    {
      "commit": "95f818f593e8b3d0b446dd21d2c3689ea9f8b725",
      "tree": "e4a5147b9dd6aeb6f1377582304043885e29ac37",
      "parents": [
        "a07b6c41b5c2369506e7d86c4808dc51317e1481"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jul 02 14:33:11 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jul 02 14:33:11 2026 +0000"
      },
      "message": "Sort members\n"
    },
    {
      "commit": "a07b6c41b5c2369506e7d86c4808dc51317e1481",
      "tree": "a7f99818451670ecf4f7fa31fcd537e23d9a1555",
      "parents": [
        "2a3aa71b077ae9290d9c3b95f6ad23b0e0a357c2",
        "4dc2ffa3beb7bc4de5e49880436cb0d6d8ae7309"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@users.noreply.github.com",
        "time": "Thu Jul 02 10:31:45 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 02 10:31:45 2026 -0400"
      },
      "message": "Merge pull request #400 from dxbjavid/reject-crlf-command-senders\n\nReject CR/LF in FTP, POP3, NNTP and SMTP command senders"
    },
    {
      "commit": "2a3aa71b077ae9290d9c3b95f6ad23b0e0a357c2",
      "tree": "29ca298a530eb9b2001b067a621edc016986ab73",
      "parents": [
        "4825c47db0f7e363f34f6a289153be1a9e58e54b"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Jun 30 20:50:48 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Jun 30 20:50:48 2026 -0400"
      },
      "message": "Bump actions/setup-java from 5.3.0 to 5.4.0\n"
    },
    {
      "commit": "4825c47db0f7e363f34f6a289153be1a9e58e54b",
      "tree": "b32aac55293a80ff8c4f2287fb801d97ec8fbdec",
      "parents": [
        "5bd1836f92b802387562cc5382c591cef40615ff"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Jun 30 14:03:34 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Jun 30 14:03:34 2026 +0000"
      },
      "message": "Javadoc\n"
    },
    {
      "commit": "5bd1836f92b802387562cc5382c591cef40615ff",
      "tree": "57884c5d0adbeec7c13ad7e7c963ef64f054f3b0",
      "parents": [
        "7e7360426b939fe91c288aaf81837895455e32f5"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jun 29 07:30:34 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jun 29 07:30:34 2026 -0400"
      },
      "message": "Bump actions/cache from 6.0.0 to 6.1.0\n"
    },
    {
      "commit": "7e7360426b939fe91c288aaf81837895455e32f5",
      "tree": "2263b7924f0d12456863fbfea87dcc736841d886",
      "parents": [
        "0e58f4199852d2ad140af28a532b98fa7d9ef6b3"
      ],
      "author": {
        "name": "Sebb",
        "email": "sebbASF@users.noreply.github.com",
        "time": "Thu Jun 25 23:34:25 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 23:34:25 2026 +0100"
      },
      "message": "Add fix for CR/LF rejection in IMAP quoteMailboxName"
    },
    {
      "commit": "0e58f4199852d2ad140af28a532b98fa7d9ef6b3",
      "tree": "0fdd7d364be1bdec6f1667a2b8e93a7802169a58",
      "parents": [
        "84f3e69ad162928ff020b1c20b1845298710380a"
      ],
      "author": {
        "name": "Javid Khan",
        "email": "dxbjavid@gmail.com",
        "time": "Fri Jun 26 04:00:43 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 23:30:43 2026 +0100"
      },
      "message": "reject CR/LF in IMAP quoteMailboxName (#399)"
    },
    {
      "commit": "84f3e69ad162928ff020b1c20b1845298710380a",
      "tree": "3c12ccb0d949b61366474dc19be7b20c0d8e9d8d",
      "parents": [
        "3bec11ae2ec51831617abfd5a23921606e2d733f"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jun 25 18:24:37 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jun 25 18:24:37 2026 -0400"
      },
      "message": "Bump actions/cache from 5.0.5 to 6.0.0.\n"
    },
    {
      "commit": "3bec11ae2ec51831617abfd5a23921606e2d733f",
      "tree": "761b67f242ca5f5e36312862e844b4b380598870",
      "parents": [
        "b154b7dcf666481baff69f56127ba52e0deca00d"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jun 22 07:32:46 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jun 22 07:32:46 2026 -0400"
      },
      "message": "Bump actions/setup-java from 5.2.0 to 5.3.0\n"
    },
    {
      "commit": "b154b7dcf666481baff69f56127ba52e0deca00d",
      "tree": "1070209aa840d15f056661a804b63c3af9661499",
      "parents": [
        "1f3c76556e54e64ac1eb111f3820088bb9b8c20e"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jun 22 00:49:05 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jun 22 00:49:05 2026 +0000"
      },
      "message": "Double leading dot on first line in DotTerminatedMessageWriter (#398)."
    },
    {
      "commit": "1f3c76556e54e64ac1eb111f3820088bb9b8c20e",
      "tree": "a6c078a0c30206c1d70015720dd36cd4308a0ec8",
      "parents": [
        "d6cebcddffb2cab71f709079d11b039d6878d597",
        "c16f98961b4fc5e7dc438bcd16b162c760277772"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@users.noreply.github.com",
        "time": "Sun Jun 21 20:47:18 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 21 20:47:18 2026 -0400"
      },
      "message": "Merge pull request #398 from dxbjavid/double-leading-dot-message-writer\n\nDouble leading dot on first line in DotTerminatedMessageWriter"
    },
    {
      "commit": "d6cebcddffb2cab71f709079d11b039d6878d597",
      "tree": "f38f13521aabe4f358376dda0f9d88a472c3146a",
      "parents": [
        "628086a973b82b27e6a01d7fe28ec89220dbfec5"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Jun 19 07:28:54 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Jun 19 07:28:54 2026 -0400"
      },
      "message": "Bump actions/checkout from 6.0.3 to 7.0.0.\n"
    },
    {
      "commit": "628086a973b82b27e6a01d7fe28ec89220dbfec5",
      "tree": "6138f4c6f7b5a24b643b53013b2744b015b58105",
      "parents": [
        "b273da0914bdf59882e6b9a445c2b0843cdac625"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jun 11 14:24:18 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jun 11 14:24:18 2026 -0400"
      },
      "message": "Update legacy GitHub links in CONTRIBUTING.md\n"
    },
    {
      "commit": "b273da0914bdf59882e6b9a445c2b0843cdac625",
      "tree": "a8a63549253790304b138b8a983e309d56cb29e5",
      "parents": [
        "1585352c4ade7020960a50ef04a799ae9a7bd2d2",
        "737cdd60e4128fc1a819bb3ad403ea0c4c80ba67"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@users.noreply.github.com",
        "time": "Thu Jun 11 11:34:18 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 11 11:34:18 2026 -0400"
      },
      "message": "Merge pull request #401 from apupier/addConcurrencyCancelInProgressForPRGitHubWorkflows\n\nConfigure GitHub workflows to use concurrency cancel-in-progress for pull requests"
    },
    {
      "commit": "737cdd60e4128fc1a819bb3ad403ea0c4c80ba67",
      "tree": "a8a63549253790304b138b8a983e309d56cb29e5",
      "parents": [
        "1585352c4ade7020960a50ef04a799ae9a7bd2d2"
      ],
      "author": {
        "name": "Aurélien Pupier",
        "email": "apupier@ibm.com",
        "time": "Thu Jun 11 16:36:30 2026 +0200"
      },
      "committer": {
        "name": "Aurélien Pupier",
        "email": "apupier@ibm.com",
        "time": "Thu Jun 11 16:36:30 2026 +0200"
      },
      "message": "Configure GitHub workflows to use concurrency cancel-in-progress for\npull requests\n\nsee recommended best practices at Apache\nhttps://cwiki.apache.org/confluence/pages/viewpage.action?spaceKey\u003dINFRA\u0026title\u003dGitHub+Actions+Recommended+Practices\n\nSigned-off-by: Aurélien Pupier \u003capupier@ibm.com\u003e"
    },
    {
      "commit": "1585352c4ade7020960a50ef04a799ae9a7bd2d2",
      "tree": "c95264a9501ef865acc9ad46fa95e70b1588a545",
      "parents": [
        "99e05b1feb31d9a9c40868749f7d0be8e1a538dc"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jun 11 10:28:22 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jun 11 10:28:22 2026 -0400"
      },
      "message": "Bump org.apache.commons:commons-parent from 101 to 102.\n"
    },
    {
      "commit": "99e05b1feb31d9a9c40868749f7d0be8e1a538dc",
      "tree": "0ebafbc57a4a5efb8204620945b908f7e1adadc3",
      "parents": [
        "c97d003e01862773c82271adf528f2ef05936f5e"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jun 07 10:13:21 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jun 07 10:13:21 2026 -0400"
      },
      "message": "Bump GH CI actions/dependency-review-action from 4.9.0 to 5.0.0\n"
    },
    {
      "commit": "c97d003e01862773c82271adf528f2ef05936f5e",
      "tree": "e35ff05d7ebd87cc2154133210b1774a229f38f8",
      "parents": [
        "feeeb76a1eb59aaf2ba85caa83f3524110403823"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jun 07 10:09:36 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jun 07 10:09:36 2026 -0400"
      },
      "message": "Bump GH CI actions/checkout from 6.0.2 to 6.0.3\n"
    },
    {
      "commit": "feeeb76a1eb59aaf2ba85caa83f3524110403823",
      "tree": "5e5424d8357e2dfc29f40aa985400ffac3cdfcaf",
      "parents": [
        "3c761467c9d1321c03c34b73db5dc9d1f9b1da9a"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Jun 05 16:31:41 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Jun 05 16:31:41 2026 -0400"
      },
      "message": "Bump org.apache.commons:commons-parent from 100 to 101\n"
    },
    {
      "commit": "3c761467c9d1321c03c34b73db5dc9d1f9b1da9a",
      "tree": "821a431e705c8cc4c3bee66b4e27d514c8820717",
      "parents": [
        "5080919bf045167fabb85202ef8b1baee783acad"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Jun 05 07:28:40 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Jun 05 07:28:40 2026 -0400"
      },
      "message": "Bump github/codeql-action from 4.36.0 to 4.36.2\n"
    },
    {
      "commit": "4dc2ffa3beb7bc4de5e49880436cb0d6d8ae7309",
      "tree": "12cef531b49dadc4c3f1cca07c5b4a939debce5a",
      "parents": [
        "5080919bf045167fabb85202ef8b1baee783acad"
      ],
      "author": {
        "name": "dxbjavid",
        "email": "dxbjavid@gmail.com",
        "time": "Thu Jun 04 14:05:48 2026 +0530"
      },
      "committer": {
        "name": "dxbjavid",
        "email": "dxbjavid@gmail.com",
        "time": "Thu Jun 04 14:05:48 2026 +0530"
      },
      "message": "reject CR/LF in FTP, POP3, NNTP and SMTP command senders\n"
    },
    {
      "commit": "c16f98961b4fc5e7dc438bcd16b162c760277772",
      "tree": "ee9f7b45892542afbe99185418595abadd728338",
      "parents": [
        "5080919bf045167fabb85202ef8b1baee783acad"
      ],
      "author": {
        "name": "dxbjavid",
        "email": "dxbjavid@gmail.com",
        "time": "Tue Jun 02 02:32:37 2026 +0530"
      },
      "committer": {
        "name": "dxbjavid",
        "email": "dxbjavid@gmail.com",
        "time": "Tue Jun 02 02:32:37 2026 +0530"
      },
      "message": "double leading dot on first line in DotTerminatedMessageWriter\n"
    },
    {
      "commit": "5080919bf045167fabb85202ef8b1baee783acad",
      "tree": "0d5810f21f7af01a7ab88713e64e6eefaede786f",
      "parents": [
        "b8b5c3c61d1e4d44ec6dce76afeaf9b0ffa74f0d"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jun 01 12:22:21 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jun 01 12:22:21 2026 -0400"
      },
      "message": "Use final.\n"
    },
    {
      "commit": "b8b5c3c61d1e4d44ec6dce76afeaf9b0ffa74f0d",
      "tree": "dfcf4a99b8a73a1fa12e4c9bc567afb0de3eaf34",
      "parents": [
        "a193b4dc08c8e03d719c19bb4282ea7bacf3f370"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jun 01 12:19:52 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jun 01 12:19:52 2026 -0400"
      },
      "message": "Sort members\n"
    },
    {
      "commit": "a193b4dc08c8e03d719c19bb4282ea7bacf3f370",
      "tree": "5f9efa34559fae4d64a35d85e497995cb384ab24",
      "parents": [
        "17a6955cb961a2e53df51741195c0bb4e638e4e4"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jun 01 12:19:23 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jun 01 12:19:23 2026 -0400"
      },
      "message": "Reject CR/LF in SimpleSMTPHeader and SimpleNNTPHeader fields #397.\n"
    },
    {
      "commit": "17a6955cb961a2e53df51741195c0bb4e638e4e4",
      "tree": "65ff60e92c291b1cff7bef58b3fb3729fe44cac1",
      "parents": [
        "b0e48a96c7ac4fb783a7bcae9a3f3d0094d39587",
        "61092a43595c95d259b4e7c97da148bd63fefce5"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@users.noreply.github.com",
        "time": "Mon Jun 01 12:17:23 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 12:17:23 2026 -0400"
      },
      "message": "Merge pull request #397 from dxbjavid/reject-crlf-header-injection\n\nReject CR/LF in SimpleSMTPHeader and SimpleNNTPHeader fields"
    },
    {
      "commit": "61092a43595c95d259b4e7c97da148bd63fefce5",
      "tree": "65ff60e92c291b1cff7bef58b3fb3729fe44cac1",
      "parents": [
        "53939a66973733bf927ea93867f3754d2f980530"
      ],
      "author": {
        "name": "dxbjavid",
        "email": "dxbjavid@gmail.com",
        "time": "Mon Jun 01 16:47:15 2026 +0530"
      },
      "committer": {
        "name": "dxbjavid",
        "email": "dxbjavid@gmail.com",
        "time": "Mon Jun 01 16:47:15 2026 +0530"
      },
      "message": "Add tests for CR/LF rejection in SimpleSMTPHeader and SimpleNNTPHeader\n"
    },
    {
      "commit": "53939a66973733bf927ea93867f3754d2f980530",
      "tree": "c4e9ef8211333a30828694f96b384f92f0325b72",
      "parents": [
        "b0e48a96c7ac4fb783a7bcae9a3f3d0094d39587"
      ],
      "author": {
        "name": "dxbjavid",
        "email": "dxbjavid@gmail.com",
        "time": "Mon Jun 01 15:14:05 2026 +0530"
      },
      "committer": {
        "name": "dxbjavid",
        "email": "dxbjavid@gmail.com",
        "time": "Mon Jun 01 15:14:05 2026 +0530"
      },
      "message": "reject CR/LF in SimpleSMTPHeader and SimpleNNTPHeader fields\n"
    },
    {
      "commit": "b0e48a96c7ac4fb783a7bcae9a3f3d0094d39587",
      "tree": "2af18014ded44f425bc93b3e74c346702071318a",
      "parents": [
        "12c8c421efda043412fc8b679808e77467326b34"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed May 27 16:52:23 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed May 27 16:52:23 2026 -0400"
      },
      "message": "Bump github/codeql-action from 4.35.5 to 4.36.0\n"
    },
    {
      "commit": "12c8c421efda043412fc8b679808e77467326b34",
      "tree": "57dc48edba03886b914e6b8458aa77d389ee2de8",
      "parents": [
        "dc885100efd168e31d8f62d399cd94e653b6c9d4"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu May 21 21:46:27 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu May 21 21:46:27 2026 -0400"
      },
      "message": "Bump org.apache.commons:commons-parent from 99 to 100\n"
    },
    {
      "commit": "dc885100efd168e31d8f62d399cd94e653b6c9d4",
      "tree": "1ffc89dfe06f68071099de6233fd565bb1e8d4b6",
      "parents": [
        "ab2b19fee5e76984843fce6481f0c7724f629920"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed May 20 06:44:21 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed May 20 06:44:21 2026 -0400"
      },
      "message": "Bump github/codeql-action from 4.35.4 to 4.35.5\n"
    },
    {
      "commit": "ab2b19fee5e76984843fce6481f0c7724f629920",
      "tree": "90317cde62b9d3c4dcfd0796bd3646c947040823",
      "parents": [
        "7da0b0d63b32f830a303a9bab4c0416c855815ca"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue May 12 18:49:51 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue May 12 18:49:51 2026 +0000"
      },
      "message": "Bump github/codeql-action from 4.35.3 to 4.35.4\n"
    },
    {
      "commit": "7da0b0d63b32f830a303a9bab4c0416c855815ca",
      "tree": "c37139bdb9053fff507c8c3f31ec06dcc4e185bf",
      "parents": [
        "3af1604b0d3b6c1c69de7352f9d2fdf4d51d99fb"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue May 05 11:23:55 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue May 05 11:23:55 2026 -0400"
      },
      "message": "Bump github/codeql-action from 4.35.2 to 4.35.3\n"
    },
    {
      "commit": "3af1604b0d3b6c1c69de7352f9d2fdf4d51d99fb",
      "tree": "2c1afd0d3a15cf39ea5fe1e0f06d1a368ff2e696",
      "parents": [
        "94d8cea2e27494a2facedf0342f1144448618e76"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 26 07:50:48 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 26 07:50:48 2026 -0400"
      },
      "message": "Bump org.apache.commons:commons-parent from 98 to 99\n"
    },
    {
      "commit": "94d8cea2e27494a2facedf0342f1144448618e76",
      "tree": "07c3acc8b9d3f1b13f06a9ffd6927b8328128fca",
      "parents": [
        "8caf63cec7d46527e12cf84eaccf92bfc6dffa77"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Apr 23 06:58:03 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Apr 23 06:58:03 2026 -0400"
      },
      "message": "Bump commons-io:commons-io from 2.21.0 to 2.22.0.\n"
    },
    {
      "commit": "8caf63cec7d46527e12cf84eaccf92bfc6dffa77",
      "tree": "7a78210bc58b85e4711da8c9aa9d319e6cc0ceec",
      "parents": [
        "56dc8d908d0982391657dbd716dd872059cfb8fe"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Apr 16 07:10:49 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Apr 16 07:10:49 2026 -0400"
      },
      "message": "Bump github/codeql-action from 4.35.1 to 4.35.2\n"
    },
    {
      "commit": "56dc8d908d0982391657dbd716dd872059cfb8fe",
      "tree": "e7713a9c78fe8c6869e9dcc98120285181b61785",
      "parents": [
        "3095c7a3bcdfd532cce08f784881471ef5bf87bf"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Apr 15 08:18:45 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Apr 15 08:18:45 2026 -0400"
      },
      "message": "No need to end exception messages with an exclamation!\n"
    },
    {
      "commit": "3095c7a3bcdfd532cce08f784881471ef5bf87bf",
      "tree": "c2244b9f4dd00c59a4e11b0bb24a9dcc6cf4bd51",
      "parents": [
        "4c8f736dc10daa8030082edd13aaa299216e9247"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Apr 14 07:55:17 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Apr 14 07:55:17 2026 -0400"
      },
      "message": "Bump actions/upload-artifact from 7.0.0 to 7.0.1\n"
    },
    {
      "commit": "4c8f736dc10daa8030082edd13aaa299216e9247",
      "tree": "00cd7e2ea4cc489c3c7816122f6a6cf8c36962a1",
      "parents": [
        "f7de6b083df989b5ed25d475b193bd9d9b97dd8f"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Apr 14 07:49:16 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Apr 14 07:49:16 2026 -0400"
      },
      "message": "Bump actions/cache from 5.0.4 to 5.0.5\n"
    }
  ],
  "next": "f7de6b083df989b5ed25d475b193bd9d9b97dd8f"
}
