JSON-Rohbericht maschinenlesbar
{
"data": {
"repo": {
"topics": [
"gradle",
"java",
"plugin-gradle",
"formatter",
"kotlin",
"scala",
"groovy",
"maven",
"prettier",
"javascript",
"typescript",
"sql",
"css",
"sass"
],
"is_fork": false,
"size_kb": 23705,
"has_wiki": false,
"homepage": null,
"languages": {
"C": 63,
"C#": 316,
"CSS": 210,
"Java": 2408611,
"ANTLR": 487,
"Shell": 12054,
"Kotlin": 282,
"MATLAB": 67,
"Gherkin": 4397,
"Mustache": 6280,
"JavaScript": 11654,
"TypeScript": 1309
},
"pushed_at": "2026-07-28T02:36:13Z",
"created_at": "2015-04-27T19:10:58Z",
"owner_type": "Organization",
"updated_at": "2026-07-28T11:12:34Z",
"description": "Keep your code spotless",
"is_archived": false,
"is_disabled": false,
"license_spdx": "Apache-2.0",
"default_branch": "main",
"license_spdx_raw": "Apache-2.0",
"primary_language": "Java",
"significant_languages": [
"Java"
]
},
"owner": {
"blog": "https://www.diffplug.com",
"name": "DiffPlug",
"type": "Organization",
"login": "diffplug",
"company": null,
"location": "San Francisco, CA",
"followers": 74,
"avatar_url": "https://avatars.githubusercontent.com/u/6572898?v=4",
"created_at": "2014-02-03T09:05:47Z",
"is_verified": null,
"public_repos": 61,
"account_age_days": 4558
},
"license": {
"state": "standard",
"spdx_id": "Apache-2.0",
"raw_spdx": "Apache-2.0",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "maven/3.9.0",
"kind": "other",
"published_at": "2026-07-27T20:23:32Z"
},
{
"tag": "gradle/8.9.0",
"kind": "other",
"published_at": "2026-07-27T20:21:13Z"
},
{
"tag": "lib/4.9.0",
"kind": "other",
"published_at": "2026-07-27T20:20:29Z"
},
{
"tag": "maven/3.8.0",
"kind": "other",
"published_at": "2026-06-29T21:20:24Z"
},
{
"tag": "gradle/8.8.0",
"kind": "other",
"published_at": "2026-06-29T21:18:22Z"
},
{
"tag": "lib/4.8.0",
"kind": "other",
"published_at": "2026-06-29T21:17:38Z"
},
{
"tag": "maven/3.7.0",
"kind": "other",
"published_at": "2026-06-16T05:59:56Z"
},
{
"tag": "gradle/8.7.0",
"kind": "other",
"published_at": "2026-06-16T05:57:41Z"
},
{
"tag": "lib/4.7.0",
"kind": "other",
"published_at": "2026-06-16T05:56:55Z"
},
{
"tag": "maven/3.6.0",
"kind": "other",
"published_at": "2026-05-27T15:55:48Z"
},
{
"tag": "gradle/8.6.0",
"kind": "other",
"published_at": "2026-05-27T15:54:00Z"
},
{
"tag": "lib/4.6.2",
"kind": "other",
"published_at": "2026-05-27T15:53:15Z"
},
{
"tag": "maven/3.5.1",
"kind": "other",
"published_at": "2026-05-15T22:50:14Z"
},
{
"tag": "gradle/8.5.1",
"kind": "other",
"published_at": "2026-05-15T22:48:02Z"
},
{
"tag": "lib/4.6.1",
"kind": "other",
"published_at": "2026-05-15T22:47:06Z"
},
{
"tag": "maven/3.5.0",
"kind": "other",
"published_at": "2026-05-14T19:00:33Z"
},
{
"tag": "gradle/8.5.0",
"kind": "other",
"published_at": "2026-05-14T18:58:29Z"
},
{
"tag": "lib/4.6.0",
"kind": "other",
"published_at": "2026-05-14T18:57:46Z"
},
{
"tag": "maven/3.4.0",
"kind": "other",
"published_at": "2026-03-18T17:41:21Z"
},
{
"tag": "gradle/8.4.0",
"kind": "other",
"published_at": "2026-03-18T17:39:11Z"
},
{
"tag": "lib/4.5.0",
"kind": "other",
"published_at": "2026-03-18T17:38:26Z"
},
{
"tag": "maven/3.3.0",
"kind": "other",
"published_at": "2026-03-02T23:40:39Z"
},
{
"tag": "gradle/8.3.0",
"kind": "other",
"published_at": "2026-03-02T23:38:39Z"
},
{
"tag": "lib/4.4.0",
"kind": "other",
"published_at": "2026-03-02T23:37:55Z"
},
{
"tag": "maven/3.2.1",
"kind": "other",
"published_at": "2026-01-27T21:49:31Z"
},
{
"tag": "gradle/8.2.1",
"kind": "other",
"published_at": "2026-01-27T21:47:40Z"
},
{
"tag": "lib/4.3.0",
"kind": "other",
"published_at": "2026-01-27T21:46:56Z"
},
{
"tag": "gradle/8.2.0",
"kind": "other",
"published_at": "2026-01-22T21:06:13Z"
},
{
"tag": "maven/3.2.0",
"kind": "other",
"published_at": "2026-01-22T21:02:59Z"
},
{
"tag": "lib/4.2.0",
"kind": "other",
"published_at": "2026-01-22T20:49:35Z"
},
{
"tag": "maven/3.1.0",
"kind": "other",
"published_at": "2025-11-18T23:33:03Z"
},
{
"tag": "gradle/8.1.0",
"kind": "other",
"published_at": "2025-11-18T23:31:14Z"
},
{
"tag": "lib/4.1.0",
"kind": "other",
"published_at": "2025-11-18T23:30:25Z"
},
{
"tag": "maven/3.0.0",
"kind": "other",
"published_at": "2025-09-24T17:18:29Z"
},
{
"tag": "gradle/8.0.0",
"kind": "other",
"published_at": "2025-09-24T17:15:22Z"
},
{
"tag": "maven/2.46.1",
"kind": "other",
"published_at": "2025-07-21T19:18:04Z"
},
{
"tag": "gradle/7.2.1",
"kind": "other",
"published_at": "2025-07-21T19:16:22Z"
},
{
"tag": "lib/3.3.1",
"kind": "other",
"published_at": "2025-07-21T19:15:25Z"
},
{
"tag": "maven/2.46.0",
"kind": "other",
"published_at": "2025-07-20T18:58:43Z"
},
{
"tag": "gradle/7.2.0",
"kind": "other",
"published_at": "2025-07-20T18:57:13Z"
},
{
"tag": "lib/3.3.0",
"kind": "other",
"published_at": "2025-07-20T18:56:23Z"
},
{
"tag": "maven/2.45.0",
"kind": "other",
"published_at": "2025-07-07T21:45:01Z"
},
{
"tag": "gradle/7.1.0",
"kind": "other",
"published_at": "2025-07-07T21:43:31Z"
},
{
"tag": "lib/3.2.0",
"kind": "other",
"published_at": "2025-07-07T21:42:28Z"
},
{
"tag": "maven/2.44.5",
"kind": "other",
"published_at": "2025-05-27T22:00:58Z"
},
{
"tag": "gradle/7.0.4",
"kind": "other",
"published_at": "2025-05-27T21:59:27Z"
},
{
"tag": "lib/3.1.2",
"kind": "other",
"published_at": "2025-05-27T21:56:40Z"
},
{
"tag": "maven/2.44.4",
"kind": "other",
"published_at": "2025-04-07T22:49:47Z"
},
{
"tag": "gradle/7.0.3",
"kind": "other",
"published_at": "2025-04-07T22:47:51Z"
},
{
"tag": "lib/3.1.1",
"kind": "other",
"published_at": "2025-04-07T22:46:23Z"
},
{
"tag": "maven/2.44.3",
"kind": "other",
"published_at": "2025-02-20T23:03:52Z"
},
{
"tag": "lib/3.1.0",
"kind": "other",
"published_at": "2025-02-20T18:31:43Z"
},
{
"tag": "maven/2.44.2",
"kind": "other",
"published_at": "2025-01-14T21:18:02Z"
},
{
"tag": "gradle/7.0.2",
"kind": "other",
"published_at": "2025-01-14T21:10:43Z"
},
{
"tag": "lib/3.0.2",
"kind": "other",
"published_at": "2025-01-14T21:04:53Z"
},
{
"tag": "maven/2.44.1",
"kind": "other",
"published_at": "2025-01-07T16:33:08Z"
},
{
"tag": "gradle/7.0.1",
"kind": "other",
"published_at": "2025-01-07T16:30:18Z"
},
{
"tag": "lib/3.0.1",
"kind": "other",
"published_at": "2025-01-07T16:27:27Z"
},
{
"tag": "maven/2.44.0",
"kind": "other",
"published_at": "2025-01-06T22:21:08Z"
},
{
"tag": "gradle/7.0.0",
"kind": "other",
"published_at": "2025-01-06T22:18:22Z"
},
{
"tag": "lib/3.0.0",
"kind": "other",
"published_at": "2025-01-06T22:13:07Z"
},
{
"tag": "maven/2.44.0.BETA4",
"kind": "other",
"published_at": "2024-10-24T15:37:38Z"
},
{
"tag": "gradle/7.0.0.BETA4",
"kind": "other",
"published_at": "2024-10-24T15:34:29Z"
},
{
"tag": "lib/3.0.0.BETA4",
"kind": "other",
"published_at": "2024-10-24T15:31:30Z"
},
{
"tag": "maven/2.44.0.BETA3",
"kind": "other",
"published_at": "2024-10-15T17:07:11Z"
},
{
"tag": "gradle/7.0.0.BETA3",
"kind": "other",
"published_at": "2024-10-15T17:05:43Z"
},
{
"tag": "lib/3.0.0.BETA3",
"kind": "other",
"published_at": "2024-10-15T17:03:52Z"
},
{
"tag": "maven/2.44.0.BETA2",
"kind": "other",
"published_at": "2024-08-25T21:09:15Z"
},
{
"tag": "gradle/7.0.0.BETA2",
"kind": "other",
"published_at": "2024-08-25T21:04:02Z"
},
{
"tag": "lib/3.0.0.BETA2",
"kind": "other",
"published_at": "2024-08-25T20:39:05Z"
}
],
"recent_commits": [
{
"oid": "ff6ac27b7ce81912fddcab061a6aa448bee621db",
"body": null,
"is_bot": false,
"headline": "Published maven/3.9.0",
"author_name": "runner",
"author_login": null,
"committed_at": "2026-07-27T20:23:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cbd01c4e4b91cea538691d4fe6a8f929d75c27c6",
"body": null,
"is_bot": false,
"headline": "Published gradle/8.9.0",
"author_name": "runner",
"author_login": null,
"committed_at": "2026-07-27T20:21:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c724e704341f4c7461c684a6570c42e61da20d80",
"body": null,
"is_bot": false,
"headline": "Published lib/4.9.0",
"author_name": "runner",
"author_login": null,
"committed_at": "2026-07-27T20:20:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "793638d9f9c45ffe11928c3de4bd4e3090978acc",
"body": "…(#2995)",
"is_bot": false,
"headline": "Replace de.atextor:turtle-formatter with cool.rdf:cool-rdf-formatter …",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-07-27T20:17:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3cb7227bb7a9c2d1ce6fbdb9ca1d9a91585c7122",
"body": "Combine the duplicate `## Changes` section in the lib changelog into\n[Unreleased], append the Java 25+ requirement to the RDF/turtle bullets\nin lib and maven, and fix the `ii#` typo in the maven changelog header.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Note Java 25+ requirement for RDF formatter; tidy changelogs",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-07-27T19:00:13Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "fd9eb96c8727a2fe136e496224ed4d62b763f7d0",
"body": null,
"is_bot": false,
"headline": "Merge remote-tracking branch 'origin/main' into use-cool-rdf-formatter",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-07-27T18:42:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d4071096081a7ad16ccfa5b0170c51b04a11c3e4",
"body": null,
"is_bot": false,
"headline": "Add support for prince-of-space Java formatter (#2991)",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-07-27T18:41:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cb64859b1fe6a806f9ff390c02006013b8e9e8c8",
"body": null,
"is_bot": false,
"headline": "Merge remote-tracking branch 'origin/main' into use-cool-rdf-formatter",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-07-27T18:41:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f88db438eda2eca45631ffac94ab55129c5efbc8",
"body": null,
"is_bot": false,
"headline": "Bump tabletest-formatter to 1.1.2 (#3001)",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-07-27T18:09:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ec7db39f76f37bdea4d41cac215424b722b08875",
"body": null,
"is_bot": false,
"headline": "Bump tabletest-formatter to 1.1.2",
"author_name": "Nils Christian Haugen",
"author_login": "nchaugen",
"committed_at": "2026-07-27T08:09:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a0e59b6d302985e86cb7942cc7b8838bcffd4d14",
"body": null,
"is_bot": false,
"headline": "Remove the round of tests for JRE 25 (breaks elsewhere)",
"author_name": "Florian Kleedorfer",
"author_login": "fkleedorfer",
"committed_at": "2026-07-23T19:56:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "78fd69b2fa7e03c999181e5726e0050b222d00d3",
"body": null,
"is_bot": false,
"headline": "Add a round of tests for JRE 25",
"author_name": "Florian Kleedorfer",
"author_login": "fkleedorfer",
"committed_at": "2026-07-23T19:34:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "411f21a884ff60432a30f5deff285e122aa50cfa",
"body": null,
"is_bot": false,
"headline": "Restrict RDF plugin tests to JRE 25",
"author_name": "Florian Kleedorfer",
"author_login": "fkleedorfer",
"committed_at": "2026-07-23T19:11:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d3f924db9ff513592b6c4e4bb8f2ef8975457622",
"body": null,
"is_bot": false,
"headline": "Restrict RDF plugin to JRE 25+",
"author_name": "Florian Kleedorfer",
"author_login": "fkleedorfer",
"committed_at": "2026-07-23T18:38:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8b26c4061b4e587c5a636f41b9bd57e520cb4d3f",
"body": "Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add PrinceOfSpaceStep to the root README feature matrix",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-07-22T17:30:54Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "60035f30693477f120ec109d5c3d1d1ee64b36cf",
"body": "# Conflicts:\n#\tCHANGES.md\n#\tplugin-gradle/CHANGES.md\n#\tplugin-maven/CHANGES.md",
"is_bot": false,
"headline": "Merge remote-tracking branch 'origin/main' into princeofspace-support",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-07-22T17:30:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "97d70dce77c14f63731da102a181d50f19987631",
"body": "Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Run spotlessApply",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-07-22T17:29:53Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "68216609385a3f0699710a52afc61c68f8184d21",
"body": "The PR excluded RDF tests from CI by adding 'rdf' to the special-tests\nexclusion list. Remove it and drop @Tag(\"rdf\") so these tests run\nwith the rest of the suite.",
"is_bot": false,
"headline": "Run RDF tests on CI by default",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-07-22T16:54:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cfbe9e2a64051c983da7b1c2d08f878498c18a42",
"body": null,
"is_bot": false,
"headline": "Fix corrupted character encoding in plugin-maven README",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-07-22T16:50:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b26888cbe320a7f5fc8234097bda28d6ffb2fb4b",
"body": "# Conflicts:\n#\tplugin-maven/CHANGES.md",
"is_bot": false,
"headline": "Merge remote-tracking branch 'origin/main' into use-cool-rdf-formatter",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-07-22T16:50:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3924217d5f711a9fa41dcb71810f6e3649328135",
"body": "…bject` (#2994)",
"is_bot": false,
"headline": "Fixes a race in `FormatterStepSerializationRoundtrip.HackClone.writeO…",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-07-22T16:37:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fccb73438e945e3fab4ec61a4dcc3f3b49eb79d1",
"body": null,
"is_bot": false,
"headline": "Merge branch 'main' into hackclone-race",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-07-22T16:34:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b91b77e1bb47900225cc17fea66bda3ab8135a7a",
"body": null,
"is_bot": false,
"headline": "Update default Greclipse version (#2989)",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-07-22T16:31:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e2754375922f86137866dd5cbc833bcb163b2b11",
"body": null,
"is_bot": false,
"headline": "Add change entry to maven changelog",
"author_name": "Florian Kleedorfer",
"author_login": "fkleedorfer",
"committed_at": "2026-07-21T08:15:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e4e3e0da019634627c69af70a874d6b606beafb2",
"body": null,
"is_bot": false,
"headline": "Format code",
"author_name": "Florian Kleedorfer",
"author_login": "fkleedorfer",
"committed_at": "2026-07-20T19:55:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "52120be19364ac8f128ab446de0353b628adc5a7",
"body": null,
"is_bot": false,
"headline": "Bring back accidentally deleted new tests",
"author_name": "Florian Kleedorfer",
"author_login": "fkleedorfer",
"committed_at": "2026-07-20T16:15:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c592773109973b9f854c8c7e8b4c9224412ad92e",
"body": "- Add 'rdf' to the special tests list in gradle/special-tests.gradle\n- Tag RdfFormatterTest class with @Tag(\"rdf\") to exclude from standard build matrix\n- RDF tests can still be run separately with ./gradlew testRdf on Java 25+\n\nThis resolves UnsupportedClassVersionError (class file version 69.0) when running tests with Java 17, 21, and 24 in the CI pipeline.",
"is_bot": false,
"headline": "Fix failing RDF tests by excluding them from default test runs",
"author_name": "Florian Kleedorfer",
"author_login": "fkleedorfer",
"committed_at": "2026-07-20T16:11:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4979160ea9bd87159b7e3e58eea9f407f3c98dae",
"body": "…its new functionality",
"is_bot": false,
"headline": "Upgrade to cool.rdf:cool-rdf-formatter:2.0.1 and add tests to verify …",
"author_name": "Florian Kleedorfer",
"author_login": "fkleedorfer",
"committed_at": "2026-07-17T13:48:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4d53ab16015b1565fd98a5c0a5993519a7ccb56a",
"body": null,
"is_bot": false,
"headline": "Format sources",
"author_name": "Florian Kleedorfer",
"author_login": "fkleedorfer",
"committed_at": "2026-07-09T07:15:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "23de600dc2bb9a5c3bb3e4313e6f16e310ed728c",
"body": null,
"is_bot": false,
"headline": "Update README and CHANGES.md, add a test",
"author_name": "Florian Kleedorfer",
"author_login": "fkleedorfer",
"committed_at": "2026-07-08T13:48:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4aafbbfc72e6a51135212467cd526771a37d94a8",
"body": null,
"is_bot": false,
"headline": "Replace de.atextor:turtle-formatter with cool.rdf:cool-rdf-formatter",
"author_name": "Florian Kleedorfer",
"author_login": "fkleedorfer",
"committed_at": "2026-07-08T08:59:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "52c1161575a67a0707aac265a9c458867fd0ceef",
"body": null,
"is_bot": false,
"headline": "docs: add Gradle changelog entry",
"author_name": "Brice Dutheil",
"author_login": "bric3",
"committed_at": "2026-07-06T12:46:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0203154b17dbeac3bfacd1bb92d4545f2eebdc81",
"body": null,
"is_bot": false,
"headline": "fix: prevent HackClone serialization race",
"author_name": "Brice Dutheil",
"author_login": "bric3",
"committed_at": "2026-07-06T12:38:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "462464a24fe81a5c0f1abe785baa8465052f85cb",
"body": null,
"is_bot": false,
"headline": "Update default Greclipse version (#2989)",
"author_name": "Jochen Berger",
"author_login": "jochenberger",
"committed_at": "2026-07-01T06:54:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7e9f655bad36fa90f647ab0f313a6172059d0770",
"body": null,
"is_bot": false,
"headline": "Update prince-of-space default version to 2.2.0",
"author_name": "Andrew Gustafson",
"author_login": "agustafson",
"committed_at": "2026-06-30T20:50:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a0a09ad9c34acc3e10de0c0a3cc2426a40b814db",
"body": null,
"is_bot": false,
"headline": "Link CHANGES.md entries to PR #2991",
"author_name": "Andrew Gustafson",
"author_login": "agustafson",
"committed_at": "2026-06-30T17:05:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f08ae2093bb956f57d2219b94f25e5d7ab671aa1",
"body": "Adds io.princeofspace prince-of-space as a Java FormatterStep, following\nthe same JarState + reflection glue pattern used for palantir-java-format\nand google-java-format. Wires it into the Gradle (princeOfSpace()) and\nMaven (<princeOfSpace>) plugins with all of prince-of-space's\nFormatterConfig knobs exposed (indentStyle, indentSize, lineLength,\nwrapStyle, closingParenOnNewLine, trailingCommas, javaLanguageLevel).",
"is_bot": false,
"headline": "Add support for prince-of-space Java formatter",
"author_name": "Andrew Gustafson",
"author_login": "agustafson",
"committed_at": "2026-06-30T16:56:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "03d43ba2cdc81050e07b62646c08b22e39505368",
"body": null,
"is_bot": false,
"headline": "Published maven/3.8.0",
"author_name": "runner",
"author_login": null,
"committed_at": "2026-06-29T21:20:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8b80c1388017f9b390fd9681007ba58a8c5d77f7",
"body": null,
"is_bot": false,
"headline": "Published gradle/8.8.0",
"author_name": "runner",
"author_login": null,
"committed_at": "2026-06-29T21:18:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8ee6cf904ae77a4baec287132c69a63d4b5f4052",
"body": null,
"is_bot": false,
"headline": "Published lib/4.8.0",
"author_name": "runner",
"author_login": null,
"committed_at": "2026-06-29T21:17:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6c02c0bf3fa0914206b28b2e9abec5e2061273e4",
"body": null,
"is_bot": false,
"headline": "Add missing changelog entry.",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-06-29T21:15:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "264f4cc904ad85149a90822c0835c17a615cee8e",
"body": null,
"is_bot": false,
"headline": "Add regression test for forbidWildcardImports inside toggleOffOn (#2982)",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-06-29T20:51:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6abb06449354899642d716dfb3daf67a888bac9b",
"body": "…984)",
"is_bot": false,
"headline": "fix #2983, expandWildcardImports triggers a full transitive reso… (#2…",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-06-29T20:50:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f4536d41caebdda8201cdb126832ea96a75e5afe",
"body": null,
"is_bot": false,
"headline": "Update plugin spotbugs to v6.5.8 (#2987)",
"author_name": "Zongle Wang",
"author_login": "Goooler",
"committed_at": "2026-06-29T12:15:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "873454acbc24dd66a0d334f29b30d5dcb645cd0a",
"body": null,
"is_bot": true,
"headline": "Update plugin spotbugs to v6.5.8",
"author_name": "renovate[bot]",
"author_login": "renovate[bot]",
"committed_at": "2026-06-29T07:52:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "000b8a8f9f0398f60aeafee4d2fbd90a6a61b7f1",
"body": null,
"is_bot": false,
"headline": "Update dependency org.junit.jupiter:junit-jupiter to v6.1.1 (#2985)",
"author_name": "Zongle Wang",
"author_login": "Goooler",
"committed_at": "2026-06-29T07:47:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "84ebcab6a588c0ae7ddb8d883f5f60947e488e0a",
"body": null,
"is_bot": true,
"headline": "Update dependency org.junit.jupiter:junit-jupiter to v6.1.1",
"author_name": "renovate[bot]",
"author_login": "renovate[bot]",
"committed_at": "2026-06-28T10:20:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "32b9ff4a53330e707a8b4f842a418fcca6b35699",
"body": null,
"is_bot": false,
"headline": "Update gradle/actions action to v6 (#2980)",
"author_name": "Zongle Wang",
"author_login": "Goooler",
"committed_at": "2026-06-28T10:17:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "28f25c2b14a3b27866ab3a87cbf99c85447db768",
"body": "…lution of the project's runtime dependencies — even when no formatter step needs it",
"is_bot": false,
"headline": "fix: fix #2983, expandWildcardImports triggers a full transitive reso…",
"author_name": "tavori",
"author_login": "tavori",
"committed_at": "2026-06-26T06:55:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5c59964c0fd8fd1e52320dcfcf1066991782b7c4",
"body": null,
"is_bot": false,
"headline": "Add regression test for forbidWildcardImports inside toggleOffOn",
"author_name": "Mirko Alicastro",
"author_login": "mirkoalicastro",
"committed_at": "2026-06-22T19:45:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fd2723edba44793a88934329a3c2209054974b91",
"body": null,
"is_bot": true,
"headline": "Update gradle/actions action to v6",
"author_name": "renovate[bot]",
"author_login": "renovate[bot]",
"committed_at": "2026-06-16T18:31:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "58e96f324e712d536c9c6a9622a5a9ddd7788c19",
"body": null,
"is_bot": false,
"headline": "Update selfie to v3.1.1 (#2978)",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-06-16T18:26:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6d9c1b926ab99a214d1785f4f04132d8e61fb268",
"body": "…header copyright year/year range (#2965)",
"is_bot": false,
"headline": "feat(spotless/gradle-plugin): Allow custom string format for license …",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-06-16T18:26:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3595eccf7bf4eada544fa1f0e5e83ea65857f713",
"body": null,
"is_bot": false,
"headline": "Update plugin spotbugs to v6.5.6 (#2974)",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-06-16T18:03:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9bc3b989b24a5d551514d7cfbdb18e50a8514965",
"body": null,
"is_bot": true,
"headline": "Update selfie to v3.1.1",
"author_name": "renovate[bot]",
"author_login": "renovate[bot]",
"committed_at": "2026-06-16T17:41:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5af055648d128a7be660f8accf8f494d8f78207b",
"body": null,
"is_bot": false,
"headline": "Merge branch 'main' into renovate/com.github.spotbugs-6.x",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-06-16T17:36:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8ebb5659dba2b38263e5c4678784b43a0c91c506",
"body": null,
"is_bot": false,
"headline": "Update plugin com.gradle.develocity to v4.4.3 (#2977)",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-06-16T17:35:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9de4962d4c75d955d92ce6307c6cf71764338516",
"body": "The 8.7.0/3.7.0 releases were published after this branch added its\nchangelog entries, sweeping them into the now-versioned sections. Move\nthem back into [Unreleased] since #2965 is not yet released.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Move #2965 changelog notes into the Unreleased section",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-06-16T17:06:41Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "4d6c11f8ba67e13f9236fca9bae4c7a9f2cb86ec",
"body": null,
"is_bot": true,
"headline": "Update plugin com.gradle.develocity to v4.4.3",
"author_name": "renovate[bot]",
"author_login": "renovate[bot]",
"committed_at": "2026-06-16T16:53:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "54ee563a0da270de0871e1fa3af442a636040135",
"body": null,
"is_bot": false,
"headline": "Merge branch 'main' into renovate/com.github.spotbugs-6.x",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-06-16T16:45:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "449ea6a2e6fb93b2e05d7b35b2a672cd0d726f38",
"body": null,
"is_bot": false,
"headline": "Update plugin spotless to v8.7.0 (#2975)",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-06-16T16:44:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "eb68abd1dbabd64e4d82a50ad95e5d2b02706feb",
"body": null,
"is_bot": false,
"headline": "Include ktfmt version bump in CHANGES.md (#2976)",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-06-16T15:21:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "68fb3b4b377d5ce8e064fa0ba37c22a541c6ea9b",
"body": "SpotBugs plugin 6.5.6 bundles SpotBugs 4.10.2, which adds detectors\nthat flag intentional pre-existing code: sun.misc.Unsafe usage in\nModuleHelper (required for module opening), deliberate synchronization\npatterns, and method-accessibility increases. Exclude these patterns,\nmatching the existing convention in these filter files.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Suppress new SpotBugs 4.10.2 detectors flagging pre-existing code",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-06-16T15:19:17Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "1a0f73b4b1fb4eb71d25fac18dee98d3b7c81e2c",
"body": "Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Reformat with spotless 8.7.0 (continuation indentation change)",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-06-16T15:02:52Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "5ceac1d0678f3ca49623f930a53b9cd6209326cd",
"body": null,
"is_bot": false,
"headline": "Test with format that will add spaces",
"author_name": "Maciej Sitarz",
"author_login": "Maciej-Sitarz-IBM",
"committed_at": "2026-06-16T13:46:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "09e74d392fce26454a917dfd6b4fb6fd9bc9c30e",
"body": null,
"is_bot": false,
"headline": "Use 'try-with-resources' for 'Git' object",
"author_name": "Maciej Sitarz",
"author_login": "Maciej-Sitarz-IBM",
"committed_at": "2026-06-16T10:47:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "86e8bc7fec2a5931d50fcb3ece8a16297441b7df",
"body": "…efinition",
"is_bot": false,
"headline": "Remove 'java.io.IOException' never thrown exception from the method d…",
"author_name": "Maciej Sitarz",
"author_login": "Maciej-Sitarz-IBM",
"committed_at": "2026-06-16T10:44:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7d16df92b41a5c3ace9a4b3399999cc0e049c1f9",
"body": null,
"is_bot": false,
"headline": "Update plugin-maven/CHANGES.md",
"author_name": "Maciej Sitarz",
"author_login": "Maciej-Sitarz-IBM",
"committed_at": "2026-06-16T10:41:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "aaa21c96cd508cf7bfb7fe556e5a73c15269efdd",
"body": null,
"is_bot": false,
"headline": "Test improvements",
"author_name": "Maciej Sitarz",
"author_login": "Maciej-Sitarz-IBM",
"committed_at": "2026-06-16T10:38:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ddb9fc494c747334786c714e8bda56e86a68bd84",
"body": null,
"is_bot": false,
"headline": "Implementation improvements and code cleanup",
"author_name": "Maciej Sitarz",
"author_login": "Maciej-Sitarz-IBM",
"committed_at": "2026-06-16T10:38:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f3ae7868279db9883bf9201903f27303b2606f88",
"body": "…yright_year_format",
"is_bot": false,
"headline": "Merge remote-tracking branch 'upstream/main' into msitarz/feature/cop…",
"author_name": "Maciej Sitarz",
"author_login": "Maciej-Sitarz-IBM",
"committed_at": "2026-06-16T10:29:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "aafbe230dbe1ce46e3a2d241e74522e927f2ea92",
"body": null,
"is_bot": false,
"headline": "Include ktfmt version bump in CHANGES.md",
"author_name": "Erik Ghonyan",
"author_login": "erikghonyan",
"committed_at": "2026-06-16T08:06:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "21e42d1b1bde76507d8c4ce254140d9de7e1dec7",
"body": null,
"is_bot": true,
"headline": "Update plugin spotless to v8.7.0",
"author_name": "renovate[bot]",
"author_login": "renovate[bot]",
"committed_at": "2026-06-16T06:38:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ef7703ae87f70bbf63d77c5275e6c687785706bc",
"body": null,
"is_bot": false,
"headline": "Published maven/3.7.0",
"author_name": "runner",
"author_login": null,
"committed_at": "2026-06-16T05:59:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "91113e0fc7ec05f9a5f6a627869671290b4fa659",
"body": null,
"is_bot": false,
"headline": "Published gradle/8.7.0",
"author_name": "runner",
"author_login": null,
"committed_at": "2026-06-16T05:57:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "611b48ea943e9e8faf8d98db206dcf7f15cf8ef3",
"body": null,
"is_bot": false,
"headline": "Published lib/4.7.0",
"author_name": "runner",
"author_login": null,
"committed_at": "2026-06-16T05:56:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5f3a85fd15241450ba9b33e43507ee995176032b",
"body": "GNU base64 wraps at 76 columns; the wrapped newline corrupted the\n`Authorization: basic ...` extraheader, so `git fetch origin main`\ngot a 400 Bad Request. `-w0` disables wrapping.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "ci(deploy): use `base64 -w0` so the auth header has no embedded newline",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-06-16T05:54:46Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "f84f02512b83d2ebe2aede8e0c70837b3592e98f",
"body": "The `git fetch origin main` step started failing instantly with\n`fatal: unable to access 'https://github.com/...': Failed sending HTTP request`\non the ubuntu-24.04 runner image (git 2.54), an HTTP/2 framing bug.\nScope HTTP/1.1 to just this command to dodge it.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "ci(deploy): force HTTP/1.1 on `git fetch origin main`",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-06-16T05:52:24Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "780f0f60b62a9d7a11e28dbf3fe63b5e9e50e623",
"body": "… scenarios where copyright year is surrounded by whitespace (#2973)",
"is_bot": false,
"headline": "fix(spotless/gradle-plugin): Fix `StringIndexOutOfBoundsException` in…",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-06-16T04:03:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b508590c9f2c90cce4f7958b31048bd4158ebb89",
"body": null,
"is_bot": true,
"headline": "Update plugin spotbugs to v6.5.6",
"author_name": "renovate[bot]",
"author_login": "renovate[bot]",
"committed_at": "2026-06-16T03:00:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b0328c849d5ba7dd50feb33b7d4ae7478a5e5436",
"body": null,
"is_bot": false,
"headline": "Update plugin rewrite to v7.34.0 (#2972)",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-06-16T02:53:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9a502ce0cbe0932de33e8543f9bc2a6ec714bc26",
"body": null,
"is_bot": false,
"headline": "Update plugin com.gradle.develocity to v4.4.2 (#2971)",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-06-16T02:53:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b4d9ec0b41f4b9fedf6874a8a4becac286403ec4",
"body": "… when needed",
"is_bot": false,
"headline": "Revert the changes to `assertUnchanged()` and use `assertTransform()`…",
"author_name": "Maciej Sitarz",
"author_login": "Maciej-Sitarz-IBM",
"committed_at": "2026-06-12T14:34:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "787819d8f8640c011d245dafee492fc5bffb0405",
"body": null,
"is_bot": false,
"headline": "Remove unneeded debug comments",
"author_name": "Maciej Sitarz",
"author_login": "Maciej-Sitarz-IBM",
"committed_at": "2026-06-12T13:58:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dbd462dbae46760cd5947b1c043e6f59e04c4588",
"body": null,
"is_bot": false,
"headline": "Add missing . in all CHANGES.md",
"author_name": "Maciej Sitarz",
"author_login": "Maciej-Sitarz-IBM",
"committed_at": "2026-06-12T13:56:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4120d3abd4857022e4fa512bb423738a77b8b618",
"body": null,
"is_bot": false,
"headline": "Update CHANGES.md, plugin-gradle/CHANGES.md and plugin-maven/CHANGES.md",
"author_name": "Maciej Sitarz",
"author_login": "Maciej-Sitarz-IBM",
"committed_at": "2026-06-12T13:52:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a427333c150e27f54ca9e5b03f4144eedb9a1c8f",
"body": null,
"is_bot": false,
"headline": "Fix handling of years surrounded by whitespace in license header",
"author_name": "Maciej Sitarz",
"author_login": "Maciej-Sitarz-IBM",
"committed_at": "2026-06-12T13:31:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "11942894f214eb487bfae241299cdcb32587b469",
"body": null,
"is_bot": false,
"headline": "Add tests for years surrounded by whitespace in license header",
"author_name": "Maciej Sitarz",
"author_login": "Maciej-Sitarz-IBM",
"committed_at": "2026-06-12T13:28:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "57efbf510d270f91612f61488079f9df5972eb2c",
"body": null,
"is_bot": true,
"headline": "Update plugin rewrite to v7.34.0",
"author_name": "renovate[bot]",
"author_login": "renovate[bot]",
"committed_at": "2026-06-11T17:21:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2f148ec296839ccc2eb54f16c305bb7fdbd7932f",
"body": null,
"is_bot": true,
"headline": "Update plugin com.gradle.develocity to v4.4.2",
"author_name": "renovate[bot]",
"author_login": "renovate[bot]",
"committed_at": "2026-06-11T17:20:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5fd2a35cff4817320c1436e9740387bbd7077249",
"body": null,
"is_bot": false,
"headline": "Update OpenRewrite (#2969)",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-06-11T17:08:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "200d7443234ab0b8c347c68019d601ea79e01cb8",
"body": "…12155-r (#2970)",
"is_bot": false,
"headline": "Update dependency org.eclipse.jgit:org.eclipse.jgit to v7.7.0.2026060…",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-06-11T17:08:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2446a27158d781ace7437a165d96261ba95d1663",
"body": "…12155-r",
"is_bot": true,
"headline": "Update dependency org.eclipse.jgit:org.eclipse.jgit to v7.7.0.2026060…",
"author_name": "renovate[bot]",
"author_login": "renovate[bot]",
"committed_at": "2026-06-11T01:40:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cb4bb9e1be85fef991a241992978c9b9ff45f381",
"body": "…yright_year_format",
"is_bot": false,
"headline": "Merge remote-tracking branch 'upstream/main' into msitarz/feature/cop…",
"author_name": "Maciej Sitarz",
"author_login": "Maciej-Sitarz-IBM",
"committed_at": "2026-06-09T21:42:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "10c95c94f3f5bae7be422511378362915ba46124",
"body": null,
"is_bot": false,
"headline": "Flexmark arbitrary formatter options in maven/gradle config (#2968)",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-06-09T21:38:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "07133d05166447ecfc830949e683331b10684e89",
"body": "…yright_year_format",
"is_bot": false,
"headline": "Merge remote-tracking branch 'upstream/main' into msitarz/feature/cop…",
"author_name": "Maciej Sitarz",
"author_login": "Maciej-Sitarz-IBM",
"committed_at": "2026-06-09T21:38:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5840309e8ab49ad42f986763c0f1ad96850fceb0",
"body": null,
"is_bot": true,
"headline": "Update OpenRewrite",
"author_name": "renovate[bot]",
"author_login": "renovate[bot]",
"committed_at": "2026-06-09T21:26:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "794593fd365fcaff8448edd1874b8b7f583177b5",
"body": null,
"is_bot": false,
"headline": "Update junit-framework monorepo to v6.1.0 (#2967)",
"author_name": "Ned Twigg",
"author_login": "nedtwigg",
"committed_at": "2026-06-09T21:15:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1ffc012b65df97c3f834f29000ee09fd1d62822c",
"body": null,
"is_bot": false,
"headline": "apply spotless jave formatting",
"author_name": "Ben Tatham",
"author_login": "bentatham",
"committed_at": "2026-06-09T18:59:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c38bc20b7a465d4ae4d8fc4fe81814b672448ee6",
"body": null,
"is_bot": false,
"headline": "Use TreeMap instead of LinkedHashMap for consistent ordering",
"author_name": "Ben Tatham",
"author_login": "bentatham",
"committed_at": "2026-06-09T18:59:21Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 70,
"commits_last_year": 799,
"latest_release_at": "2026-07-27T20:23:32Z",
"latest_release_tag": "maven/3.9.0",
"releases_from_tags": false,
"days_since_last_push": 0,
"active_weeks_last_year": 49,
"days_since_latest_release": 0,
"mean_days_between_releases": 6.8
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": true,
"health_percentage": 100,
"has_issue_template": true,
"has_code_of_conduct": true,
"has_pull_request_template": true
},
"ecosystem": {
"packages": []
},
"popularity": {
"forks": 542,
"stars": 5574,
"watchers": 29,
"fork_history": {
"days": [
{
"date": "2015-06-19",
"count": 1
},
{
"date": "2015-08-24",
"count": 1
},
{
"date": "2015-09-16",
"count": 1
},
{
"date": "2016-03-01",
"count": 1
},
{
"date": "2016-03-23",
"count": 1
},
{
"date": "2016-04-13",
"count": 1
},
{
"date": "2016-05-17",
"count": 1
},
{
"date": "2016-08-03",
"count": 1
},
{
"date": "2016-10-22",
"count": 1
},
{
"date": "2016-10-24",
"count": 1
},
{
"date": "2016-12-12",
"count": 1
},
{
"date": "2017-01-02",
"count": 1
},
{
"date": "2017-01-03",
"count": 1
},
{
"date": "2017-02-10",
"count": 1
},
{
"date": "2017-03-11",
"count": 1
},
{
"date": "2017-03-27",
"count": 1
},
{
"date": "2017-03-31",
"count": 1
},
{
"date": "2017-05-01",
"count": 1
},
{
"date": "2017-05-03",
"count": 1
},
{
"date": "2017-05-19",
"count": 1
},
{
"date": "2017-06-09",
"count": 1
},
{
"date": "2017-06-15",
"count": 1
},
{
"date": "2017-06-27",
"count": 1
},
{
"date": "2017-08-10",
"count": 1
},
{
"date": "2017-09-03",
"count": 1
},
{
"date": "2017-10-22",
"count": 1
},
{
"date": "2017-10-27",
"count": 1
},
{
"date": "2017-11-12",
"count": 1
},
{
"date": "2017-11-19",
"count": 1
},
{
"date": "2017-11-23",
"count": 1
},
{
"date": "2017-11-27",
"count": 1
},
{
"date": "2018-01-14",
"count": 1
},
{
"date": "2018-01-28",
"count": 1
},
{
"date": "2018-02-07",
"count": 1
},
{
"date": "2018-02-15",
"count": 1
},
{
"date": "2018-02-16",
"count": 1
},
{
"date": "2018-02-20",
"count": 1
},
{
"date": "2018-02-27",
"count": 1
},
{
"date": "2018-02-28",
"count": 1
},
{
"date": "2018-03-02",
"count": 1
},
{
"date": "2018-03-05",
"count": 1
},
{
"date": "2018-04-03",
"count": 1
},
{
"date": "2018-04-10",
"count": 1
},
{
"date": "2018-04-25",
"count": 1
},
{
"date": "2018-04-28",
"count": 1
},
{
"date": "2018-06-12",
"count": 1
},
{
"date": "2018-06-21",
"count": 1
},
{
"date": "2018-06-27",
"count": 1
},
{
"date": "2018-07-07",
"count": 1
},
{
"date": "2018-08-17",
"count": 1
},
{
"date": "2018-09-17",
"count": 1
},
{
"date": "2018-09-24",
"count": 1
},
{
"date": "2018-09-27",
"count": 1
},
{
"date": "2018-11-12",
"count": 1
},
{
"date": "2018-11-30",
"count": 1
},
{
"date": "2018-12-13",
"count": 1
},
{
"date": "2018-12-14",
"count": 1
},
{
"date": "2019-01-10",
"count": 1
},
{
"date": "2019-01-29",
"count": 1
},
{
"date": "2019-02-21",
"count": 1
},
{
"date": "2019-03-02",
"count": 1
},
{
"date": "2019-03-07",
"count": 1
},
{
"date": "2019-03-08",
"count": 2
},
{
"date": "2019-03-20",
"count": 1
},
{
"date": "2019-04-03",
"count": 1
},
{
"date": "2019-04-05",
"count": 2
},
{
"date": "2019-04-11",
"count": 1
},
{
"date": "2019-04-24",
"count": 1
},
{
"date": "2019-04-30",
"count": 1
},
{
"date": "2019-05-07",
"count": 1
},
{
"date": "2019-05-13",
"count": 1
},
{
"date": "2019-05-25",
"count": 1
},
{
"date": "2019-06-02",
"count": 1
},
{
"date": "2019-06-04",
"count": 1
},
{
"date": "2019-06-23",
"count": 1
},
{
"date": "2019-06-27",
"count": 1
},
{
"date": "2019-07-08",
"count": 1
},
{
"date": "2019-07-11",
"count": 1
},
{
"date": "2019-07-20",
"count": 1
},
{
"date": "2019-07-24",
"count": 1
},
{
"date": "2019-07-27",
"count": 1
},
{
"date": "2019-08-06",
"count": 1
},
{
"date": "2019-08-07",
"count": 1
},
{
"date": "2019-08-25",
"count": 1
},
{
"date": "2019-08-26",
"count": 1
},
{
"date": "2019-08-30",
"count": 2
},
{
"date": "2019-09-08",
"count": 1
},
{
"date": "2019-09-18",
"count": 1
},
{
"date": "2019-09-25",
"count": 1
},
{
"date": "2019-10-01",
"count": 1
},
{
"date": "2019-10-02",
"count": 1
},
{
"date": "2019-10-07",
"count": 1
},
{
"date": "2019-10-08",
"count": 1
},
{
"date": "2019-10-10",
"count": 2
},
{
"date": "2019-10-15",
"count": 2
},
{
"date": "2019-10-16",
"count": 1
},
{
"date": "2019-10-20",
"count": 1
},
{
"date": "2019-10-31",
"count": 1
},
{
"date": "2019-11-08",
"count": 1
},
{
"date": "2019-11-26",
"count": 1
},
{
"date": "2019-11-28",
"count": 1
},
{
"date": "2019-12-02",
"count": 1
},
{
"date": "2019-12-05",
"count": 1
},
{
"date": "2019-12-31",
"count": 1
},
{
"date": "2020-01-01",
"count": 1
},
{
"date": "2020-01-02",
"count": 1
},
{
"date": "2020-01-03",
"count": 1
},
{
"date": "2020-01-09",
"count": 1
},
{
"date": "2020-01-20",
"count": 1
},
{
"date": "2020-01-29",
"count": 1
},
{
"date": "2020-02-01",
"count": 1
},
{
"date": "2020-02-11",
"count": 1
},
{
"date": "2020-02-24",
"count": 1
},
{
"date": "2020-03-11",
"count": 1
},
{
"date": "2020-03-13",
"count": 1
},
{
"date": "2020-03-20",
"count": 1
},
{
"date": "2020-03-25",
"count": 1
},
{
"date": "2020-04-16",
"count": 1
},
{
"date": "2020-04-19",
"count": 1
},
{
"date": "2020-04-22",
"count": 1
},
{
"date": "2020-05-02",
"count": 1
},
{
"date": "2020-05-03",
"count": 1
},
{
"date": "2020-05-13",
"count": 1
},
{
"date": "2020-05-14",
"count": 1
},
{
"date": "2020-05-18",
"count": 2
},
{
"date": "2020-05-21",
"count": 1
},
{
"date": "2020-05-29",
"count": 1
},
{
"date": "2020-06-01",
"count": 1
},
{
"date": "2020-06-02",
"count": 1
},
{
"date": "2020-06-06",
"count": 1
},
{
"date": "2020-06-13",
"count": 1
},
{
"date": "2020-06-18",
"count": 1
},
{
"date": "2020-06-19",
"count": 1
},
{
"date": "2020-07-09",
"count": 1
},
{
"date": "2020-07-22",
"count": 1
},
{
"date": "2020-07-31",
"count": 1
},
{
"date": "2020-08-07",
"count": 1
},
{
"date": "2020-08-11",
"count": 1
},
{
"date": "2020-09-01",
"count": 1
},
{
"date": "2020-09-18",
"count": 1
},
{
"date": "2020-09-21",
"count": 1
},
{
"date": "2020-10-02",
"count": 1
},
{
"date": "2020-10-12",
"count": 2
},
{
"date": "2020-10-19",
"count": 1
},
{
"date": "2020-10-22",
"count": 1
},
{
"date": "2020-11-12",
"count": 1
},
{
"date": "2020-11-13",
"count": 2
},
{
"date": "2020-12-08",
"count": 2
},
{
"date": "2020-12-09",
"count": 1
},
{
"date": "2020-12-16",
"count": 1
},
{
"date": "2020-12-18",
"count": 1
},
{
"date": "2020-12-23",
"count": 3
},
{
"date": "2020-12-24",
"count": 1
},
{
"date": "2020-12-28",
"count": 1
},
{
"date": "2021-01-08",
"count": 1
},
{
"date": "2021-01-15",
"count": 1
},
{
"date": "2021-01-18",
"count": 1
},
{
"date": "2021-01-29",
"count": 1
},
{
"date": "2021-02-01",
"count": 1
},
{
"date": "2021-02-10",
"count": 1
},
{
"date": "2021-02-11",
"count": 1
},
{
"date": "2021-02-20",
"count": 1
},
{
"date": "2021-03-05",
"count": 2
},
{
"date": "2021-03-08",
"count": 1
},
{
"date": "2021-03-09",
"count": 1
},
{
"date": "2021-03-13",
"count": 1
},
{
"date": "2021-03-28",
"count": 1
},
{
"date": "2021-04-01",
"count": 1
},
{
"date": "2021-04-06",
"count": 1
},
{
"date": "2021-04-07",
"count": 1
},
{
"date": "2021-04-08",
"count": 2
},
{
"date": "2021-04-10",
"count": 1
},
{
"date": "2021-04-14",
"count": 1
},
{
"date": "2021-04-20",
"count": 1
},
{
"date": "2021-04-23",
"count": 2
},
{
"date": "2021-04-25",
"count": 1
},
{
"date": "2021-04-30",
"count": 1
},
{
"date": "2021-05-01",
"count": 1
},
{
"date": "2021-05-10",
"count": 1
},
{
"date": "2021-05-20",
"count": 1
},
{
"date": "2021-05-21",
"count": 1
},
{
"date": "2021-05-26",
"count": 1
},
{
"date": "2021-06-02",
"count": 1
},
{
"date": "2021-06-05",
"count": 1
},
{
"date": "2021-06-14",
"count": 1
},
{
"date": "2021-06-29",
"count": 1
},
{
"date": "2021-07-06",
"count": 1
},
{
"date": "2021-07-19",
"count": 1
},
{
"date": "2021-08-08",
"count": 1
},
{
"date": "2021-09-01",
"count": 1
},
{
"date": "2021-09-04",
"count": 1
},
{
"date": "2021-09-15",
"count": 1
},
{
"date": "2021-09-17",
"count": 1
},
{
"date": "2021-09-19",
"count": 1
},
{
"date": "2021-09-20",
"count": 1
},
{
"date": "2021-10-01",
"count": 2
},
{
"date": "2021-10-09",
"count": 1
},
{
"date": "2021-10-20",
"count": 1
},
{
"date": "2021-10-26",
"count": 1
},
{
"date": "2021-10-30",
"count": 1
},
{
"date": "2021-11-08",
"count": 1
},
{
"date": "2021-11-09",
"count": 1
},
{
"date": "2021-11-11",
"count": 1
},
{
"date": "2021-11-15",
"count": 1
},
{
"date": "2021-11-17",
"count": 1
},
{
"date": "2021-11-24",
"count": 1
},
{
"date": "2021-12-13",
"count": 1
},
{
"date": "2021-12-16",
"count": 1
},
{
"date": "2021-12-22",
"count": 1
},
{
"date": "2021-12-30",
"count": 1
},
{
"date": "2022-01-04",
"count": 2
},
{
"date": "2022-01-05",
"count": 1
},
{
"date": "2022-01-10",
"count": 1
},
{
"date": "2022-01-15",
"count": 1
},
{
"date": "2022-01-20",
"count": 1
},
{
"date": "2022-01-22",
"count": 1
},
{
"date": "2022-01-24",
"count": 1
},
{
"date": "2022-01-30",
"count": 1
},
{
"date": "2022-02-03",
"count": 1
},
{
"date": "2022-02-06",
"count": 1
},
{
"date": "2022-02-09",
"count": 1
},
{
"date": "2022-02-14",
"count": 2
},
{
"date": "2022-02-15",
"count": 1
},
{
"date": "2022-02-17",
"count": 1
},
{
"date": "2022-02-18",
"count": 1
},
{
"date": "2022-03-09",
"count": 1
},
{
"date": "2022-03-10",
"count": 2
},
{
"date": "2022-03-11",
"count": 1
},
{
"date": "2022-04-02",
"count": 1
},
{
"date": "2022-04-13",
"count": 1
},
{
"date": "2022-04-15",
"count": 1
},
{
"date": "2022-04-18",
"count": 1
},
{
"date": "2022-04-24",
"count": 2
},
{
"date": "2022-04-29",
"count": 1
},
{
"date": "2022-04-30",
"count": 1
},
{
"date": "2022-05-08",
"count": 1
},
{
"date": "2022-05-10",
"count": 1
},
{
"date": "2022-05-12",
"count": 3
},
{
"date": "2022-05-19",
"count": 2
},
{
"date": "2022-05-21",
"count": 2
},
{
"date": "2022-05-23",
"count": 1
},
{
"date": "2022-06-01",
"count": 1
},
{
"date": "2022-06-06",
"count": 1
},
{
"date": "2022-06-13",
"count": 1
},
{
"date": "2022-06-24",
"count": 1
},
{
"date": "2022-06-29",
"count": 2
},
{
"date": "2022-06-30",
"count": 1
},
{
"date": "2022-07-01",
"count": 1
},
{
"date": "2022-07-11",
"count": 1
},
{
"date": "2022-07-14",
"count": 1
},
{
"date": "2022-07-27",
"count": 1
},
{
"date": "2022-08-02",
"count": 1
},
{
"date": "2022-08-04",
"count": 1
},
{
"date": "2022-08-08",
"count": 1
},
{
"date": "2022-08-10",
"count": 1
},
{
"date": "2022-08-11",
"count": 2
},
{
"date": "2022-08-22",
"count": 1
},
{
"date": "2022-08-28",
"count": 1
},
{
"date": "2022-08-29",
"count": 1
},
{
"date": "2022-09-02",
"count": 1
},
{
"date": "2022-09-08",
"count": 2
},
{
"date": "2022-09-13",
"count": 1
},
{
"date": "2022-09-16",
"count": 1
},
{
"date": "2022-09-30",
"count": 1
},
{
"date": "2022-10-03",
"count": 1
},
{
"date": "2022-10-06",
"count": 1
},
{
"date": "2022-10-11",
"count": 1
},
{
"date": "2022-10-13",
"count": 1
},
{
"date": "2022-10-18",
"count": 1
},
{
"date": "2022-10-19",
"count": 1
},
{
"date": "2022-10-26",
"count": 2
},
{
"date": "2022-11-03",
"count": 1
},
{
"date": "2022-11-07",
"count": 1
},
{
"date": "2022-11-10",
"count": 1
},
{
"date": "2022-11-22",
"count": 1
},
{
"date": "2022-11-23",
"count": 1
},
{
"date": "2022-11-24",
"count": 1
},
{
"date": "2022-12-01",
"count": 1
},
{
"date": "2022-12-05",
"count": 1
},
{
"date": "2022-12-08",
"count": 1
},
{
"date": "2022-12-09",
"count": 1
},
{
"date": "2022-12-13",
"count": 1
},
{
"date": "2022-12-14",
"count": 1
},
{
"date": "2023-01-03",
"count": 1
},
{
"date": "2023-01-04",
"count": 2
},
{
"date": "2023-01-05",
"count": 1
},
{
"date": "2023-01-06",
"count": 1
},
{
"date": "2023-01-09",
"count": 1
},
{
"date": "2023-01-16",
"count": 1
},
{
"date": "2023-01-18",
"count": 1
},
{
"date": "2023-01-19",
"count": 1
},
{
"date": "2023-01-29",
"count": 1
},
{
"date": "2023-01-30",
"count": 1
},
{
"date": "2023-01-31",
"count": 1
},
{
"date": "2023-02-01",
"count": 1
},
{
"date": "2023-02-02",
"count": 1
},
{
"date": "2023-02-11",
"count": 1
},
{
"date": "2023-02-16",
"count": 1
},
{
"date": "2023-02-17",
"count": 1
},
{
"date": "2023-02-23",
"count": 1
},
{
"date": "2023-02-28",
"count": 1
},
{
"date": "2023-03-03",
"count": 1
},
{
"date": "2023-03-04",
"count": 1
},
{
"date": "2023-03-06",
"count": 1
},
{
"date": "2023-03-07",
"count": 1
},
{
"date": "2023-03-11",
"count": 1
},
{
"date": "2023-03-14",
"count": 1
},
{
"date": "2023-03-17",
"count": 1
},
{
"date": "2023-03-20",
"count": 1
},
{
"date": "2023-03-24",
"count": 2
},
{
"date": "2023-03-27",
"count": 1
},
{
"date": "2023-03-28",
"count": 1
},
{
"date": "2023-04-01",
"count": 1
},
{
"date": "2023-04-02",
"count": 1
},
{
"date": "2023-04-03",
"count": 2
},
{
"date": "2023-04-06",
"count": 1
},
{
"date": "2023-04-07",
"count": 1
},
{
"date": "2023-04-10",
"count": 1
},
{
"date": "2023-04-11",
"count": 1
},
{
"date": "2023-04-20",
"count": 1
},
{
"date": "2023-05-02",
"count": 1
},
{
"date": "2023-05-04",
"count": 1
},
{
"date": "2023-05-10",
"count": 1
},
{
"date": "2023-05-22",
"count": 1
},
{
"date": "2023-05-26",
"count": 1
},
{
"date": "2023-06-01",
"count": 1
},
{
"date": "2023-06-02",
"count": 1
},
{
"date": "2023-06-21",
"count": 2
},
{
"date": "2023-07-13",
"count": 1
},
{
"date": "2023-08-02",
"count": 1
},
{
"date": "2023-08-08",
"count": 1
},
{
"date": "2023-08-09",
"count": 1
},
{
"date": "2023-08-14",
"count": 1
},
{
"date": "2023-08-24",
"count": 2
},
{
"date": "2023-08-29",
"count": 1
},
{
"date": "2023-09-12",
"count": 1
},
{
"date": "2023-09-20",
"count": 1
},
{
"date": "2023-09-21",
"count": 1
},
{
"date": "2023-10-22",
"count": 1
},
{
"date": "2023-10-23",
"count": 1
},
{
"date": "2023-10-29",
"count": 1
},
{
"date": "2023-10-30",
"count": 1
},
{
"date": "2023-11-05",
"count": 1
},
{
"date": "2023-11-07",
"count": 1
},
{
"date": "2023-11-12",
"count": 1
},
{
"date": "2023-11-21",
"count": 1
},
{
"date": "2023-12-05",
"count": 1
},
{
"date": "2024-01-05",
"count": 1
},
{
"date": "2024-01-10",
"count": 1
},
{
"date": "2024-01-15",
"count": 1
},
{
"date": "2024-01-21",
"count": 1
},
{
"date": "2024-01-30",
"count": 1
},
{
"date": "2024-02-13",
"count": 1
},
{
"date": "2024-03-18",
"count": 1
},
{
"date": "2024-03-27",
"count": 1
},
{
"date": "2024-03-30",
"count": 1
},
{
"date": "2024-03-31",
"count": 1
},
{
"date": "2024-04-07",
"count": 1
},
{
"date": "2024-04-11",
"count": 1
},
{
"date": "2024-04-18",
"count": 1
},
{
"date": "2024-04-30",
"count": 1
},
{
"date": "2024-05-03",
"count": 1
},
{
"date": "2024-05-09",
"count": 1
},
{
"date": "2024-05-16",
"count": 1
},
{
"date": "2024-05-28",
"count": 1
},
{
"date": "2024-05-29",
"count": 1
},
{
"date": "2024-05-30",
"count": 1
},
{
"date": "2024-06-05",
"count": 1
},
{
"date": "2024-06-12",
"count": 1
},
{
"date": "2024-06-14",
"count": 1
},
{
"date": "2024-06-17",
"count": 1
},
{
"date": "2024-06-18",
"count": 1
},
{
"date": "2024-06-25",
"count": 1
},
{
"date": "2024-06-27",
"count": 1
},
{
"date": "2024-07-01",
"count": 1
},
{
"date": "2024-07-05",
"count": 1
},
{
"date": "2024-07-15",
"count": 1
},
{
"date": "2024-07-25",
"count": 1
},
{
"date": "2024-08-19",
"count": 1
},
{
"date": "2024-08-20",
"count": 1
},
{
"date": "2024-08-22",
"count": 1
},
{
"date": "2024-08-30",
"count": 1
},
{
"date": "2024-09-02",
"count": 1
},
{
"date": "2024-09-24",
"count": 2
},
{
"date": "2024-09-27",
"count": 1
},
{
"date": "2024-09-30",
"count": 2
},
{
"date": "2024-10-03",
"count": 1
},
{
"date": "2024-10-04",
"count": 1
},
{
"date": "2024-11-01",
"count": 1
},
{
"date": "2024-11-10",
"count": 1
},
{
"date": "2024-11-18",
"count": 1
},
{
"date": "2024-11-28",
"count": 1
},
{
"date": "2024-12-12",
"count": 1
},
{
"date": "2024-12-13",
"count": 2
},
{
"date": "2025-01-08",
"count": 1
},
{
"date": "2025-01-21",
"count": 1
},
{
"date": "2025-02-14",
"count": 1
},
{
"date": "2025-02-16",
"count": 1
},
{
"date": "2025-02-24",
"count": 1
},
{
"date": "2025-02-26",
"count": 1
},
{
"date": "2025-03-13",
"count": 1
},
{
"date": "2025-03-19",
"count": 1
},
{
"date": "2025-04-02",
"count": 1
},
{
"date": "2025-04-05",
"count": 1
},
{
"date": "2025-05-05",
"count": 1
},
{
"date": "2025-05-16",
"count": 1
},
{
"date": "2025-05-18",
"count": 1
},
{
"date": "2025-05-20",
"count": 2
},
{
"date": "2025-05-21",
"count": 1
},
{
"date": "2025-05-31",
"count": 1
},
{
"date": "2025-06-02",
"count": 1
},
{
"date": "2025-06-04",
"count": 1
},
{
"date": "2025-06-09",
"count": 1
},
{
"date": "2025-06-12",
"count": 1
},
{
"date": "2025-06-16",
"count": 1
},
{
"date": "2025-06-18",
"count": 1
},
{
"date": "2025-06-20",
"count": 1
},
{
"date": "2025-06-23",
"count": 1
},
{
"date": "2025-07-03",
"count": 1
},
{
"date": "2025-07-09",
"count": 1
},
{
"date": "2025-07-12",
"count": 1
},
{
"date": "2025-07-18",
"count": 1
},
{
"date": "2025-07-22",
"count": 1
},
{
"date": "2025-07-23",
"count": 1
},
{
"date": "2025-08-02",
"count": 1
},
{
"date": "2025-09-03",
"count": 1
},
{
"date": "2025-09-25",
"count": 1
},
{
"date": "2025-10-03",
"count": 1
},
{
"date": "2025-10-15",
"count": 1
},
{
"date": "2025-10-16",
"count": 1
},
{
"date": "2025-10-18",
"count": 1
},
{
"date": "2025-10-20",
"count": 1
},
{
"date": "2025-10-28",
"count": 1
},
{
"date": "2025-11-03",
"count": 2
},
{
"date": "2025-11-06",
"count": 1
},
{
"date": "2025-11-09",
"count": 1
},
{
"date": "2025-11-22",
"count": 1
},
{
"date": "2025-11-24",
"count": 2
},
{
"date": "2025-11-28",
"count": 2
},
{
"date": "2025-12-01",
"count": 1
},
{
"date": "2025-12-03",
"count": 1
},
{
"date": "2025-12-05",
"count": 1
},
{
"date": "2025-12-09",
"count": 1
},
{
"date": "2025-12-12",
"count": 1
},
{
"date": "2025-12-22",
"count": 1
},
{
"date": "2025-12-25",
"count": 1
},
{
"date": "2025-12-30",
"count": 1
},
{
"date": "2026-01-07",
"count": 1
},
{
"date": "2026-01-08",
"count": 1
},
{
"date": "2026-01-09",
"count": 1
},
{
"date": "2026-01-21",
"count": 1
},
{
"date": "2026-01-26",
"count": 1
},
{
"date": "2026-02-02",
"count": 1
},
{
"date": "2026-02-06",
"count": 1
},
{
"date": "2026-02-20",
"count": 1
},
{
"date": "2026-02-23",
"count": 1
},
{
"date": "2026-03-17",
"count": 1
},
{
"date": "2026-03-20",
"count": 1
},
{
"date": "2026-03-31",
"count": 1
},
{
"date": "2026-04-04",
"count": 2
},
{
"date": "2026-04-08",
"count": 1
},
{
"date": "2026-04-19",
"count": 1
},
{
"date": "2026-04-20",
"count": 1
},
{
"date": "2026-04-21",
"count": 1
},
{
"date": "2026-04-25",
"count": 1
},
{
"date": "2026-04-29",
"count": 1
},
{
"date": "2026-05-01",
"count": 2
},
{
"date": "2026-05-02",
"count": 1
},
{
"date": "2026-05-04",
"count": 1
},
{
"date": "2026-05-05",
"count": 1
},
{
"date": "2026-05-07",
"count": 1
},
{
"date": "2026-05-08",
"count": 2
},
{
"date": "2026-05-14",
"count": 1
},
{
"date": "2026-05-17",
"count": 1
},
{
"date": "2026-05-19",
"count": 1
},
{
"date": "2026-05-20",
"count": 1
},
{
"date": "2026-05-29",
"count": 1
},
{
"date": "2026-05-30",
"count": 1
},
{
"date": "2026-06-02",
"count": 1
},
{
"date": "2026-06-05",
"count": 1
},
{
"date": "2026-06-08",
"count": 2
},
{
"date": "2026-06-09",
"count": 1
},
{
"date": "2026-06-16",
"count": 1
},
{
"date": "2026-06-30",
"count": 2
},
{
"date": "2026-07-01",
"count": 1
},
{
"date": "2026-07-02",
"count": 1
},
{
"date": "2026-07-07",
"count": 2
},
{
"date": "2026-07-19",
"count": 3
},
{
"date": "2026-07-21",
"count": 1
}
],
"complete": true,
"collected": 536,
"total_forks": 542
},
"star_history": null,
"open_issues_and_prs": 258
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [],
"has_llms_txt": false,
"has_dockerfile": false,
"has_mcp_signal": false,
"bootstrap_files": [],
"api_schema_files": [
"testlib/src/main/resources/clang/example.proto",
"testlib/src/main/resources/protobuf/buf/buf.proto",
"testlib/src/main/resources/protobuf/buf/buf_large.proto",
"testlib/src/main/resources/protobuf/buf/license.proto"
],
"has_devcontainer": false,
"typecheck_configs": [
"testlib/src/main/resources/npm/eslint/typescript/styleguide/standard_with_typescript/tsconfig.json",
"testlib/src/main/resources/npm/eslint/typescript/styleguide/xo/tsconfig.json",
"testlib/src/main/resources/npm/tsfmt/tsconfig/tsconfig.json"
],
"toolchain_manifests": [
"build.gradle",
"lib-extra/build.gradle",
"lib/build.gradle",
"plugin-gradle/build.gradle",
"plugin-maven/build.gradle",
"testlib/build.gradle"
],
"largest_source_bytes": 38727,
"source_files_sampled": 675,
"oversized_source_files": 0,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"dependencies": {
"manifests": [
"build.gradle",
"lib-extra/build.gradle",
"lib/build.gradle",
"plugin-gradle/build.gradle",
"plugin-maven/build.gradle",
"testlib/build.gradle"
],
"advisories": {
"error": "No resolved dependencies to assess",
"scope": "repository_graph",
"source": null,
"findings": [],
"collected": false,
"malicious": [],
"truncated": false,
"by_severity": {},
"advisory_count": 0,
"affected_count": 0,
"assessed_count": 0,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 0,
"direct_affected_count": 0
},
"ecosystems": [
"maven"
],
"dependencies": [],
"all_dependencies": {
"error": null,
"source": "github-sbom",
"packages": [],
"collected": true,
"truncated": false,
"total_count": 0,
"direct_count": 0,
"indirect_count": 0
}
},
"maintainership": {
"issues": {
"open_prs": 13,
"merged_prs": 1343,
"open_issues": 245,
"closed_ratio": 0.802,
"closed_issues": 992,
"closed_unmerged_prs": 341
},
"bus_factor": 1,
"bot_contributors": 2,
"top_contributors": [
{
"type": "User",
"login": "nedtwigg",
"commits": 3860,
"avatar_url": "https://avatars.githubusercontent.com/u/2924992?v=4"
},
{
"type": "User",
"login": "simschla",
"commits": 283,
"avatar_url": "https://avatars.githubusercontent.com/u/71494?v=4"
},
{
"type": "User",
"login": "Goooler",
"commits": 226,
"avatar_url": "https://avatars.githubusercontent.com/u/10363352?v=4"
},
{
"type": "User",
"login": "fvgh",
"commits": 161,
"avatar_url": "https://avatars.githubusercontent.com/u/10271755?v=4"
},
{
"type": "User",
"login": "blacelle",
"commits": 131,
"avatar_url": "https://avatars.githubusercontent.com/u/2117911?v=4"
},
{
"type": "User",
"login": "lutovich",
"commits": 109,
"avatar_url": "https://avatars.githubusercontent.com/u/1638145?v=4"
},
{
"type": "User",
"login": "jbduncan",
"commits": 106,
"avatar_url": "https://avatars.githubusercontent.com/u/2482228?v=4"
},
{
"type": "User",
"login": "mernst",
"commits": 37,
"avatar_url": "https://avatars.githubusercontent.com/u/121025?v=4"
},
{
"type": "User",
"login": "abelk2",
"commits": 32,
"avatar_url": "https://avatars.githubusercontent.com/u/58443026?v=4"
},
{
"type": "User",
"login": "blutorange",
"commits": 30,
"avatar_url": "https://avatars.githubusercontent.com/u/2456413?v=4"
}
],
"contributors_sampled": 98,
"top_contributor_share": 0.656
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"changelog-print.yml",
"ci.yml",
"codeql-analysis.yml",
"deploy.yml",
"scheduled-cleanup.yml"
],
"has_docs_dir": false,
"linter_configs": [
".eslintrc.js"
],
"has_editorconfig": true,
"has_linter_config": true,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 7,
"reason": "binaries present in source code",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": null,
"reason": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": 10,
"reason": "5 out of 5 merged PRs checked by a CI test -- score normalized to 10",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
},
{
"name": "CII-Best-Practices",
"score": 0,
"reason": "no effort to earn an OpenSSF best practices badge detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
},
{
"name": "Code-Review",
"score": 6,
"reason": "Found 5/8 approved changesets -- score normalized to 6",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 10,
"reason": "project has 46 contributing companies or organizations",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": 10,
"reason": "no dangerous workflow patterns detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
},
{
"name": "Dependency-Update-Tool",
"score": 10,
"reason": "update tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
},
{
"name": "Fuzzing",
"score": 0,
"reason": "project is not fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 10,
"reason": "license file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 10,
"reason": "30 commit(s) and 5 issue activity found in the last 90 days -- score normalized to 10",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
},
{
"name": "Packaging",
"score": 10,
"reason": "packaging workflow detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": 0,
"reason": "dependency not pinned by hash detected -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 10,
"reason": "SAST tool is run on all commits",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 9,
"reason": "security policy file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": null,
"reason": "no releases found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": 0,
"reason": "detected GitHub workflow tokens with excessive permissions",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 10,
"reason": "0 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "ff6ac27b7ce81912fddcab061a6aa448bee621db",
"ran_at": "2026-07-28T14:23:45Z",
"aggregate_score": 7.1,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": true,
"has_security_policy": true,
"has_dependabot_config": false
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-27T20:50:41Z",
"oldest_open_prs": [
{
"number": 2173,
"created_at": "2024-06-14T17:25:20Z",
"last_comment_at": "2025-12-10T10:26:55Z",
"last_comment_author": "Pankraz76"
},
{
"number": 2419,
"created_at": "2025-02-07T21:14:28Z",
"last_comment_at": "2025-02-20T20:14:59Z",
"last_comment_author": "simschla"
},
{
"number": 2706,
"created_at": "2025-10-28T02:23:53Z",
"last_comment_at": "2026-06-03T06:03:09Z",
"last_comment_author": "jochenberger"
},
{
"number": 2819,
"created_at": "2026-01-19T01:08:58Z",
"last_comment_at": "2026-01-19T06:51:15Z",
"last_comment_author": "renovate"
},
{
"number": 2822,
"created_at": "2026-01-21T01:20:47Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 2861,
"created_at": "2026-02-25T10:46:33Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 2882,
"created_at": "2026-03-10T01:46:30Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 2888,
"created_at": "2026-03-14T00:43:29Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 2979,
"created_at": "2026-06-16T18:12:36Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 2988,
"created_at": "2026-06-29T12:18:46Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 2999,
"created_at": "2026-07-22T13:05:25Z",
"last_comment_at": "2026-07-28T09:36:37Z",
"last_comment_author": "bric3"
},
{
"number": 3000,
"created_at": "2026-07-25T11:28:42Z",
"last_comment_at": "2026-07-28T13:55:18Z",
"last_comment_author": "scordio"
},
{
"number": 3002,
"created_at": "2026-07-28T02:36:05Z",
"last_comment_at": null,
"last_comment_author": null
}
],
"last_merged_pr_at": "2026-07-27T20:17:22Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": [
{
"number": 76,
"created_at": "2017-01-20T14:38:19Z",
"last_comment_at": "2023-03-10T18:49:12Z",
"last_comment_author": "jbduncan"
},
{
"number": 111,
"created_at": "2017-05-14T20:56:51Z",
"last_comment_at": "2026-01-29T16:59:47Z",
"last_comment_author": "ColtonIdle"
},
{
"number": 143,
"created_at": "2017-09-21T15:33:01Z",
"last_comment_at": "2026-05-07T17:55:36Z",
"last_comment_author": "OksiBlack"
},
{
"number": 245,
"created_at": "2018-05-08T21:00:41Z",
"last_comment_at": "2018-08-06T16:28:05Z",
"last_comment_author": "PoonamGargAgarwal"
},
{
"number": 292,
"created_at": "2018-08-31T13:31:06Z",
"last_comment_at": "2024-12-08T12:52:16Z",
"last_comment_author": "jzelAdmin2006"
},
{
"number": 323,
"created_at": "2018-12-14T09:54:42Z",
"last_comment_at": "2022-11-03T21:49:38Z",
"last_comment_author": "nedtwigg"
},
{
"number": 437,
"created_at": "2019-08-20T04:48:13Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 520,
"created_at": "2020-02-01T01:11:40Z",
"last_comment_at": "2026-04-26T07:46:07Z",
"last_comment_author": "mnk"
},
{
"number": 523,
"created_at": "2020-02-13T18:45:47Z",
"last_comment_at": "2020-02-13T19:03:38Z",
"last_comment_author": "nedtwigg"
},
{
"number": 527,
"created_at": "2020-02-19T14:09:20Z",
"last_comment_at": "2024-01-18T20:02:34Z",
"last_comment_author": "maxandersen"
},
{
"number": 532,
"created_at": "2020-02-28T17:24:01Z",
"last_comment_at": "2026-05-21T06:22:04Z",
"last_comment_author": "tkslaw"
},
{
"number": 587,
"created_at": "2020-05-30T08:02:03Z",
"last_comment_at": "2021-04-01T03:14:07Z",
"last_comment_author": "netvl"
},
{
"number": 623,
"created_at": "2020-06-25T17:16:43Z",
"last_comment_at": "2026-03-30T23:53:36Z",
"last_comment_author": "mrlonis"
},
{
"number": 655,
"created_at": "2020-07-30T20:42:17Z",
"last_comment_at": "2025-09-24T08:53:27Z",
"last_comment_author": "nedtwigg"
},
{
"number": 673,
"created_at": "2020-08-25T06:17:23Z",
"last_comment_at": "2023-11-20T21:23:43Z",
"last_comment_author": "nedtwigg"
},
{
"number": 674,
"created_at": "2020-08-25T06:24:21Z",
"last_comment_at": "2024-08-25T22:30:41Z",
"last_comment_author": "nedtwigg"
},
{
"number": 675,
"created_at": "2020-08-25T07:29:44Z",
"last_comment_at": "2023-03-07T09:52:47Z",
"last_comment_author": "milgner"
},
{
"number": 688,
"created_at": "2020-09-09T05:32:06Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 695,
"created_at": "2020-09-13T20:11:28Z",
"last_comment_at": "2025-01-15T14:01:22Z",
"last_comment_author": "Ozame"
},
{
"number": 710,
"created_at": "2020-10-02T21:37:26Z",
"last_comment_at": "2024-09-12T16:46:03Z",
"last_comment_author": "omhack"
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/diffplug/spotless",
"host": "github.com",
"name": "spotless",
"owner": "diffplug"
},
"metrics": {
"overall": {
"key": "overall",
"band": "good",
"name": "Overall health",
"note": null,
"notes": [],
"value": 79,
"inputs": {
"security": 71,
"vitality": 99,
"community": 95,
"governance": 60,
"engineering": 74
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "excellent",
"name": "Vitality",
"value": 99,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "excellent",
"name": "Development activity",
"note": null,
"notes": [],
"value": 98,
"inputs": {
"commits_last_year": 799,
"human_commit_share": 0.89,
"days_since_last_push": 0,
"active_weeks_last_year": 49
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 0 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 0
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "49/52 weeks with commits",
"points": 33.9,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 49
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "799 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 799
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "30 commit(s) and 5 issue activity found in the last 90 days -- score normalized to 10",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "excellent",
"name": "Release discipline",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 100,
"inputs": {
"releases_count": 70,
"latest_release_tag": "maven/3.9.0",
"releases_from_tags": false,
"days_since_latest_release": 0,
"mean_days_between_releases": 6.8
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "70 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 70
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 0 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 0
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~6.8 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 6.8
}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 10
}
]
},
{
"key": "abandonment",
"band": "excellent",
"name": "Abandonment",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"cap": null,
"state": "maintained",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": null,
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": 0,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "last human commit 0 days ago",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_maintained",
"params": {
"days": 0
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "excellent",
"name": "Community & Adoption",
"value": 95,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "excellent",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 91,
"inputs": {
"forks": 542,
"stars": 5574,
"watchers": 29,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "5,574 stars",
"points": 60,
"status": "met",
"details": [
{
"code": "stars",
"params": {
"count": 5574
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "542 forks",
"points": 22.8,
"status": "partial",
"details": [
{
"code": "forks",
"params": {
"count": 542
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "29 watchers",
"points": 8,
"status": "partial",
"details": [
{
"code": "watchers",
"params": {
"count": 29
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "excellent",
"name": "Community health",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": true,
"has_issue_template": true,
"has_code_of_conduct": true,
"has_pull_request_template": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "recognized license (Apache-2.0)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "Apache-2.0"
}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 18,
"status": "met",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 13.5,
"status": "met",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 7.2,
"status": "met",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 6.3,
"status": "met",
"details": [],
"max_points": 6.3
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "moderate",
"name": "Sustainability & Governance",
"value": 60,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "at_risk",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 98,
"top_contributor_share": 0.656
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "1 contributor(s) cover half of all commits",
"points": 9,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 1
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 66% of commits",
"points": 7.7,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 66
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "98 contributors",
"points": 13.5,
"status": "met",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 98
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 46 contributing companies or organizations",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "good",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 77,
"inputs": {
"merged_prs": 1343,
"open_issues": 245,
"closed_issues": 992,
"issue_closed_ratio": 0.802,
"closed_unmerged_prs": 341
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "80% of issues closed",
"points": 37.5,
"status": "partial",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 80
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "1343/1684 decided PRs merged",
"points": 30.5,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 1343,
"decided": 1684
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 5/8 approved changesets -- score normalized to 6",
"points": 9,
"status": "partial",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "moderate",
"name": "Ownership & stewardship",
"note": null,
"notes": [],
"value": 68,
"inputs": {
"followers": 74,
"owner_type": "Organization",
"is_verified": null,
"owner_login": "diffplug",
"public_repos": 61,
"account_age_days": 4558
},
"components": [
{
"key": "ownership_backing",
"name": "Ownership backing",
"detail": "organization-owned",
"points": 30,
"status": "met",
"details": [
{
"code": "owner_organization",
"params": {}
}
],
"max_points": 30
},
{
"key": "verified_domain",
"name": "Verified domain",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 20
},
{
"key": "owner_reach",
"name": "Owner reach",
"detail": "74 followers of diffplug",
"points": 13.5,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 74,
"login": "diffplug"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "61 public repos, account ~12 yr old",
"points": 25,
"status": "met",
"details": [
{
"code": "public_repos",
"params": {
"count": 61
}
},
{
"code": "account_age_years",
"params": {
"years": 12
}
}
],
"max_points": 25
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "good",
"name": "Engineering Quality",
"value": 74,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "excellent",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 90,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": true,
"has_linter_config": true,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "5 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 5
}
}
],
"max_points": 24
},
{
"key": "tests_present",
"name": "Tests present",
"detail": null,
"points": 24,
"status": "met",
"details": [],
"max_points": 24
},
{
"key": "linter_config",
"name": "Linter config",
"detail": ".eslintrc.js",
"points": 16,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".eslintrc.js"
}
}
],
"max_points": 16
},
{
"key": "pre_commit_hooks",
"name": "Pre-commit hooks",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 9.6
},
{
"key": "editorconfig",
"name": ".editorconfig",
"detail": null,
"points": 6.4,
"status": "met",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "5 out of 5 merged PRs checked by a CI test -- score normalized to 10",
"points": 20,
"status": "met",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "moderate",
"name": "Documentation",
"note": null,
"notes": [],
"value": 50,
"inputs": {
"topics": [
"gradle",
"java",
"plugin-gradle",
"formatter",
"kotlin",
"scala",
"groovy",
"maven",
"prettier",
"javascript",
"typescript",
"sql",
"css",
"sass"
],
"has_wiki": false,
"homepage": null,
"has_readme": true,
"has_docs_dir": false,
"has_description": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 30,
"status": "met",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": "14 topics",
"points": 10,
"status": "met",
"details": [
{
"code": "topics_count",
"params": {
"count": 14
}
}
],
"max_points": 10
},
{
"key": "wiki",
"name": "Wiki",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "good",
"name": "Security",
"value": 71,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "good",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): Branch-Protection, Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"branch_protection",
"signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 71,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 16,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 2,
"scorecard_aggregate": 7.1
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "binaries present in source code",
"points": 5.2,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "5 out of 5 merged PRs checked by a CI test -- score normalized to 10",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "cii_best_practices",
"name": "CII-Best-Practices",
"detail": "no effort to earn an OpenSSF best practices badge detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "code_review",
"name": "Code-Review",
"detail": "Found 5/8 approved changesets -- score normalized to 6",
"points": 4.5,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 46 contributing companies or organizations",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "no dangerous workflow patterns detected",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "dependency_update_tool",
"name": "Dependency-Update-Tool",
"detail": "update tool detected",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "fuzzing",
"name": "Fuzzing",
"detail": "project is not fuzzed",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file detected",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "30 commit(s) and 5 issue activity found in the last 90 days -- score normalized to 10",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "packaging",
"name": "Packaging",
"detail": "packaging workflow detected",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "SAST tool is run on all commits",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file detected",
"points": 4.5,
"status": "partial",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "detected GitHub workflow tokens with excessive permissions",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "0 existing vulnerabilities detected",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "high_risk_jurisdiction_exposure",
"band": "excellent",
"name": "High-Risk Jurisdiction Exposure",
"note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
"notes": [
{
"code": "jurisdiction_evidence_limits",
"params": {}
}
],
"value": 100,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": false,
"exposures": [],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"review_only_matches": 0,
"assessed_self_published_locations": 17
},
"components": [
{
"key": "policy_exposure_multiplier",
"name": "Policy exposure multiplier",
"detail": "no confirmed policy-scope location match",
"points": 100,
"status": "met",
"details": [
{
"code": "jurisdiction_no_match",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
},
{
"key": "ai_readiness",
"band": "moderate",
"name": "AI Readiness",
"value": 57,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "critical",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 20,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.371,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": "no CLAUDE.md / AGENTS.md / editor rules",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_agent_instructions",
"params": {}
}
],
"max_points": 45
},
{
"key": "machine_readable_docs_llms_txt",
"name": "Machine-readable docs (llms.txt)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "legible_commit_history",
"name": "Legible commit history",
"detail": "33 of 89 human commits state their intent (structured subject or explanatory body)",
"points": 19.8,
"status": "partial",
"details": [
{
"code": "legible_history",
"params": {
"legible": 33,
"sampled": 89
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "good",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 75,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [],
"has_dockerfile": false,
"typed_language": true,
"bootstrap_files": [],
"has_devcontainer": false,
"has_linter_config": true,
"typecheck_configs": [
"testlib/src/main/resources/npm/eslint/typescript/styleguide/standard_with_typescript/tsconfig.json",
"testlib/src/main/resources/npm/eslint/typescript/styleguide/xo/tsconfig.json",
"testlib/src/main/resources/npm/tsfmt/tsconfig/tsconfig.json"
],
"agent_commit_share": 0.08,
"toolchain_manifests": [
"build.gradle",
"lib-extra/build.gradle",
"lib/build.gradle",
"plugin-gradle/build.gradle",
"plugin-maven/build.gradle",
"testlib/build.gradle"
],
"dependency_bot_commit_share": 0.11
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": "build.gradle, lib-extra/build.gradle, lib/build.gradle (toolchain convention, no task runner)",
"points": 12.6,
"status": "partial",
"details": [
{
"code": "toolchain_convention",
"params": {
"files": "build.gradle, lib-extra/build.gradle, lib/build.gradle"
}
}
],
"max_points": 18
},
{
"key": "automated_tests",
"name": "Automated tests",
"detail": null,
"points": 22,
"status": "met",
"details": [],
"max_points": 22
},
{
"key": "lint_format_config",
"name": "Lint / format config",
"detail": ".eslintrc.js",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".eslintrc.js"
}
}
],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "testlib/src/main/resources/npm/eslint/typescript/styleguide/standard_with_typescript/tsconfig.json, testlib/src/main/resources/npm/eslint/typescript/styleguide/xo/tsconfig.json, testlib/src/main/resources/npm/tsfmt/tsconfig/tsconfig.json",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "testlib/src/main/resources/npm/eslint/typescript/styleguide/standard_with_typescript/tsconfig.json, testlib/src/main/resources/npm/eslint/typescript/styleguide/xo/tsconfig.json, testlib/src/main/resources/npm/tsfmt/tsconfig/tsconfig.json"
}
}
],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "8 of the last 100 commits agent-authored or agent-credited",
"points": 10,
"status": "met",
"details": [
{
"code": "agent_authored_commits",
"params": {
"count": 8,
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "11 of the last 100 commits are automated dependency updates",
"points": 8,
"status": "met",
"details": [
{
"code": "dependency_bot_commits",
"params": {
"count": 11,
"sampled": 100
}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"primary_language": "Java",
"largest_source_bytes": 38727,
"source_files_sampled": 675,
"oversized_source_files": 0
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "Java (statically typed)",
"points": 45,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "Java"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "0/675 source files over 60KB",
"points": 55,
"status": "met",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 675,
"oversized": 0
}
}
],
"max_points": 55
}
]
},
{
"key": "ai_interfaces",
"band": "at_risk",
"name": "Machine-readable interfaces",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"example_dirs": [],
"has_mcp_signal": false,
"api_schema_files": [
"testlib/src/main/resources/clang/example.proto",
"testlib/src/main/resources/protobuf/buf/buf.proto",
"testlib/src/main/resources/protobuf/buf/buf_large.proto",
"testlib/src/main/resources/protobuf/buf/license.proto"
]
},
"components": [
{
"key": "api_schema_openapi_graphql_proto",
"name": "API schema (OpenAPI/GraphQL/proto)",
"detail": "testlib/src/main/resources/clang/example.proto, testlib/src/main/resources/protobuf/buf/buf.proto, testlib/src/main/resources/protobuf/buf/buf_large.proto, testlib/src/main/resources/protobuf/buf/license.proto",
"points": 40,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "testlib/src/main/resources/clang/example.proto, testlib/src/main/resources/protobuf/buf/buf.proto, testlib/src/main/resources/protobuf/buf/buf_large.proto, testlib/src/main/resources/protobuf/buf/license.proto"
}
}
],
"max_points": 40
},
{
"key": "mcp_server",
"name": "MCP server",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 20
},
{
"key": "runnable_examples",
"name": "Runnable examples",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 40
}
]
}
],
"description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
}
],
"metrics_version": "1.13.0"
},
"warnings": [
"Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
],
"report_type": "repository",
"generated_at": "2026-07-28T14:24:16.601540Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/d/diffplug/spotless.svg",
"full_name": "diffplug/spotless",
"license_state": "standard",
"license_spdx": "Apache-2.0"
}