)]}'
{
  "log": [
    {
      "commit": "101328833f02e0ec59d1fb3772065a4c5fcf5ed8",
      "tree": "eda03da9273dee5a223846ad6497d1f42731e921",
      "parents": [
        "e9247b3e87fb5a253b75750d8473479c5b1a1563"
      ],
      "author": {
        "name": "Lewis John McGibbney",
        "email": "lewismc@apache.org",
        "time": "Tue Jul 21 19:16:42 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 21 19:16:42 2026 -0700"
      },
      "message": "NUTCH-3162 Fetcher and Parser latency metrics to properly merge data from all threads and tasks (#906)"
    },
    {
      "commit": "e9247b3e87fb5a253b75750d8473479c5b1a1563",
      "tree": "0c9e037f022f424b280ea58d2462dbc97d26a8b7",
      "parents": [
        "a90d7e89b2048140003846643e2e596c9292d266"
      ],
      "author": {
        "name": "Md. Mosaddek Ali",
        "email": "ali2107027@stud.kuet.ac.bd",
        "time": "Tue Jul 21 15:36:25 2026 +0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 21 11:36:25 2026 +0200"
      },
      "message": "NUTCH-1446 Port NUTCH-1444 to trunk (Indexing should not create temporary files) (#905)"
    },
    {
      "commit": "a90d7e89b2048140003846643e2e596c9292d266",
      "tree": "a21a86d13eccc655daf4e0a1f56edcb8bbe9a8d0",
      "parents": [
        "ee2a286d1d63e66ae5e9fee6aa05b13544eb823e"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Jul 21 05:08:45 2026 +0000"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Tue Jul 21 09:17:44 2026 +0200"
      },
      "message": "Bump SonarSource/sonarqube-scan-action from 8.2.0 to 8.2.1\n\nBumps [SonarSource/sonarqube-scan-action](https://github.com/sonarsource/sonarqube-scan-action) from 8.2.0 to 8.2.1.\n- [Release notes](https://github.com/sonarsource/sonarqube-scan-action/releases)\n- [Commits](https://github.com/sonarsource/sonarqube-scan-action/compare/713881670b6b3676cda39549040e2d88c70d582e...22918119ff8e1ca75a623e15c8296b6ea4fbe28f)\n\n---\nupdated-dependencies:\n- dependency-name: SonarSource/sonarqube-scan-action\n  dependency-version: 8.2.1\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "ee2a286d1d63e66ae5e9fee6aa05b13544eb823e",
      "tree": "b68c7482b4552977e4138a896f421f963eccc16c",
      "parents": [
        "545362c4c7805074cf215f0f09f7c1d5380ec2d4"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Sun Jul 19 21:53:29 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 19 12:53:29 2026 -0700"
      },
      "message": "NUTCH-3186 Split SonarQube workflow in unprivileged build and privileged analysis part (#940)\n\n* NUTCH-3186 Split SonarQube workflow in unprivileged build and privileged analysis part\n\n- Cache / upload in master / PR ci build:\n  - build artifacts (class files and dependency jars)\n  - coverage reports\n- Do not run builds or tests in \"sonarcloud\" workflow\n- Download cached artifacts and call Sonarcloud scan\n- Do not clean before running integration tests (protocol and indexer)\n  to avoid that test results are removed\n\n* NUTCH-3186 Split SonarQube workflow in unprivileged build and privileged analysis part\n\n- Fix yamllint error\n\n* NUTCH-3186 Split SonarQube workflow in unprivileged build and privileged analysis part\n\n- Allow checkout on PR branch in sonarcloud workflow\n\n* NUTCH-3186 Split SonarQube workflow in unprivileged build and privileged analysis part\n\n- Fix yamllint error"
    },
    {
      "commit": "545362c4c7805074cf215f0f09f7c1d5380ec2d4",
      "tree": "c170c8f2d6094f568b850b644c8f808c9239c399",
      "parents": [
        "c336054cfe70f166609546086c119b7209de740f"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Jul 14 05:08:31 2026 +0000"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Tue Jul 14 18:29:43 2026 +0200"
      },
      "message": "Bump actions/setup-node from 6 to 7\n\nBumps [actions/setup-node](https://github.com/actions/setup-node) from 6 to 7.\n- [Release notes](https://github.com/actions/setup-node/releases)\n- [Commits](https://github.com/actions/setup-node/compare/v6...v7)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-node\n  dependency-version: \u00277\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "c336054cfe70f166609546086c119b7209de740f",
      "tree": "dcc69921c7708aca9126937f6435897b57b0b54e",
      "parents": [
        "73f0bf1a39bf1153128492277f93a93dba8486a7"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Tue Jun 16 19:11:02 2026 +0200"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Tue Jul 07 17:10:37 2026 +0200"
      },
      "message": "NUTCH-3187 - protocol-okhttp: IP address filter fails to compare first byte for /32 resp. /128 CIDRs\n"
    },
    {
      "commit": "73f0bf1a39bf1153128492277f93a93dba8486a7",
      "tree": "e56e86a31f6d1cbba467610e55aa37e2ec120d70",
      "parents": [
        "f75c4b8e16a4d9b3321c46bbe13a9a9dfe3f51a2"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Jul 07 05:07:51 2026 +0000"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Tue Jul 07 15:25:00 2026 +0200"
      },
      "message": "Bump dorny/paths-filter from 4.0.1 to 4.0.2\n\nBumps [dorny/paths-filter](https://github.com/dorny/paths-filter) from 4.0.1 to 4.0.2.\n- [Release notes](https://github.com/dorny/paths-filter/releases)\n- [Changelog](https://github.com/dorny/paths-filter/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/dorny/paths-filter/compare/fbd0ab8f3e69293af611ebaee6363fc25e6d187d...7b450fff21473bca461d4b92ce414b9d0420d706)\n\n---\nupdated-dependencies:\n- dependency-name: dorny/paths-filter\n  dependency-version: 4.0.2\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "f75c4b8e16a4d9b3321c46bbe13a9a9dfe3f51a2",
      "tree": "d9dc55aa9a6b530f02b6d01138cec5290fd78431",
      "parents": [
        "3f6192bf73d447e11a1082d35d455e09041593cc",
        "6fc4e0aaf887bd7cd276e1f3257207e330491e9a"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Tue Jun 30 09:06:27 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 09:06:27 2026 +0200"
      },
      "message": "Merge pull request #937 from sebastian-nagel/NUTCH-3189-core-dependency-upgrades\n\nNUTCH-3189 Upgrade core dependencies"
    },
    {
      "commit": "3f6192bf73d447e11a1082d35d455e09041593cc",
      "tree": "a22a1e5b0d16a07928396bc43ae5b0b76db23892",
      "parents": [
        "10b9a56e6b3f7e0924b175b025f9d7705dacc24f"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Jun 30 05:07:46 2026 +0000"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Tue Jun 30 08:49:44 2026 +0200"
      },
      "message": "Bump actions/cache from 5 to 6\n\nBumps [actions/cache](https://github.com/actions/cache) from 5 to 6.\n- [Release notes](https://github.com/actions/cache/releases)\n- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)\n- [Commits](https://github.com/actions/cache/compare/v5...v6)\n\n---\nupdated-dependencies:\n- dependency-name: actions/cache\n  dependency-version: \u00276\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "10b9a56e6b3f7e0924b175b025f9d7705dacc24f",
      "tree": "d0c787cf4fba5e036d96518a1f266b007b853e29",
      "parents": [
        "ca8538abf9f325fd187cc445e4ea399e7015057b",
        "b845812d3e24c840bed3e8e9742703dd5818e9e1"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Tue Jun 30 08:44:53 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 08:44:53 2026 +0200"
      },
      "message": "Merge pull request #924 from sebastian-nagel/NUTCH-1807-forbidden-apis"
    },
    {
      "commit": "ca8538abf9f325fd187cc445e4ea399e7015057b",
      "tree": "1a44b594325c038b1f083944b1300a2979dd6b27",
      "parents": [
        "85deeb5dee36689eadebec3e0d482b204a8f8577"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jun 29 20:18:02 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 20:18:02 2026 -0700"
      },
      "message": "Bump actions/cache from 4 to 5 (#936)\n\nBumps [actions/cache](https://github.com/actions/cache) from 4 to 5.\n- [Release notes](https://github.com/actions/cache/releases)\n- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)\n- [Commits](https://github.com/actions/cache/compare/v4...v5)\n\n---\nupdated-dependencies:\n- dependency-name: actions/cache\n  dependency-version: \u00275\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "6fc4e0aaf887bd7cd276e1f3257207e330491e9a",
      "tree": "041c943ed4106f587df4b2ed7e36b5e5f4d9f2ba",
      "parents": [
        "6f18dfdbc4c1f6d1d8532d90463727ca1786e4bf"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Wed Jun 24 11:16:24 2026 +0200"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Wed Jun 24 13:26:40 2026 +0200"
      },
      "message": "NUTCH-3189 Upgrade core dependencies\n- Upgrade Apache RAT to 0.18\n- Adapt GitHub workflow to new RAT report format\n- Complete exclusions of language-identifier test files\n"
    },
    {
      "commit": "6f18dfdbc4c1f6d1d8532d90463727ca1786e4bf",
      "tree": "9c8a9357ddef59cf6a4b19680601b1f7652cf209",
      "parents": [
        "06a4df256e172dda1d67eaf1ad13128ec89ff376"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Tue Jun 23 21:29:27 2026 +0200"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Tue Jun 23 21:47:43 2026 +0200"
      },
      "message": "NUTCH-3189 Upgrade core dependencies\n- Update LICENSE-binary and NOTICE-binary\n"
    },
    {
      "commit": "06a4df256e172dda1d67eaf1ad13128ec89ff376",
      "tree": "67451156c9cfbc0a5ac63babea7ca67efe0191a2",
      "parents": [
        "f7a60c241795f2d8d46caf38caf3a1b599330553"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Tue Jun 23 16:33:08 2026 +0200"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Tue Jun 23 21:46:58 2026 +0200"
      },
      "message": "NUTCH-3189 Upgrade core dependencies\n- Upgrade test dependency mockserver-netty.\n"
    },
    {
      "commit": "f7a60c241795f2d8d46caf38caf3a1b599330553",
      "tree": "1b09cf0c0cfabb5e156498a5c51f50af0bd52b05",
      "parents": [
        "7f20d7a311f5174a5a7de5b81b2ab31f68b9caa0"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Tue Jun 23 16:28:45 2026 +0200"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Tue Jun 23 21:45:56 2026 +0200"
      },
      "message": "NUTCH-3189 Upgrade core dependencies\n- Upgrade test dependency MockFtpServer\n"
    },
    {
      "commit": "7f20d7a311f5174a5a7de5b81b2ab31f68b9caa0",
      "tree": "bb365926e71f5ff4821d5cbd8787a0860dfc9113",
      "parents": [
        "55019c3aa82a4646f9681f9cb79ff9f27fe4750c"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Fri Jun 12 23:12:35 2026 +0200"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Tue Jun 23 21:43:51 2026 +0200"
      },
      "message": "NUTCH-3189 Upgrade core dependencies\n- Remove obsolete dependency xml-apis (version override)\n  as Tika does not depend on xml-apis anymore.\n- Upgrade dependencies in lib-xml (used by feed plugin).\n"
    },
    {
      "commit": "55019c3aa82a4646f9681f9cb79ff9f27fe4750c",
      "tree": "08b52a45de558e1aa0f71a4a89468df935569a68",
      "parents": [
        "85deeb5dee36689eadebec3e0d482b204a8f8577"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Fri Jun 12 22:37:55 2026 +0200"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Tue Jun 23 21:40:10 2026 +0200"
      },
      "message": "NUTCH-3189 Upgrade core dependencies\n"
    },
    {
      "commit": "b845812d3e24c840bed3e8e9742703dd5818e9e1",
      "tree": "59668f931bdf177208f467df8ba2d522700ae908",
      "parents": [
        "4319278a488807597bec969eacbe6942538ba89c"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Fri Jun 19 15:23:31 2026 +0200"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Fri Jun 19 16:05:40 2026 +0200"
      },
      "message": "Address Yetus\u0027 comments:\n- remove tabs in Java code (added lines)\n- remove @author annotations in change context\n"
    },
    {
      "commit": "4319278a488807597bec969eacbe6942538ba89c",
      "tree": "ebadfd48f83c6d9d59c8fb79702eead1846d1997",
      "parents": [
        "e807f54d68619c49fb85132e8ef75a0facd2239b"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Sun Jun 14 19:54:35 2026 +0200"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Fri Jun 19 14:19:18 2026 +0200"
      },
      "message": "NUTCH-1807 Avoid methods relying on system-specific default locale / charset\n\nChange target forbidden-api-checks to only verify Nutch core and plugin\nclasses, not verifying test classes. Test classes are only checked\nif tests are run.\n\nIntegrate into CI workflows:\nRun the Forbidden API Checks when any tests are run,\nthat is only when there are changes in Nutch core or plugin classes.\n"
    },
    {
      "commit": "e807f54d68619c49fb85132e8ef75a0facd2239b",
      "tree": "93faeb714b8284a8ad909f6a33d1454fc8b9b32b",
      "parents": [
        "f2c7555d09e830bc1b8c27908c99bd94b1f57a49"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Sun Jun 14 18:06:37 2026 +0200"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Fri Jun 19 14:19:18 2026 +0200"
      },
      "message": "NUTCH-1807 Avoid methods relying on system-specific default locale / charset\n\nAdd license headers to configuration files.\n\nAllow tabs in configuration files.\n"
    },
    {
      "commit": "f2c7555d09e830bc1b8c27908c99bd94b1f57a49",
      "tree": "a9db158d3175c68fab9767cb55108289f65a3a42",
      "parents": [
        "04dc40e78799187effca1e67134c53801ffe95b3"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Thu Jun 11 17:48:00 2026 +0200"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Fri Jun 19 14:19:18 2026 +0200"
      },
      "message": "NUTCH-1807 Avoid methods relying on system-specific default locale / charset\n\nFix forbidden calls in Nutch core classes, unit tests and plugins.\n\nCode cleanup in updated classes:\n- remove trailing whitespace\n- sort and group imports\n- remove unnecessary casts\n- add missing override annotations\n"
    },
    {
      "commit": "04dc40e78799187effca1e67134c53801ffe95b3",
      "tree": "408e4b610bf48a0f2429e57cd8b18fe85e6077fb",
      "parents": [
        "9068999c0e992bf954ab2f70d85fd6def5b1e66a"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Thu Jun 11 17:23:42 2026 +0200"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Fri Jun 19 14:19:18 2026 +0200"
      },
      "message": "NUTCH-1807 Avoid methods relying on system-specific default locale / charset\n\nEnable forbidden API checks for plugins, including plugin unit tests.\nAllow reflection usage, some unit tests require it.\n"
    },
    {
      "commit": "9068999c0e992bf954ab2f70d85fd6def5b1e66a",
      "tree": "4eefaee788482912a90151538a6d480b307588d8",
      "parents": [
        "c451051b91b8457897500046c5712be7504998b0"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Thu Jun 11 13:13:34 2026 +0200"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Fri Jun 19 14:19:18 2026 +0200"
      },
      "message": "NUTCH-1807 Avoid methods relying on system-specific default locale / charset\n\n- Remove unnecessary string lowercasing and trim in\n  ProtocolFactory.getProtocol(url).\n- For efficiency, do only host/domain lookups if there are protocol mappings\n  (default is not).\n- Add unit tests for per-host and per-domain protocol mappings.\n"
    },
    {
      "commit": "c451051b91b8457897500046c5712be7504998b0",
      "tree": "6339629894421f56d062547c098ac6d67a0c044f",
      "parents": [
        "e356e5c02336e9edbb482ba5904a01d56039ba9b"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Thu Jun 11 13:11:14 2026 +0200"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Fri Jun 19 14:19:18 2026 +0200"
      },
      "message": "NUTCH-1807 Avoid methods relying on system-specific default locale / charset\n\nComplete classpath for forbidden API checks: add plugin jars\n"
    },
    {
      "commit": "e356e5c02336e9edbb482ba5904a01d56039ba9b",
      "tree": "0084ef80990f67689eb670a5619e6b858489515a",
      "parents": [
        "226fa5a30e4c4a114198203df3d11290c266b86f"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Thu Jun 11 12:12:22 2026 +0200"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Fri Jun 19 14:19:18 2026 +0200"
      },
      "message": "Remove unused test configuration file.\n\nThe urlfilter-domain unit tests use:\nsrc/plugin/urlfilter-domain/data/hosts.txt\n"
    },
    {
      "commit": "226fa5a30e4c4a114198203df3d11290c266b86f",
      "tree": "b1690b512855b6d06cb735ef3dd5454902e62e7c",
      "parents": [
        "c77975cadf6a5d5ea7a96339cfc8bdb1a3f2a368"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Thu Jun 11 10:20:30 2026 +0200"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Fri Jun 19 14:19:18 2026 +0200"
      },
      "message": "NUTCH-1807 Avoid methods relying on system-specific default locale / charset\n\nLink to NUTCH-3181 (URL construction deprecation).\n"
    },
    {
      "commit": "c77975cadf6a5d5ea7a96339cfc8bdb1a3f2a368",
      "tree": "e2e99ac480763aa00f207bd1af576169266847e2",
      "parents": [
        "c180c0d2961ff593de9767a0586f856f66eca0d0"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Thu Jun 11 10:17:35 2026 +0200"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Fri Jun 19 14:19:18 2026 +0200"
      },
      "message": "NUTCH-1807 Avoid methods relying on system-specific default locale / charset\n\nMove cachepath / taskdef task definitions into target \"forbidden-api-checks\"\nto use the ivy lib installed in ivy/\n"
    },
    {
      "commit": "c180c0d2961ff593de9767a0586f856f66eca0d0",
      "tree": "be59cb72d80bcd7bcbd516305abbf6f1c9a4db8f",
      "parents": [
        "32cee5212ba5310eaa5916bd8886c11d24a1d3d5"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Tue Jun 09 16:44:56 2026 +0200"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Fri Jun 19 14:19:18 2026 +0200"
      },
      "message": "NUTCH-1807 Avoid methods relying on system-specific default locale / charset\n\nFix forbidden calls in Nutch core classes.\n\nIndexer, field \"binaryContent\": try to decode binary content using the\ncharset from parse metadata, cf. NUTCH-2773.\n\nCode cleanup in updated classes:\n- remove trailing whitespace\n- sort and group imports\n"
    },
    {
      "commit": "32cee5212ba5310eaa5916bd8886c11d24a1d3d5",
      "tree": "d6896567c0e5537c528d5ff48afde2c2c6f22537",
      "parents": [
        "85deeb5dee36689eadebec3e0d482b204a8f8577"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Tue Jun 09 15:23:21 2026 +0200"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Fri Jun 19 14:19:18 2026 +0200"
      },
      "message": "NUTCH-1807 Avoid methods relying on system-specific default locale / charset\n\nIntegrate Forbidden API checker into build.\n"
    },
    {
      "commit": "85deeb5dee36689eadebec3e0d482b204a8f8577",
      "tree": "daadb660dfdebe99bb56adff82ea7f614de53d02",
      "parents": [
        "24d9f721521665dc62ac8db28e5885adec4818e8"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Jun 19 11:53:40 2026 +0000"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Fri Jun 19 14:14:19 2026 +0200"
      },
      "message": "Bump actions/upload-artifact from 4 to 7\n\nBumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 7.\n- [Release notes](https://github.com/actions/upload-artifact/releases)\n- [Commits](https://github.com/actions/upload-artifact/compare/v4...v7)\n\n---\nupdated-dependencies:\n- dependency-name: actions/upload-artifact\n  dependency-version: \u00277\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "24d9f721521665dc62ac8db28e5885adec4818e8",
      "tree": "1d30bf8dcc0f709699c0e56d38ea3974dd691d99",
      "parents": [
        "4d58963a46cd1e1cab26a76f001191006c64ed5d"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Jun 19 11:53:37 2026 +0000"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Fri Jun 19 14:14:01 2026 +0200"
      },
      "message": "Bump actions/checkout from 5 to 7\n\nBumps [actions/checkout](https://github.com/actions/checkout) from 5 to 7.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/v5...v7)\n\n---\nupdated-dependencies:\n- dependency-name: actions/checkout\n  dependency-version: \u00277\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "4d58963a46cd1e1cab26a76f001191006c64ed5d",
      "tree": "be2599322b95ad6c59b476c52dea85facb3ec23b",
      "parents": [
        "6d962e15dfae520457ced0022a8a0049ba78e8a8"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Jun 19 11:53:34 2026 +0000"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Fri Jun 19 14:13:38 2026 +0200"
      },
      "message": "Bump SonarSource/sonarqube-scan-action from 7.1.0 to 8.2.0\n\nBumps [SonarSource/sonarqube-scan-action](https://github.com/sonarsource/sonarqube-scan-action) from 7.1.0 to 8.2.0.\n- [Release notes](https://github.com/sonarsource/sonarqube-scan-action/releases)\n- [Commits](https://github.com/sonarsource/sonarqube-scan-action/compare/299e4b793aaa83bf2aba7c9c14bedbb485688ec4...713881670b6b3676cda39549040e2d88c70d582e)\n\n---\nupdated-dependencies:\n- dependency-name: SonarSource/sonarqube-scan-action\n  dependency-version: 8.2.0\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "6d962e15dfae520457ced0022a8a0049ba78e8a8",
      "tree": "be550e3bce3ec2b203568ae881c7bdac5ff980da",
      "parents": [
        "886e3b6de67e379940fddc7d4c4d57cb7b1099fe"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Jun 19 11:53:28 2026 +0000"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Fri Jun 19 14:12:33 2026 +0200"
      },
      "message": "Bump actions/setup-node from 4 to 6\n\nBumps [actions/setup-node](https://github.com/actions/setup-node) from 4 to 6.\n- [Release notes](https://github.com/actions/setup-node/releases)\n- [Commits](https://github.com/actions/setup-node/compare/v4...v6)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-node\n  dependency-version: \u00276\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "886e3b6de67e379940fddc7d4c4d57cb7b1099fe",
      "tree": "61f5258aec09a5e7b8c3fb3106e4819f75a3e17f",
      "parents": [
        "f55262b2e4fe3db7f3c921b3b175789a89e72219"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Jun 19 11:53:25 2026 +0000"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Fri Jun 19 14:12:10 2026 +0200"
      },
      "message": "Bump dawidd6/action-download-artifact from 11 to 21\n\nBumps [dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact) from 11 to 21.\n- [Release notes](https://github.com/dawidd6/action-download-artifact/releases)\n- [Commits](https://github.com/dawidd6/action-download-artifact/compare/v11...v21)\n\n---\nupdated-dependencies:\n- dependency-name: dawidd6/action-download-artifact\n  dependency-version: \u002721\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "f55262b2e4fe3db7f3c921b3b175789a89e72219",
      "tree": "9b94d34574792134244a2a75023cd5bb08d217cc",
      "parents": [
        "d7713ed5ea9a4613c414196c052bcbd5411ac631"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Fri Jun 12 23:12:05 2026 +0200"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Fri Jun 19 14:07:43 2026 +0200"
      },
      "message": "NUTCH-3185 Upgrade NekoHTML to 1.9.22\n\nAdd lib-nekohtml as import to headings plugin, remove ivy-managed\ndependency.\n"
    },
    {
      "commit": "d7713ed5ea9a4613c414196c052bcbd5411ac631",
      "tree": "40eee93cd771e218cba2b485967b146cd0fd2205",
      "parents": [
        "3544a71c78a3ca9034862f6391d83d9ac23a068e"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Fri Jun 12 22:54:56 2026 +0200"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Fri Jun 19 14:06:43 2026 +0200"
      },
      "message": "NUTCH-3184 Upgrade OkHttp to 3.4.0\n"
    },
    {
      "commit": "3544a71c78a3ca9034862f6391d83d9ac23a068e",
      "tree": "8e116c620ef15667be6ee1bfffa208ec7fd3d49e",
      "parents": [
        "75447183aa47a82afc474d9b37ad7db37e568a72"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Fri Jun 12 22:36:47 2026 +0200"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Fri Jun 19 13:55:26 2026 +0200"
      },
      "message": "NUTCH-3183 Upgrade Tika to 3.3.1\n"
    },
    {
      "commit": "75447183aa47a82afc474d9b37ad7db37e568a72",
      "tree": "6b6f932ec74303b35b1cbb65fe79e77b713f2736",
      "parents": [
        "e7db0454191cbbf756f858cadac020df693385ad"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Fri Jun 12 15:42:33 2026 +0200"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Fri Jun 19 13:52:53 2026 +0200"
      },
      "message": "NUTCH-3182 Add GitHub Dependabot configuration to update GitHub workflows\n"
    },
    {
      "commit": "e7db0454191cbbf756f858cadac020df693385ad",
      "tree": "3a1970ff281f6c937eeb12e678cbe9e9e021e773",
      "parents": [
        "8e03a3e998c1aac32ae3eb06f9f7cdf116c0c5f8"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Tue Jun 16 20:54:49 2026 +0200"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Fri Jun 19 13:50:56 2026 +0200"
      },
      "message": "NUTCH-3188 CI builds startup failure because of disallowed workflow actions\n\nUpdate dorny/paths-filter\n"
    },
    {
      "commit": "8e03a3e998c1aac32ae3eb06f9f7cdf116c0c5f8",
      "tree": "cac47c4818f0f6de7ba86cd6525e4d7dd0eb7b68",
      "parents": [
        "87483c650091e3e156114b49d8ec8a3f0753da93"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Sun Jun 14 17:45:48 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 14 17:45:48 2026 +0200"
      },
      "message": "Add in-repo threat model and point AGENTS.md/SECURITY.md at it (#922)\n\nAdds a v0 THREAT_MODEL.md (a superset of the project\u0027s website security\nmodel) and re-points the AGENTS.md -\u003e SECURITY.md -\u003e THREAT_MODEL.md\ndiscoverability chain at it, keeping the website references. The threat\nmodel is a provenance-tagged v0 draft for the PMC to review (see the open\nquestions in its section 14).\n\nGenerated-by: Claude Code (Claude Opus 4.8)"
    },
    {
      "commit": "87483c650091e3e156114b49d8ec8a3f0753da93",
      "tree": "2041de629a690490267f26a21afbc3244605444b",
      "parents": [
        "5bcb0ab87d263d3700b835113d6ee7facbe3d7e7"
      ],
      "author": {
        "name": "igiguere",
        "email": "igiguere@users.noreply.github.com",
        "time": "Sat Jun 13 07:38:36 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 13 13:38:36 2026 +0200"
      },
      "message": "NUTCH-1732: allow deleting non-parsable documents (#891)\n\nAdd CrawlDatum status \"parse_failed\"/\"db_parse_failed\", set status in CrawlDbReducer.\n\nHandle deletion in IndexerMapReduce.\n\nAdd unit tests.\nImprove test for failed parsing in TestCrawlDbStates and TestIndexerMapReduce.\n\nTestFetchWithPArseFailure \"should\" test the fetcher, but it strangely\ndoes not fully run most of the time.  Disabled while thinking of a\nsolution.\n\nChange the type of ExecutorService, to no avail.\n\nFix test conf to have just 1 fetcher thread.\n\nAdd resource handler\nReplace the string content with random bytes injected from a resource\nhandler.  No change.  Test still fails.\n\nFix unit test: set \"mime.type.magic\"\u003dfalse to force an exception from ParserFactory.\n\nLog a message in ParseSegment when skipping un-parseable content.\n\nRemove spaces ant end of lines.  Add ASF header.\n\n---------\n\nCo-authored-by: Isabelle Giguere \u003cigiguere71@yahoo.ca\u003e"
    },
    {
      "commit": "5bcb0ab87d263d3700b835113d6ee7facbe3d7e7",
      "tree": "91c126c7385dbac327ac377f78dae38afc2e30e9",
      "parents": [
        "571c2bc4f1f2299688aaf342747085ba144669c3"
      ],
      "author": {
        "name": "Luca",
        "email": "15426+lfoppiano@users.noreply.github.com",
        "time": "Fri Jun 12 15:24:49 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 12 15:24:49 2026 +0200"
      },
      "message": "NUTCH-3180 BasicURLNormalizer missing catching ICUInputTooLongException  (#923)\n\n* fix: wrap the exceptions of host validation and rethrow MalformedURLException\n* test: cover exception chain"
    },
    {
      "commit": "571c2bc4f1f2299688aaf342747085ba144669c3",
      "tree": "44dcee5dc9ef7aa86578eff06b408b4e5896b695",
      "parents": [
        "a0814a7b116dbf5b0053f7b2fa2428f3d868c95f"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Sun May 31 21:49:01 2026 +0200"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Sun Jun 07 18:08:54 2026 +0200"
      },
      "message": "NUTCH-3178 Add AGENTS.md and SECURITY.md to the Nutch repository\n\nComplete AGENTS.md, add\n- a description of the repository layout\n- Java requirements\n- instructions to build and test\n- Java code formatting\n- pull requests and issues\n- a short description of Nutch plugins\n- instructions to run Nutch\n- Nutch configuration basics\n"
    },
    {
      "commit": "a0814a7b116dbf5b0053f7b2fa2428f3d868c95f",
      "tree": "af2b9f748a82202f648e2d80e527ad5875ed5c4c",
      "parents": [
        "29847706901b6204ceba86e20095319dd05d86e7"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Wed May 13 22:56:43 2026 +0200"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Sun Jun 07 18:05:57 2026 +0200"
      },
      "message": "NUTCH-3177 Fetcher to report idle threads not as hung threads\n\n- reset reprUrl in FetcherThread after fetch is finished\n- report idle threads properly\n"
    },
    {
      "commit": "29847706901b6204ceba86e20095319dd05d86e7",
      "tree": "d26aa2143564c1bbe75551603ffbc9635edd8b59",
      "parents": [
        "a6159ea8e071735a553f7b2758096ef7b071adb4",
        "afb943960138d7f81017ab4bbf558072e4f89db0"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Sun Jun 07 17:44:29 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 07 17:44:29 2026 +0200"
      },
      "message": "Merge pull request #914 from sebastian-nagel/NUTCH-3176-idna2008\n\nNUTCH-3176 URLUtil and urlnormalizer-basic: add support for IDNA2008"
    },
    {
      "commit": "a6159ea8e071735a553f7b2758096ef7b071adb4",
      "tree": "c8089d3893632314034bc37373e8a5c2f9fa9dbb",
      "parents": [
        "9f78c72cb1a5b69205d33e2b29039a45b680404b"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Thu May 07 15:16:10 2026 +0200"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Sun Jun 07 17:00:28 2026 +0200"
      },
      "message": "NUTCH-3174 protocol-okhttp: request may hang despite http.time.limit is set\n\n- set OkHttp\u0027s call timeout to the value of http.time.limit (if not -1)\n- add check whether http.time.limit is longer than http.timeout\n- more verbose logging\n"
    },
    {
      "commit": "9f78c72cb1a5b69205d33e2b29039a45b680404b",
      "tree": "586a51caeb760e87cc4f074e9f89dd1ee87cf5e6",
      "parents": [
        "c246f6cc1296c7ced1877135e0114c011cfeae8d"
      ],
      "author": {
        "name": "Luca",
        "email": "15426+lfoppiano@users.noreply.github.com",
        "time": "Sun Jun 07 16:57:46 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 07 16:57:46 2026 +0200"
      },
      "message": "NUTCH-3173 protocol-okhttp: store OkHttp\u0027s internal URL in response metadata (#919)"
    },
    {
      "commit": "c246f6cc1296c7ced1877135e0114c011cfeae8d",
      "tree": "7b34b6a6ff1de2924ad68f4e27290f514a63b5f8",
      "parents": [
        "8fc57d98ccffcbc9aa3a091baeb71d5b6c6ac179",
        "dae9f9d26c237ddc73a8fc20b02de2e8df2ba17b"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Sun May 31 21:47:00 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun May 31 21:47:00 2026 +0200"
      },
      "message": "Merge pull request #920 from potiuk/asf-security/agents-md-security-md-init-2026-05-27\n\nAdd AGENTS.md + SECURITY.md linking the project\u0027s security model\n\nSee also NUTCH-3178."
    },
    {
      "commit": "8fc57d98ccffcbc9aa3a091baeb71d5b6c6ac179",
      "tree": "4fdb293bc64ddff62e4b8db15f061295a9a51634",
      "parents": [
        "fba8bc5090ff2bdcda47bee90cef8dd6d712fcdc",
        "fc26180cc55810a2ce0d2bb3ab90181394200f96"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Sat May 30 20:43:50 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 30 20:43:50 2026 +0200"
      },
      "message": "Merge pull request #918 from prakharchaube/NUTCH-3164\n\nNUTCH-3164 Catch specific exceptions in CrawlDbFilter so plugin errors no longer silently drop URLs"
    },
    {
      "commit": "fc26180cc55810a2ce0d2bb3ab90181394200f96",
      "tree": "f3dccc8adfa3fc63e99269f72e9004749b86f3ef",
      "parents": [
        "0c4f51d8382542dadf9373c6e524d7f92f901076"
      ],
      "author": {
        "name": "Prakhar Chaube",
        "email": "prakharchaube13@gmail.com",
        "time": "Fri May 29 12:22:08 2026 +0530"
      },
      "committer": {
        "name": "Prakhar Chaube",
        "email": "prakharchaube13@gmail.com",
        "time": "Fri May 29 12:22:08 2026 +0530"
      },
      "message": "NUTCH-3164 Added Unit Test case\n"
    },
    {
      "commit": "dae9f9d26c237ddc73a8fc20b02de2e8df2ba17b",
      "tree": "188112be4c2631dbe7345d1a5d724b524a343a87",
      "parents": [
        "fba8bc5090ff2bdcda47bee90cef8dd6d712fcdc"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Wed May 27 22:05:42 2026 +0200"
      },
      "committer": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Wed May 27 22:05:42 2026 +0200"
      },
      "message": "Add AGENTS.md + SECURITY.md linking the project\u0027s security model\n\nAdds two new files at the repo root so the conventional\nAGENTS.md -\u003e SECURITY.md discoverability chain is mechanically\nfollowable:\n\n- AGENTS.md with a Security section linking to SECURITY.md.\n- SECURITY.md as a short pointer to the canonical model on the\n  project website at\n  https://nutch.apache.org/documentation/security/#security-model\n  plus the standard security@apache.org reporting flow.\n\nNo threat-model content is duplicated; the website stays the\nsource of truth. Opened at the Nutch PMC\u0027s request on a private\nthread with the ASF Security team.\n\nGenerated-by: Claude Code (Claude Opus 4.7)\n"
    },
    {
      "commit": "fba8bc5090ff2bdcda47bee90cef8dd6d712fcdc",
      "tree": "049c5f8264df086bbdfc03b5cd1c579ddcfc7cd8",
      "parents": [
        "57c290e2e786cea25285ca86f9ec3b496dfcaf80",
        "1482fcb96963662396371382c9aab3b78246157d"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Mon May 25 13:20:52 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 25 13:20:52 2026 +0200"
      },
      "message": "Merge pull request #916 from apache/infrastructure-ruleset-bot/default-branch-protection\n\n[INFRA] Set up default rulesets for default and release branches"
    },
    {
      "commit": "1482fcb96963662396371382c9aab3b78246157d",
      "tree": "049c5f8264df086bbdfc03b5cd1c579ddcfc7cd8",
      "parents": [
        "0865e1acd87443508f00b7ffa155b99dc28821a1"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Mon May 25 11:17:53 2026 +0200"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Mon May 25 12:35:48 2026 +0200"
      },
      "message": "Extend ASF GitHub integration branch protection patterns\n\n- Add patterns to protect \"branch-*.*\" used for releases\n- Protect release tags\n"
    },
    {
      "commit": "0c4f51d8382542dadf9373c6e524d7f92f901076",
      "tree": "efb942a7e1f62576f3c5a1a5f7ea34cf572cc3b1",
      "parents": [
        "57c290e2e786cea25285ca86f9ec3b496dfcaf80"
      ],
      "author": {
        "name": "Prakhar Chaube",
        "email": "prakharchaube13@gmail.com",
        "time": "Sat May 23 12:15:05 2026 +0530"
      },
      "committer": {
        "name": "Prakhar Chaube",
        "email": "prakharchaube13@gmail.com",
        "time": "Sat May 23 12:15:05 2026 +0530"
      },
      "message": "NUTCH-3164 Catch specific exceptions in CrawlDbFilter so plugin errors no longer silently drop URLs\n"
    },
    {
      "commit": "0865e1acd87443508f00b7ffa155b99dc28821a1",
      "tree": "d73445bb4544fa40605a3b94ca3308835b76c8b6",
      "parents": [
        "57c290e2e786cea25285ca86f9ec3b496dfcaf80"
      ],
      "author": {
        "name": "The Apache Software Foundation",
        "email": "root-asf-gitbox-commits@apache.org",
        "time": "Fri May 15 17:29:23 2026 -0500"
      },
      "committer": {
        "name": "The Apache Software Foundation",
        "email": "root-asf-gitbox-commits@apache.org",
        "time": "Fri May 15 17:29:23 2026 -0500"
      },
      "message": "Set up default protection ruleset for default and release branches"
    },
    {
      "commit": "afb943960138d7f81017ab4bbf558072e4f89db0",
      "tree": "947ab5a9f24804ac7673e3cef5579bca291997c2",
      "parents": [
        "84699a62c21ab8df6b78429ac325cd84c985a01d"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Wed May 13 22:26:42 2026 +0200"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Wed May 13 22:26:42 2026 +0200"
      },
      "message": "Format source code\n"
    },
    {
      "commit": "84699a62c21ab8df6b78429ac325cd84c985a01d",
      "tree": "073a77584b659d8a9e0c9b1f4e924fd26f7118b5",
      "parents": [
        "947cd288f5b301a55ec6d502080d5fc28dc82a62"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Wed May 13 11:19:28 2026 +0200"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Wed May 13 20:38:28 2026 +0200"
      },
      "message": "NUTCH-3176 URLUtil and urlnormalizer-basic: add support for IDNA2008\n\nExtend unit tests.\n"
    },
    {
      "commit": "947cd288f5b301a55ec6d502080d5fc28dc82a62",
      "tree": "73185b4a430b5d538b3bc9e84ee1f4c9b08578c7",
      "parents": [
        "36cc2302917ac59998297d4ae9ac3c9c9662b0ca"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Wed May 13 11:16:15 2026 +0200"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Wed May 13 20:38:28 2026 +0200"
      },
      "message": "NUTCH-3176 URLUtil and urlnormalizer-basic: add support for IDNA2008\n\nurlnormalizer-basic: properly set direction of conversion (to ASCII\nor to Unicode) if setConf(conf) is called repeatedly\n"
    },
    {
      "commit": "36cc2302917ac59998297d4ae9ac3c9c9662b0ca",
      "tree": "bd7d6b0d82afb5614699da618456e68c572fc2ef",
      "parents": [
        "66f55e1e427e400de5ec1d84f7332b241cfc3c61"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Wed May 13 11:04:48 2026 +0200"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Wed May 13 20:38:28 2026 +0200"
      },
      "message": "Refactor calls of URLDecoder and pass Charset instead of String\n(since Java 10)\n"
    },
    {
      "commit": "66f55e1e427e400de5ec1d84f7332b241cfc3c61",
      "tree": "91efe6d11c61b9354aa28f9afc6eee61540b00ec",
      "parents": [
        "54efa9f0c2f153239e1c48099d1289c353a7f5ca"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Wed May 13 11:02:47 2026 +0200"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Wed May 13 20:38:28 2026 +0200"
      },
      "message": "NUTCH-3176 URLUtil and urlnormalizer-basic: add support for IDNA2008\n\nURLUtil: also convert host if not already lowercased\n"
    },
    {
      "commit": "54efa9f0c2f153239e1c48099d1289c353a7f5ca",
      "tree": "f038b4c49d940394ec5bd82cae448f3dad1fd349",
      "parents": [
        "57c290e2e786cea25285ca86f9ec3b496dfcaf80"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Tue May 12 22:50:27 2026 +0200"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Wed May 13 20:38:28 2026 +0200"
      },
      "message": "NUTCH-3176 URLUtil and urlnormalizer-basic: add support for IDNA2008\n\n- URLUtil:\n  - make IDNA2008 the default for the methods toASCII and toUNICODE\n  - provide methods to convert host names both for IDNA2003 and IDNA2008\n- urlnormalizer-basic:\n  - convert host names using IDNA2008 if the property\n    urlnormalizer.basic.host.idna2008 is true\n- refactor to share methods between URLUtil and urlnormalizer-basic\n"
    },
    {
      "commit": "57c290e2e786cea25285ca86f9ec3b496dfcaf80",
      "tree": "10a840b0825478ad78f6adc744159dc29d04ca49",
      "parents": [
        "2009e0e269b639207e4fa2524fe34a8e689a2eb6",
        "cbb1d0992dfe177543deff1d974b5f3bb9de7bf2"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Wed May 13 13:58:05 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 13 13:58:05 2026 +0200"
      },
      "message": "Merge pull request #913 from lewismc/NUTCH-3175\n\nNUTCH-3175 Implement integration testing framework for Nutch Protocol plugins using Testcontainers"
    },
    {
      "commit": "cbb1d0992dfe177543deff1d974b5f3bb9de7bf2",
      "tree": "10a840b0825478ad78f6adc744159dc29d04ca49",
      "parents": [
        "9390674e63607e2a5a803c6e1a1d7f5fbebe8552"
      ],
      "author": {
        "name": "lewismc",
        "email": "lewismc@apache.org",
        "time": "Fri May 08 15:48:02 2026 -0700"
      },
      "committer": {
        "name": "lewismc",
        "email": "lewismc@apache.org",
        "time": "Fri May 08 15:48:02 2026 -0700"
      },
      "message": "NUTCH-3175 Implement integration testing framework for Nutch Protocol plugins using Testcontainers\n"
    },
    {
      "commit": "9390674e63607e2a5a803c6e1a1d7f5fbebe8552",
      "tree": "dd19c15bbdea3121a166fe2e9959cbe8d11c0ce1",
      "parents": [
        "2009e0e269b639207e4fa2524fe34a8e689a2eb6"
      ],
      "author": {
        "name": "lewismc",
        "email": "lewismc@apache.org",
        "time": "Thu May 07 21:18:26 2026 -0700"
      },
      "committer": {
        "name": "lewismc",
        "email": "lewismc@apache.org",
        "time": "Thu May 07 21:18:26 2026 -0700"
      },
      "message": "NUTCH-3175 Implement integration testing framework for Nutch Protocol plugins using Testcontainers\n"
    },
    {
      "commit": "2009e0e269b639207e4fa2524fe34a8e689a2eb6",
      "tree": "a51d6f5812ed665b001f115e8972563ad1670c65",
      "parents": [
        "31c44b2afbec0f556ed9ebd6f2eca2eb07e7f4cb"
      ],
      "author": {
        "name": "Lewis John McGibbney",
        "email": "lewismc@apache.org",
        "time": "Thu May 07 13:51:52 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 07 13:51:52 2026 -0700"
      },
      "message": "NUTCH-3167 Upgrade to Hadoop 3.5.0 (#911)"
    },
    {
      "commit": "31c44b2afbec0f556ed9ebd6f2eca2eb07e7f4cb",
      "tree": "9d7df329e84cc44feeb25b90bfa69de18eb5f1b9",
      "parents": [
        "e47cfd589e1e42151d45637fbfadabd209d62447"
      ],
      "author": {
        "name": "Lewis John McGibbney",
        "email": "lewismc@apache.org",
        "time": "Tue Apr 21 15:51:33 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 21 15:51:33 2026 -0700"
      },
      "message": "NUTCH-3163 Integrate Apache Yetus\u0027 pre-commit patch testing into Nutch GitHub Continuous Integration (#907)"
    },
    {
      "commit": "e47cfd589e1e42151d45637fbfadabd209d62447",
      "tree": "e760c87d2791b2ed4f4f5368168c6c3fead8035c",
      "parents": [
        "3b663de2e4c829267297814db8d231d037c586f7"
      ],
      "author": {
        "name": "Sai Asish Y",
        "email": "say.apm35@gmail.com",
        "time": "Thu Apr 16 15:29:05 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 16 15:29:05 2026 -0700"
      },
      "message": "parse: fix \u0027occured\u0027 -\u003e \u0027occurred\u0027 typo in ParseStatus FAILED javadoc (#910)\n\nJavadoc on the FAILED ParseStatus constant in src/java/org/apache/nutch/parse/ParseStatus.java read \u0027Parsing failed. An Exception occured\u0027. Doc-only change.\n\nSigned-off-by: SAY-5 \u003cSAY-5@users.noreply.github.com\u003e\nCo-authored-by: SAY-5 \u003cSAY-5@users.noreply.github.com\u003e"
    },
    {
      "commit": "3b663de2e4c829267297814db8d231d037c586f7",
      "tree": "65c49d4286c6a2b048dc7d9af14f403769ad3831",
      "parents": [
        "df62fa10fbe2135e8f51dee9d08c22414c9cc750"
      ],
      "author": {
        "name": "Lewis John McGibbney",
        "email": "lewismc@apache.org",
        "time": "Mon Apr 13 19:18:51 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 19:18:51 2026 -0700"
      },
      "message": "NUTCH-3165 Remove the Nutch web service (#908)"
    },
    {
      "commit": "df62fa10fbe2135e8f51dee9d08c22414c9cc750",
      "tree": "212c7b405ed3b00e594038ce5da5f038afde01bf",
      "parents": [
        "96552ae6a473fa2736fc280710fec676a4d78c80"
      ],
      "author": {
        "name": "Lewis John McGibbney",
        "email": "lewismc@apache.org",
        "time": "Mon Apr 13 19:17:22 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 19:17:22 2026 -0700"
      },
      "message": "NUTCH-3168 Sandbox Commons JEXL usage in crawl and index pipelines (#909)"
    },
    {
      "commit": "96552ae6a473fa2736fc280710fec676a4d78c80",
      "tree": "781de402625593874758c6a6ebd05d8087865006",
      "parents": [
        "da557082662227cde52959652f406446496044da"
      ],
      "author": {
        "name": "Lewis John McGibbney",
        "email": "lewismc@apache.org",
        "time": "Sun Apr 12 15:21:33 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Apr 12 15:21:33 2026 -0700"
      },
      "message": "NUTCH-2932 Create OpenAPI specification for Nutch 1.x REST API (#896)"
    },
    {
      "commit": "da557082662227cde52959652f406446496044da",
      "tree": "a118c5866e1d149a76d37a0745901d4a62b6ff4a",
      "parents": [
        "eed3445104636b8e2362988f867aaf9da61f6bf5"
      ],
      "author": {
        "name": "Luca",
        "email": "15426+lfoppiano@users.noreply.github.com",
        "time": "Fri Feb 27 00:25:16 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 26 16:25:16 2026 -0800"
      },
      "message": "[NUTCH-3160] Remove System.exit(..) from reusable code (#903)\n\n"
    },
    {
      "commit": "eed3445104636b8e2362988f867aaf9da61f6bf5",
      "tree": "4aeb198f10e8f592321b99ad205e2a84b9e7c71d",
      "parents": [
        "f1d3e8a290af74ba079cf3d8d95a3711eec2d220"
      ],
      "author": {
        "name": "Lewis John McGibbney",
        "email": "lewismc@apache.org",
        "time": "Mon Feb 23 20:19:50 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 23 20:19:50 2026 -0800"
      },
      "message": "NUTCH-3085 Augment CI by adding code coverage and code quality reporting (#902)\n\n"
    },
    {
      "commit": "f1d3e8a290af74ba079cf3d8d95a3711eec2d220",
      "tree": "97af6fc795edf5a518d5b531c664661b7ecd533d",
      "parents": [
        "89e6ec17bb5adfd53682161f2448acdbf286dc20"
      ],
      "author": {
        "name": "Lewis John McGibbney",
        "email": "lewismc@apache.org",
        "time": "Mon Feb 23 13:56:11 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 23 13:56:11 2026 -0800"
      },
      "message": "NUTCH-3085 Augment CI by adding code coverage and code quality reporting (#901)\n\n"
    },
    {
      "commit": "89e6ec17bb5adfd53682161f2448acdbf286dc20",
      "tree": "9a05f6ea33d21bd91a431c17e63a17dfcd92b04f",
      "parents": [
        "9f3bb412bce9d828c4eff6714a0c32551bea5875"
      ],
      "author": {
        "name": "Lewis John McGibbney",
        "email": "lewismc@apache.org",
        "time": "Sun Feb 22 09:40:10 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Feb 22 09:40:10 2026 -0800"
      },
      "message": "NUTCH-3085 Augment CI by adding code coverage and code quality reporting  (#900)\n\n"
    },
    {
      "commit": "9f3bb412bce9d828c4eff6714a0c32551bea5875",
      "tree": "35bf5ddc415aa62ae1d451a77e6f613074691973",
      "parents": [
        "21fd780b96fdcf0af5e56b78c2ab90d334f3305e"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sun Feb 22 09:15:11 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Feb 22 09:15:11 2026 -0800"
      },
      "message": "Bump SonarSource/sonarqube-scan-action from 5 to 6 in /.github/workflows (#899)\n\nBumps [SonarSource/sonarqube-scan-action](https://github.com/sonarsource/sonarqube-scan-action) from 5 to 6.\n- [Release notes](https://github.com/sonarsource/sonarqube-scan-action/releases)\n- [Commits](https://github.com/sonarsource/sonarqube-scan-action/compare/v5...v6)\n\n---\nupdated-dependencies:\n- dependency-name: SonarSource/sonarqube-scan-action\n  dependency-version: \u00276\u0027\n  dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "21fd780b96fdcf0af5e56b78c2ab90d334f3305e",
      "tree": "e77e00580c01515a925e81d658921d6dd3b95966",
      "parents": [
        "39cfc61696476304fc8071967a9117d59a97a67e"
      ],
      "author": {
        "name": "Lewis John McGibbney",
        "email": "lewismc@apache.org",
        "time": "Sun Feb 22 09:12:45 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Feb 22 09:12:45 2026 -0800"
      },
      "message": "NUTCH-3085 Augment CI by adding code coverage and code quality reporting (#898)\n\n"
    },
    {
      "commit": "39cfc61696476304fc8071967a9117d59a97a67e",
      "tree": "08020aa11b5aa971095f3c0fc4aaf7c1a3191edd",
      "parents": [
        "64ac8b46347e6d836fc7c8ef693065742bf519e6"
      ],
      "author": {
        "name": "Lewis John McGibbney",
        "email": "lewismc@apache.org",
        "time": "Sun Feb 22 08:29:32 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Feb 22 08:29:32 2026 -0800"
      },
      "message": "NUTCH-3085 Augment CI by adding code coverage and code quality reporting (#897)\n\n"
    },
    {
      "commit": "64ac8b46347e6d836fc7c8ef693065742bf519e6",
      "tree": "2c1f8721c30c32217842ace4d14fd8c70e75782a",
      "parents": [
        "ceb23e111caa8eb079f703a0fca04ca934cfb29f"
      ],
      "author": {
        "name": "Lewis John McGibbney",
        "email": "lewismc@apache.org",
        "time": "Sat Feb 21 08:42:16 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Feb 21 08:42:16 2026 -0800"
      },
      "message": "NUTCH-3154 Implement integration testing framework for Nutch IndexWriter plugins using Testcontainers (#895)\n\n"
    },
    {
      "commit": "ceb23e111caa8eb079f703a0fca04ca934cfb29f",
      "tree": "f37a77d542777247b31ee17024a32ded1a98829a",
      "parents": [
        "433792770947f5cebf13898e3b11a78870831f5a"
      ],
      "author": {
        "name": "Lewis John McGibbney",
        "email": "lewismc@apache.org",
        "time": "Sat Feb 21 08:26:32 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Feb 21 08:26:32 2026 -0800"
      },
      "message": "NUTCH-3145 Upgrade to JUnit 6 (#883)\n\n"
    },
    {
      "commit": "433792770947f5cebf13898e3b11a78870831f5a",
      "tree": "e97cb4f1e5a5d121b0007b2a900a7dfcafecc3a6",
      "parents": [
        "674914c8edc38775b691aaeca4c9496dc4869801",
        "7d05fec64bd0af643a3eea7cae22b30ef893a93f"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Tue Feb 17 17:51:49 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 17 17:51:49 2026 +0100"
      },
      "message": "Merge pull request #825 from lewismc/NUTCH-3064\n\nNUTCH-3064 Upgrade index-geoip to GeoIP2 5.0.2"
    },
    {
      "commit": "674914c8edc38775b691aaeca4c9496dc4869801",
      "tree": "1d2da3fa76e25e132e4d8c695f1823aed94cdc4c",
      "parents": [
        "195b4c011b29169a9e953bb5af0cd41f30e18009"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Thu Feb 12 10:00:59 2026 +0100"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Tue Feb 17 17:42:10 2026 +0100"
      },
      "message": "Prepare for new development after release of 1.22\n- bump version number -\u003e 1.23-SNAPSHOT\n- update changelog\n- update year\n"
    },
    {
      "commit": "195b4c011b29169a9e953bb5af0cd41f30e18009",
      "tree": "bf5344d55c4beaaf47cf5dd71de6201b79ef8688",
      "parents": [
        "1d25cb8f0f7a97ca80661ea417a29a3644f00536"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Wed Feb 11 20:08:23 2026 +0100"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Thu Feb 12 09:03:33 2026 +0100"
      },
      "message": "NUTCH-3153 Update of license and notice files\n"
    },
    {
      "commit": "1d25cb8f0f7a97ca80661ea417a29a3644f00536",
      "tree": "438c8bd82e1058f6f68ed9eaf3ce33f7bcdc2fbd",
      "parents": [
        "f7c7e1a03cf46cdbbedfe923c0d7a97c34fbf2aa"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Sun Feb 08 23:08:37 2026 +0100"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Wed Feb 11 18:43:57 2026 +0100"
      },
      "message": "NUTCH-3152 Job counters getGroup to use metrics constants\n"
    },
    {
      "commit": "f7c7e1a03cf46cdbbedfe923c0d7a97c34fbf2aa",
      "tree": "e793cfdf861bf64d0356063feceba6942c4dad1c",
      "parents": [
        "1242e22ba44ac743de76c39a35270427c2fee1e4"
      ],
      "author": {
        "name": "Lewis John McGibbney",
        "email": "lewismc@apache.org",
        "time": "Tue Feb 10 11:09:16 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 10 11:09:16 2026 -0800"
      },
      "message": "NUTCH-3150 Expand Caching Hadoop Counter References (#892)\n\n"
    },
    {
      "commit": "1242e22ba44ac743de76c39a35270427c2fee1e4",
      "tree": "327675f6244836184685bce42f93eba93d1946a8",
      "parents": [
        "3101a9e6fd76124ccc204ee3d74e00ee1b5957b8"
      ],
      "author": {
        "name": "Lewis John McGibbney",
        "email": "lewismc@apache.org",
        "time": "Thu Feb 05 14:44:03 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 05 14:44:03 2026 -0800"
      },
      "message": "NUTCH-3142 Add Error Context to Metrics (#882)\n\n"
    },
    {
      "commit": "3101a9e6fd76124ccc204ee3d74e00ee1b5957b8",
      "tree": "0eda1e0bfa30084159c170d13c81643ba7c3bc13",
      "parents": [
        "f8577a0d76ff942410932c68eeb7468e340816c5",
        "713835b73bfd79aba0b66dc93beafb46a2e78cd3"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Tue Feb 03 21:12:07 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 03 21:12:07 2026 +0100"
      },
      "message": "Merge pull request #887 from lewismc/NUTCH-3110\n\nNUTCH-3110 Upgrade to Tika 3.2.3"
    },
    {
      "commit": "f8577a0d76ff942410932c68eeb7468e340816c5",
      "tree": "f922315332a78448d67f3f67bc9c24d36add846d",
      "parents": [
        "7c5a529dc372e905c7d6e585f68fe88071bddd0b"
      ],
      "author": {
        "name": "Lewis John McGibbney",
        "email": "lewismc@apache.org",
        "time": "Tue Jan 20 21:56:58 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 20 21:56:58 2026 -0800"
      },
      "message": "NUTCH-3143 GitHub workflow does not run all unit tests (#890)\n\n"
    },
    {
      "commit": "7c5a529dc372e905c7d6e585f68fe88071bddd0b",
      "tree": "39bea6a217a46854ad2b169dabf1a5e9defc7331",
      "parents": [
        "4207bc31301d16ddd789e8da74fd3d342b809ba9"
      ],
      "author": {
        "name": "Lewis John McGibbney",
        "email": "lewismc@apache.org",
        "time": "Tue Jan 20 21:04:49 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 20 21:04:49 2026 -0800"
      },
      "message": "NUTCH-3143 GitHub workflow does not run all unit tests (#889)\n\n"
    },
    {
      "commit": "7d05fec64bd0af643a3eea7cae22b30ef893a93f",
      "tree": "acf97b84b33b1b80289f2431f189f57ce8f54402",
      "parents": [
        "f36a83656613ff64ef452669f83ea1ad77f4a54e"
      ],
      "author": {
        "name": "lewismc",
        "email": "lewismc@apache.org",
        "time": "Tue Jan 20 20:21:25 2026 -0800"
      },
      "committer": {
        "name": "lewismc",
        "email": "lewismc@apache.org",
        "time": "Tue Jan 20 20:21:25 2026 -0800"
      },
      "message": "NUTCH-3064 Upgrade index-geoip to GeoIP2 5.0.2\n"
    },
    {
      "commit": "f36a83656613ff64ef452669f83ea1ad77f4a54e",
      "tree": "110bb612da451ae1639b32265a86300eb6d1d7fb",
      "parents": [
        "3ddae0ba098edcfcae2a270ecdcdb2f3097efc8c"
      ],
      "author": {
        "name": "lewismc",
        "email": "lewismc@apache.org",
        "time": "Tue Jan 20 20:18:26 2026 -0800"
      },
      "committer": {
        "name": "lewismc",
        "email": "lewismc@apache.org",
        "time": "Tue Jan 20 20:18:26 2026 -0800"
      },
      "message": "NUTCH-3064 Upgrade index-geoip to GeoIP2 5.0.2\n"
    },
    {
      "commit": "3ddae0ba098edcfcae2a270ecdcdb2f3097efc8c",
      "tree": "e0a93212de82ef12d054da98c390cabb6cfc6fbc",
      "parents": [
        "8186b04a74e065af7788376c860339e15de6bb9c",
        "4207bc31301d16ddd789e8da74fd3d342b809ba9"
      ],
      "author": {
        "name": "lewismc",
        "email": "lewismc@apache.org",
        "time": "Fri Jan 16 11:22:51 2026 -0800"
      },
      "committer": {
        "name": "lewismc",
        "email": "lewismc@apache.org",
        "time": "Fri Jan 16 11:22:51 2026 -0800"
      },
      "message": "Merge remote-tracking branch \u0027origin\u0027 into NUTCH-3064\n"
    },
    {
      "commit": "4207bc31301d16ddd789e8da74fd3d342b809ba9",
      "tree": "704e9c39d635436fcb3d99868481dc3fe65185a4",
      "parents": [
        "7f724a9c5553734ed4d3543db2e479d139016c9d"
      ],
      "author": {
        "name": "Lewis John McGibbney",
        "email": "lewismc@apache.org",
        "time": "Mon Jan 12 14:53:56 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 12 14:53:56 2026 -0800"
      },
      "message": "NUTCH-3148 Cache Ivy dependencies in GitHub CI builds (#886)\n\n"
    },
    {
      "commit": "713835b73bfd79aba0b66dc93beafb46a2e78cd3",
      "tree": "857736a88203a3502c0993bda36397e918f9b43c",
      "parents": [
        "8e7bbc416dfb0d46f7424cd0202597cb92a369c9",
        "76ced9b18f9af04764a23ffa9ac811a70517da0f"
      ],
      "author": {
        "name": "lewismc",
        "email": "lewismc@apache.org",
        "time": "Mon Jan 12 14:41:37 2026 -0800"
      },
      "committer": {
        "name": "lewismc",
        "email": "lewismc@apache.org",
        "time": "Mon Jan 12 14:41:37 2026 -0800"
      },
      "message": "NUTCH-3110 Upgrade to Tika 3.2.3\n"
    },
    {
      "commit": "7f724a9c5553734ed4d3543db2e479d139016c9d",
      "tree": "69a6a72004c515532a0e309e0395ac7613f0e4b4",
      "parents": [
        "ddabe969426e0822d425986fb9c3b1ef7aa56006",
        "103fff60836b564b941ac24f31e0be2cfb3df940"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Mon Jan 12 23:23:04 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 12 23:23:04 2026 +0100"
      },
      "message": "Merge pull request #880 from igiguere/NUTCH-1564-AdaptiveFetchSchedule-refetch\n\n[NUTCH-1564] AdaptiveFetchSchedule sync_delta forces refetch of unmodified pages"
    },
    {
      "commit": "ddabe969426e0822d425986fb9c3b1ef7aa56006",
      "tree": "59807a55e50963893e6dfca3e1cec3439213344b",
      "parents": [
        "8e7bbc416dfb0d46f7424cd0202597cb92a369c9"
      ],
      "author": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Wed Jan 07 23:05:54 2026 +0100"
      },
      "committer": {
        "name": "Sebastian Nagel",
        "email": "snagel@apache.org",
        "time": "Mon Jan 12 23:11:51 2026 +0100"
      },
      "message": "NUTCH-3144 URLUtil unit tests fail after upgrade to crawler-commons 1.6\n\n- adapt unit tests to changes introduced in\n  https://github.com/crawler-commons/crawler-commons/pull/478\n- test for example given in Javadoc of getDomainSuffix\n"
    },
    {
      "commit": "8e7bbc416dfb0d46f7424cd0202597cb92a369c9",
      "tree": "63f3042d3370252210aa96c4df3fa3aaeda6c55d",
      "parents": [
        "ec8747a3feb4d1337ac2fa85b5961e331540c071"
      ],
      "author": {
        "name": "Lewis John McGibbney",
        "email": "lewismc@apache.org",
        "time": "Mon Jan 12 13:12:38 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 12 13:12:38 2026 -0800"
      },
      "message": "NUTCH-3143 GitHub workflow does not run all unit tests (#885)\n\n"
    },
    {
      "commit": "ec8747a3feb4d1337ac2fa85b5961e331540c071",
      "tree": "30ee0cdf6df8dd788959efeef3868f81fa133108",
      "parents": [
        "66f678e62f57de30e605a1e0d23d7923bf21c780"
      ],
      "author": {
        "name": "Lewis John McGibbney",
        "email": "lewismc@apache.org",
        "time": "Sun Jan 11 20:45:20 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jan 11 20:45:20 2026 -0800"
      },
      "message": "NUTCH-3143 GitHub workflow does not run all unit tests (#884)\n\n"
    },
    {
      "commit": "8186b04a74e065af7788376c860339e15de6bb9c",
      "tree": "7b5dd397c31656b68f1e24da8dc106dd15679e81",
      "parents": [
        "c01cc227e09bf2bd149689d69e8c4f7163fa0987"
      ],
      "author": {
        "name": "lewismc",
        "email": "lewismc@apache.org",
        "time": "Sun Jan 11 17:44:32 2026 -0800"
      },
      "committer": {
        "name": "lewismc",
        "email": "lewismc@apache.org",
        "time": "Sun Jan 11 17:44:32 2026 -0800"
      },
      "message": "NUTCH-3064: Upgrade index-geoip to GeoIP2 5.0.2\n"
    },
    {
      "commit": "c01cc227e09bf2bd149689d69e8c4f7163fa0987",
      "tree": "b20377b13b251c328f2a411cc6ce80698e2fafc8",
      "parents": [
        "b84949911784e53d5a171413f8164ab5a601a86c"
      ],
      "author": {
        "name": "lewismc",
        "email": "lewismc@apache.org",
        "time": "Sun Jan 11 16:52:51 2026 -0800"
      },
      "committer": {
        "name": "lewismc",
        "email": "lewismc@apache.org",
        "time": "Sun Jan 11 16:52:51 2026 -0800"
      },
      "message": "NUTCH-3064: Upgrade index-geoip to GeoIP2 5.0.2\n"
    },
    {
      "commit": "b84949911784e53d5a171413f8164ab5a601a86c",
      "tree": "9cb41d7a8543099a37c3ada310ff2d9e4606d635",
      "parents": [
        "66f678e62f57de30e605a1e0d23d7923bf21c780"
      ],
      "author": {
        "name": "lewismc",
        "email": "lewismc@apache.org",
        "time": "Sun Jan 11 16:47:23 2026 -0800"
      },
      "committer": {
        "name": "lewismc",
        "email": "lewismc@apache.org",
        "time": "Sun Jan 11 16:47:23 2026 -0800"
      },
      "message": "NUTCH-3064: Upgrade index-geoip to GeoIP2 5.0.2\n"
    }
  ],
  "next": "66f678e62f57de30e605a1e0d23d7923bf21c780"
}
