原始 JSON 报告 机器可读
{
"data": {
"repo": {
"topics": [],
"is_fork": false,
"size_kb": 1597,
"has_wiki": true,
"homepage": null,
"languages": {
"Shell": 290,
"Erlang": 521576,
"Makefile": 237
},
"pushed_at": "2026-06-08T22:21:46Z",
"created_at": "2010-05-22T17:48:06Z",
"owner_type": "Organization",
"updated_at": "2026-07-09T10:46:24Z",
"description": "MochiWeb is an Erlang library for building lightweight HTTP servers.",
"is_archived": false,
"is_disabled": false,
"license_spdx": null,
"default_branch": "main",
"license_spdx_raw": "NOASSERTION",
"primary_language": "Erlang",
"significant_languages": [
"Erlang"
]
},
"owner": {
"blog": "https://www.mochimedia.com/",
"name": "Mochi Media, Inc.",
"type": "Organization",
"login": "mochi",
"company": null,
"location": "San Francisco, CA",
"followers": 21,
"avatar_url": "https://avatars.githubusercontent.com/u/284270?v=4",
"created_at": "2010-05-22T17:47:10Z",
"is_verified": null,
"public_repos": 19,
"account_age_days": 5904
},
"license": {
"state": "custom",
"spdx_id": null,
"raw_spdx": "NOASSERTION",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "v3.4.0",
"kind": "minor",
"published_at": "2026-06-08T22:21:46Z"
},
{
"tag": "v3.3.0",
"kind": "minor",
"published_at": "2025-09-17T18:56:42Z"
},
{
"tag": "v3.2.2",
"kind": "patch",
"published_at": "2024-03-21T22:35:31Z"
},
{
"tag": "v3.2.1",
"kind": "patch",
"published_at": "2023-09-22T15:38:56Z"
},
{
"tag": "v3.2.0",
"kind": "minor",
"published_at": "2023-08-31T17:25:13Z"
},
{
"tag": "v3.1.2",
"kind": "patch",
"published_at": "2023-04-20T21:19:12Z"
},
{
"tag": "v3.1.1",
"kind": "patch",
"published_at": "2022-10-12T05:39:57Z"
},
{
"tag": "v3.1.0",
"kind": "minor",
"published_at": "2022-08-14T02:35:37Z"
},
{
"tag": "v3.0.0",
"kind": "major",
"published_at": "2022-05-10T03:30:31Z"
},
{
"tag": "v2.22.0",
"kind": "minor",
"published_at": "2021-08-23T23:16:43Z"
},
{
"tag": "v2.21.0",
"kind": "minor",
"published_at": "2021-06-07T03:55:38Z"
},
{
"tag": "v2.20.1",
"kind": "patch",
"published_at": "2020-02-03T17:49:24Z"
},
{
"tag": "v2.20.0",
"kind": "minor",
"published_at": "2019-07-15T01:47:36Z"
},
{
"tag": "v2.19.0",
"kind": "minor",
"published_at": "2019-01-17T17:59:56Z"
}
],
"recent_commits": [
{
"oid": "ea0327cc095801c255d2832929f1acb7c79054b2",
"body": "Update CHANGES and version for v3.4.0",
"is_bot": false,
"headline": "Merge pull request #267 from mochi/branch-3.4.0",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2026-06-08T22:20:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c80a99120faf776cfb37059c97d055c67a0e0d3f",
"body": null,
"is_bot": false,
"headline": "Update CHANGES and version for v3.4.0",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2026-06-08T22:18:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8ab5df290a85bb9cdbd7ee1cd9b4b650510bb7a8",
"body": "Add OTP 29 Support. Set minumum OTP version to 23.",
"is_bot": false,
"headline": "Merge pull request #266 from mochi/otp-29",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2026-06-08T22:13:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0e8c8100dd9009ea33f16a4ec1062c82e3fce1ad",
"body": "New OTP 29 release throws warnings on `catch ...` expressions so translate them\nto `try ... catch ...` that's the biggest change.\n\nSince we're adding support for a new release, let's clean up and make OTP 23\nthe minumum. This way we can get rid of all the defines and we still get 6\nyears worth of Er\n[…]\nld automatically log the module and\nfunction names.\n\nApplication startup can also be simplified nowadays with\n`ensure_all_started/1`, so we can call that and not have to start applications\none-by-one.",
"is_bot": false,
"headline": "Add OTP 29 Support. Set minumum OTP version to 23.",
"author_name": "Nick Vatamaniuc",
"author_login": "nickva",
"committed_at": "2026-06-08T22:09:54Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "edea3841bf7492a6ec1e654ce086aa1dd6505f8a",
"body": "Update CHANGES and version for v3.3.0",
"is_bot": false,
"headline": "Merge pull request #265 from mochi/branch-v3.3.0",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2025-09-17T18:55:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1062c32810ef7bcec954d050ee1a242c451418ae",
"body": null,
"is_bot": false,
"headline": "Update CHANGES and version for v3.3.0",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2025-09-17T18:48:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "53a5729f5084d0ff8f18f474cc47eabbf28721d9",
"body": "Add OTP 28 to CI and fix crypto:start() deprecation warning",
"is_bot": false,
"headline": "Merge pull request #264 from mochi/add-otp-28-to-ci",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2025-09-17T18:39:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "48403fa13af4a5ff9de3c1a4bd5c65f389aafcaa",
"body": "They started to fail in CI. With 20 -> 28 we still get a nice coverage as far\nback as 2017.",
"is_bot": false,
"headline": "Drop support for OTP 18 and 19",
"author_name": "Nick Vatamaniuc",
"author_login": "nickva",
"committed_at": "2025-09-17T18:32:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "963f6e990c8fbab376efd3d5946d5f18a5d77b0a",
"body": "It's equivalent to `application:start(crypto)`\n\nDocumented to work as such since 18.0 at least:\n https://www.erlang.org/docs/18/man/crypto#start-0",
"is_bot": false,
"headline": "Fix crypto:start() deprecation warning",
"author_name": "Nick Vatamaniuc",
"author_login": "nickva",
"committed_at": "2025-09-17T18:15:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b91be5dbf1700ee372b526edb07b3cf71ecfd23c",
"body": null,
"is_bot": false,
"headline": "Add OTP 28 to CI",
"author_name": "Nick Vatamaniuc",
"author_login": "nickva",
"committed_at": "2025-09-17T18:15:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "611254eb941e502227f221667389b98fd8e72d6f",
"body": "Use single quotes around 'maybe' atom for compatibility with OTP 27",
"is_bot": false,
"headline": "Merge pull request #262 from michallepicki/otp-27",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2024-03-21T19:58:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "004080bf15883c58d8ce548cc40057c8aba22f2a",
"body": null,
"is_bot": false,
"headline": "checkout@v3 for otp 18 & 19",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2024-03-21T19:23:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bc6ac7f0af524cbd3516774939924e17006ad3e3",
"body": null,
"is_bot": false,
"headline": "checkout v4",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2024-03-21T17:16:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "be68a43c2475d8442a65b32b9ed46d15585e39a8",
"body": null,
"is_bot": false,
"headline": "Fix mochijson2 test that was map-order dependent",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2024-03-21T17:10:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4b03d120556a0be60b6a1da6f0ee2c1c531b5c26",
"body": null,
"is_bot": false,
"headline": "Update mochiweb_util tests to avoid OTP 27 warnings",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2024-03-21T17:02:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "66a5ef8ea818d98f704dcc255b31194a4b63f6e2",
"body": null,
"is_bot": false,
"headline": "Update CHANGES and ci matrix",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2024-03-21T16:27:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a8166065d4a0e77d63879bb38e7ac70706cb04f9",
"body": null,
"is_bot": false,
"headline": "use single quotes around 'maybe' atom for compatibility with OTP 27",
"author_name": "Michał Łępicki",
"author_login": "michallepicki",
"committed_at": "2024-03-21T16:13:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4e5372e2fddac7ccfab8ef6f44b7f11246d3f842",
"body": "Update Erlang CI images",
"is_bot": false,
"headline": "Merge pull request #261 from nickva/update-ci-images",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2023-09-22T19:24:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "293b95d2e8ceabcdf8dc381b8c1fcaf7626002ea",
"body": null,
"is_bot": false,
"headline": "Update certificates",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2023-09-22T19:08:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fa3bf829e32c23d5b47b98f4e7098ff7e52f1ff0",
"body": " * Use latest patch levels for 24 and 25.\n * Add 26 to the list.\n\nIn Erlang 26 TLS `verify` option switched the default value from `verify_none`\nto `verify_peer` [1]. So had to explictly set it in the test client.\n\n[1] https://www.erlang.org/blog/otp-26-highlights/#ssl-safer-defaults",
"is_bot": false,
"headline": "Update Erlang CI images",
"author_name": "Nick Vatamaniuc",
"author_login": "nickva",
"committed_at": "2023-09-22T19:07:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "897f22f6720cf369547d1303888b46b5a00e00b4",
"body": null,
"is_bot": false,
"headline": "Update CHANGES for v3.2.1",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2023-09-22T15:37:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "97573d2e7e7db0861c71df1ae82b880b4deb09fe",
"body": "mochinum:digits/1: fix handling of -0.0 for OTP-26.1/27.0",
"is_bot": false,
"headline": "Merge pull request #260 from mikpe/fix-match-on-float-zero",
"author_name": "Nick Vatamaniuc",
"author_login": "nickva",
"committed_at": "2023-09-22T14:43:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1aa9ba1a450b3425856e40d1d6b25b2420dd7237",
"body": "Matching of floating-point zeroes will change in OTP-27 so that -0.0 will\nno longer match a non-negative 0.0. OTP-26.1 warns about such constructs,\nwhich in mochiweb results in:\n\nsrc/mochinum.erl:47:8: Warning: matching on the float 0.0 will no longer also match -0.0 in OTP 27. If you specifically intend to match 0.0 alone, write +0.0 instead.\n\nFixed by switching from a match to a numerical comparison.",
"is_bot": false,
"headline": "mochinum:digits/1: fix handling of -0.0 for OTP-26.1/27.0",
"author_name": "Mikael Pettersson",
"author_login": "mikpe",
"committed_at": "2023-09-22T11:23:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cab447481dac6b781ebe53acbfacb1f7af035b37",
"body": "Update CHANGES and version for v3.2.0",
"is_bot": false,
"headline": "Merge pull request #259 from mochi/add-request-is-closed-function",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2023-08-31T17:23:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f4551263c800a4935fd8038e8cd27e2c6aabe33d",
"body": null,
"is_bot": false,
"headline": "Update CHANGES and version",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2023-08-31T17:22:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "af661f16e0f3041b6e6ccdce808fbda7e5bf9cb6",
"body": "Add mochiweb_request:is_closed/1 function",
"is_bot": false,
"headline": "Merge pull request #258 from nickva/add-request-is-closed-function",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2023-08-31T17:22:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8b2d844d6fcd4c8f4e77d1455781e8ea68747eb7",
"body": "This function can used during long running request callbacks to detect if the\nclient connection is closed.\n\nIf the request callback periodically streams data back to the client, the act\nof writting to the client socket will detect if it is closed or not. However,\nin cases when no data is sent back, \n[…]\nTP\nmodule doesn't have a recv() variant which takes extra options. In addition,\nthe new socket implementation still feels rather experimental. (It's not the\ndefault even in the latest OTP 26 release).",
"is_bot": false,
"headline": "Add mochiweb_request:is_closed/1 function",
"author_name": "Nick Vatamaniuc",
"author_login": "nickva",
"committed_at": "2023-08-31T17:00:54Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "073349423408e4bae08c90f8d16fee5317e45263",
"body": "Fix rebar edoc and test in CI",
"is_bot": false,
"headline": "Merge pull request #257 from mochi/fix-edoc",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2023-04-20T21:18:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5bd84113c24ba68b936b8ce749850302866e3cc8",
"body": null,
"is_bot": false,
"headline": "Fix rebar edoc and test in CI",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2023-04-20T20:58:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "666ac57d5cad8da0341e53db884855ee9a9805b0",
"body": "Update README.md",
"is_bot": false,
"headline": "Merge pull request #254 from vjc22/patch-1",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2023-02-13T02:43:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "eaba29ba3ef5c2519908852c47d44dff562fc63b",
"body": "Fixed typo in line 5.",
"is_bot": false,
"headline": "Update README.md",
"author_name": "vjc22",
"author_login": "vjc22",
"committed_at": "2023-02-12T22:48:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "125d080e40c1ec61d9ca792bc8ca522bfb93e6cf",
"body": "Updated with the suggested changes",
"is_bot": false,
"headline": "Update README.md",
"author_name": "vjc22",
"author_login": "vjc22",
"committed_at": "2023-02-12T22:46:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7ed4ecf69a912c76fd51d708b315bb53792a3970",
"body": "Added overview section. Added getting started section and a tutorial. Added benefits section. Added documentation section. Added contributing section.",
"is_bot": false,
"headline": "Update README.md",
"author_name": "vjc22",
"author_login": "vjc22",
"committed_at": "2023-02-12T22:01:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7c4d3110b1889a5d58eb4dda2b1ddbb5645df3e9",
"body": "Add a test for the chunked encoding fix",
"is_bot": false,
"headline": "Merge pull request #252 from mochi/test-chunked-encoding",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2022-10-12T05:39:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7ad3bd3113d839bb4e01f7852538f574bb5e2fd3",
"body": null,
"is_bot": false,
"headline": "Add a test for the chunked encoding fix",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2022-10-12T05:32:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ef51f620f7f6afb26370e6e18dc5bd88dc5b8a85",
"body": null,
"is_bot": false,
"headline": "Update CHANGES.md",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2022-10-09T01:32:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b1c5ccaf514d0ce6ed385b6cde199dae15ff5657",
"body": "Add OTP 25 to test matrix",
"is_bot": false,
"headline": "Merge pull request #251 from mochi/otp-25",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2022-10-09T01:31:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a250223b06eee96b69e544ce73e8d770d4044bef",
"body": null,
"is_bot": false,
"headline": "Note latest compatibility in README",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2022-10-07T16:29:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "26f388b8771b0830282e91ef05a39608964da285",
"body": null,
"is_bot": false,
"headline": "Add OTP 25 to test matrix",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2022-10-07T16:11:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1ccacbf9657d923b87bf21f37645213596564a54",
"body": "Bug in mochiweb_request:read_chunk_length/2 #188",
"is_bot": false,
"headline": "Merge pull request #249 from BradS2S/main",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2022-09-21T14:46:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6d94ceb59a1eda4c28ddafc3ac494443476d836c",
"body": "I'm still very new to Erlang but this seems pretty straightforward.",
"is_bot": false,
"headline": "Bug in mochiweb_request:read_chunk_length/2 #188",
"author_name": "BradS2S",
"author_login": "BradS2S",
"committed_at": "2022-09-21T06:34:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bd0c848040b57513c824b58f1c0c5e6d3d045dea",
"body": null,
"is_bot": false,
"headline": "fix release date",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2022-08-14T02:35:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6d22721b51166cf8bac3f74f40d48073950595a9",
"body": "v3.1.0",
"is_bot": false,
"headline": "Merge pull request #248 from mochi/follow-up-247",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2022-08-14T02:33:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "48c0cddd1045c58de4137f5ad08944118925bfda",
"body": null,
"is_bot": false,
"headline": "v3.1.0",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2022-08-14T02:26:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "16c43ef4132608fa4109ed3518beb3f240b116c7",
"body": "Remove leading and trailing whitespaces",
"is_bot": false,
"headline": "Merge pull request #247 from big-r81/patch-2",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2022-08-14T02:19:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "38aadf35a346c49222b387d319a0e590640850e4",
"body": "from field-values to be RFC 7230 compliant.",
"is_bot": false,
"headline": "Remove leading and trailing whitespaces",
"author_name": "Ronny",
"author_login": "big-r81",
"committed_at": "2022-08-11T13:47:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a46b10a600ae93f5c0cda034ecd42791bfb56845",
"body": null,
"is_bot": false,
"headline": "Merge pull request #245 from big-r81/patch-1",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2022-08-11T13:21:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "927cd19426f9c3631186d3322b7331bb7eb6fe68",
"body": null,
"is_bot": false,
"headline": "Fix typo in atom",
"author_name": "Ronny",
"author_login": "big-r81",
"committed_at": "2022-08-11T08:07:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "845803a5defa693c546ea7250818f226a52d2891",
"body": "Start on rebar3 support",
"is_bot": false,
"headline": "Merge pull request #241 from mochi/rebar3",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2022-05-10T03:29:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8936dcd23cd15f135cfdc779e6e95b5a29acd190",
"body": null,
"is_bot": false,
"headline": "Update CHANGES.md",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2022-05-10T03:26:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "db44f53054fe46523eab597819b5e41aa61948ff",
"body": null,
"is_bot": false,
"headline": "build is a phony target as well",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2022-05-10T00:09:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a55c1ec78c4efdb5a164dffe2d37b0f544094562",
"body": "Rebar3 improvements",
"is_bot": false,
"headline": "Merge pull request #243 from nickva/rebar3-improvements",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2022-05-10T00:03:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "995bc29d4eb1358879dfa00af92b98e9a7a714e7",
"body": "Remove `app` file and allow specifying a different REBAR executable\nso we can test both rebar2 and rebar3.\n\nSince OTP team provides docker images we can use those for CI. They seem to be\na bit more recent than ESL packages and also provide `rebar` and `rebar3`\ncommands.",
"is_bot": false,
"headline": "Simplify Makefile and update CI",
"author_name": "Nick Vatamaniuc",
"author_login": "nickva",
"committed_at": "2022-05-09T21:43:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f4db79197c0f9871241b0eaeea1b8af53e7bb994",
"body": null,
"is_bot": false,
"headline": "Remove rebar 2 binary.",
"author_name": "Nick Vatamaniuc",
"author_login": "nickva",
"committed_at": "2022-05-09T21:15:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0058559a4e050932d4e9234fdffdfc83e75ebba2",
"body": "Since rebar3 expects templates to be in `~/.config/rebar3/templates/` [1], opt\nto instead having just an example project users can copy and update on their\nown.\n\n[1] https://www.rebar3.org/docs/tutorials/templates",
"is_bot": false,
"headline": "Replace template project with an example project",
"author_name": "Nick Vatamaniuc",
"author_login": "nickva",
"committed_at": "2022-05-09T20:58:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3b3478c6147aadc3cb2662c37b517110efc923b5",
"body": null,
"is_bot": false,
"headline": "Start on rebar3 support",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2022-05-06T16:05:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "53114ba91470e1b9d90e3f6fb663ff6bba43619a",
"body": "…ting\n\nHandle {shutdown, Error} when recycling acceptor pids",
"is_bot": false,
"headline": "Merge pull request #242 from nickva/acceptor-fix-recycler-error-repor…",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2022-05-06T16:02:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "077b4f801ba8f853a9649a9c0f055b8e4f33dcca",
"body": "After https://github.com/mochi/mochiweb/pull/238 acceptor processes would exit\nwith {shutdown, Error} on timeouts and other errors which were `normal` before.",
"is_bot": false,
"headline": "Handle {shutdown, Error} when recycling acceptor pids",
"author_name": "Nick Vatamaniuc",
"author_login": "nickva",
"committed_at": "2022-05-06T14:19:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "83fd22d620bbefd8779ccb6ea21706bb8a1e0ed2",
"body": "Set minimum OTP to 18",
"is_bot": false,
"headline": "Merge pull request #239 from mochi/minimum-otp-18",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2022-05-06T05:28:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "73f92449088cdd01598ca9408df63af9982b1919",
"body": "Two minor patches to help with Erlang <18 support removal",
"is_bot": false,
"headline": "Merge pull request #240 from nickva/remove-erlang-version-less-than-18",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2022-05-06T03:51:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1bbae500da5c42bdf1d28efcafffd5695961e2a8",
"body": null,
"is_bot": false,
"headline": "Attempt to fix CI with latest ESL packages for each major version",
"author_name": "Nick Vatamaniuc",
"author_login": "nickva",
"committed_at": "2022-05-06T03:01:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5e47b285e3c332de111d0ef1dd2bc48c42ed9232",
"body": "Since we're not inspecting the message in handle_invalid_msg_request any\nlonger, we don't have to pass the message in altogether.",
"is_bot": false,
"headline": "A bit more cleanup for R15 emsgsize workaround",
"author_name": "Nick Vatamaniuc",
"author_login": "nickva",
"committed_at": "2022-05-06T02:49:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "22032def84b22ecc81fa668c95f1365bcc0390bc",
"body": null,
"is_bot": false,
"headline": "Set minimum OTP to 18",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2022-05-06T01:34:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fce80ef5e2c105405a39d3cdf4615f21e0d1d734",
"body": "Use {shutdown, Error} when terminating connection processes",
"is_bot": false,
"headline": "Merge pull request #238 from nickva/use-shutdown-for-process-exits",
"author_name": "Nick Vatamaniuc",
"author_login": "nickva",
"committed_at": "2022-05-05T21:58:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5d51075f27d1c8190d79d73ac55759e5518c811b",
"body": null,
"is_bot": false,
"headline": "Update changes log about the potential exit(normal) incompatibility",
"author_name": "Nick Vatamaniuc",
"author_login": "nickva",
"committed_at": "2022-05-04T17:07:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e56a4dce6b360c5c5d037e8de33dd267790092e4",
"body": "Previously they exited `normal`, which helped avoid error log spam. However,\nthat also meant any linked helper processes would not exit when the main\nconnection process had been terminated.\n\nTo automatically clean up any linked processes, and continue avoiding\ngenerating error logs, we can use `{shu\n[…]\ne error logs\n[1].\n\nAnother benefit is having more specific exit reasons (send error, recv error,\netc.), which may help with debugging.\n\n[1] https://www.erlang.org/docs/24/man/proc_lib.html#description",
"is_bot": false,
"headline": "Use {shutdown, Error} when terminating connection processes",
"author_name": "Nick Vatamaniuc",
"author_login": "nickva",
"committed_at": "2022-05-02T22:13:42Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "c724c3a41c2e3ec7977fe118058056f0b8d2b8cc",
"body": "Fix typos",
"is_bot": false,
"headline": "Merge pull request #237 from kianmeng/fix-typos",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2022-03-10T15:54:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d4f8da245ef1d1d2f43b6235b7aca467f24046ae",
"body": null,
"is_bot": false,
"headline": "Fix typos",
"author_name": "Kian-Meng Ang",
"author_login": "kianmeng",
"committed_at": "2022-03-10T15:48:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "835b107a4da4550080d032623ff6ae9a18d02c37",
"body": "Automate hex publish",
"is_bot": false,
"headline": "Merge pull request #235 from mochi/automate-hex-publish",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2021-08-23T23:15:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e3cdf58f5439ca5ffebdc344e0acc5ecc7811e66",
"body": null,
"is_bot": false,
"headline": "Attempt to automate hex publish",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2021-08-23T23:13:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e9eb2f108b3c029c799d998eac651999c4117ebd",
"body": null,
"is_bot": false,
"headline": "Rename master to main",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2021-08-05T15:53:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "04eba48bccaf0272e838e93c29f9ca16b73c5ab8",
"body": "…-+-encoding\n\nAdd unquote_path/1 for separate + encoding",
"is_bot": false,
"headline": "Merge pull request #234 from noahshaw11/add-unquote-path-for-separate…",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2021-07-28T22:23:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c38836813502f8e6866defa5ad3dca02a93e1026",
"body": null,
"is_bot": false,
"headline": "Add unquote_path/1 for separate + encoding",
"author_name": "ncshaw",
"author_login": "noahshaw11",
"committed_at": "2021-07-28T21:35:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "db5408965ef53f31d073db64fbd3332198743cfe",
"body": "v2.21.0 and try github actions",
"is_bot": false,
"headline": "Merge pull request #232 from mochi/v2.21.0",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2021-06-07T03:54:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3f4884ca5da9bed7a36daa892564d4fc4de3a8b8",
"body": null,
"is_bot": false,
"headline": "v2.21.0 and try github actions",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2021-06-07T03:47:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "448984c602aaff0ad9af7d1a4236511444ef288a",
"body": "…upport-OTP-23\n\nUpgrade crypto functions to support OTP 23",
"is_bot": false,
"headline": "Merge pull request #231 from noahshaw11/upgrade-crypto-functions-to-s…",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2021-06-04T16:15:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dae0ac36a1ab7a0c82bd1677847873d987bd5636",
"body": null,
"is_bot": false,
"headline": "Upgrade crypto functions to support OTP 23",
"author_name": "ncshaw",
"author_login": "noahshaw11",
"committed_at": "2021-06-01T16:11:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "070594e4d66163d662ac7e3bfb75dadcc922dd7c",
"body": "fix release number",
"is_bot": false,
"headline": "Merge pull request #229 from mochi/fix-release",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2020-02-14T16:43:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "49a3c931504b1bdb55dc2c2bbee8afefb326bee8",
"body": null,
"is_bot": false,
"headline": "fix release number",
"author_name": "Benoit Chesneau",
"author_login": "benoitc",
"committed_at": "2020-02-14T15:55:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7bc0d63d2d6037533a87cc2f07824832ac2dd5db",
"body": "Update CHANGES for v2.20.1",
"is_bot": false,
"headline": "Merge pull request #228 from mochi/changes-v2.20.1",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2020-02-03T17:48:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9729f65a983f59c84d2308e2fd991a585a84eb99",
"body": null,
"is_bot": false,
"headline": "Update CHANGES for v2.20.1",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2020-02-03T17:42:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "562b32f23a82208e12e5de4ddd943825c812bccb",
"body": null,
"is_bot": false,
"headline": "remove deprecated metadata",
"author_name": "Benoit Chesneau",
"author_login": "benoitc",
"committed_at": "2020-02-03T10:02:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cedc22f66a8e3f3885fb06babc0c0582418508f8",
"body": "Update CHANGES and add OTP 21.3, 22 to travis matrix",
"is_bot": false,
"headline": "Merge pull request #226 from mochi/otp-22",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2019-07-15T01:46:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0c68ac4bec4e0de866a9a47650692ee8b8e6cd2f",
"body": null,
"is_bot": false,
"headline": "Update CHANGES and add OTP 21.3, 22 to travis matrix",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2019-07-15T01:39:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c5e7b835c6ab3397d4a2105e253593a28694ea9a",
"body": "add support for SameSite=none in cookies",
"is_bot": false,
"headline": "Merge pull request #225 from djnym/support-samesite-none",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2019-07-15T01:34:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fc8de2ba2b313bfbf85c1ec59ecde1ab155922d0",
"body": null,
"is_bot": false,
"headline": "add support for SameSite=none in cookies",
"author_name": "Anthony Molinaro",
"author_login": "djnym",
"committed_at": "2019-07-12T22:00:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ad1198018429e22cdf2bb530a2a64ec456c88ab6",
"body": "Update README.md",
"is_bot": false,
"headline": "Merge pull request #220 from penhs/master",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2019-05-26T02:19:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c692fd789774ecfdd0e833c1e05920fbddd1dcc3",
"body": null,
"is_bot": false,
"headline": "Use https for URLs in README.md",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2019-05-22T03:41:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ec988737eef15bff73f9862d34a6f57819680b8d",
"body": "Use dist: trusty for Travis builds with old Erlang releases",
"is_bot": false,
"headline": "Merge pull request #221 from mochi/fix-travis-build",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2019-05-22T03:39:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d12ac647eadc3cf5bd9b2104401d0eee11a51aa8",
"body": null,
"is_bot": false,
"headline": "Use a matrix to get an older dist for old releases",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2019-05-22T03:31:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2b4b27287ed407bb210b6f0539a37fb11d8ab1eb",
"body": null,
"is_bot": false,
"headline": "Debug Travis, it seems like older releases are not working",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2019-05-22T03:24:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9f024df70a3286786b542c56250e77e343c2e58c",
"body": null,
"is_bot": false,
"headline": "Update README.md",
"author_name": "penhs",
"author_login": "penhs",
"committed_at": "2019-05-22T00:26:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "05d3cebaa348d331362a81e194ff539b297e14e2",
"body": null,
"is_bot": false,
"headline": "Update README.md",
"author_name": "penhs",
"author_login": "penhs",
"committed_at": "2019-05-22T00:24:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2cb310469bdca7715229e5dcc697ad4478bb7c3a",
"body": "Remove tuple calls",
"is_bot": false,
"headline": "Merge pull request #215 from mochi/remove-tuple-calls",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2019-03-12T20:07:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "69d6df7fe02990ebbf8c836215d26a1e1939716a",
"body": "```erlang\nlists:foreach(\n fun (F) -> erl_tidy:file(F, [{backups, false}, keep_unused]) end,\n string:split(\n string:trim(\n os:cmd(\"git diff --name-only origin/master | grep \\\".erl$\\\"\")\n ),\n \"\\n\",\n all\n )\n).\n```",
"is_bot": false,
"headline": "Run erl_tidy on modified source files",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2019-03-12T03:49:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8892431f25516820400e76821b9c4d7d182e070d",
"body": null,
"is_bot": false,
"headline": "Remove compile(tuple_calls) from test/mochiweb_request_tests",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2019-03-12T01:41:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "105429811a23a77c5981f4ffc352649c906dc8a7",
"body": null,
"is_bot": false,
"headline": "Remove compile(tuple_calls) from test/mochiweb_tests",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2019-03-12T01:32:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2cae81351e74a5dacef62944597198ce4da8a981",
"body": null,
"is_bot": false,
"headline": "Remove compile(tuple_calls) from test/mochiweb_websocket_tests",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2019-03-12T01:32:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1092472db8b8184f4e1d32babf3f36a080d13cf6",
"body": null,
"is_bot": false,
"headline": "Remove compile(tuple_calls) from test/mochiweb_http_tests",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2019-03-12T01:26:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "58699cbe9a8be680ae9a956a07ea5a6a859e0038",
"body": null,
"is_bot": false,
"headline": "Remove compile(tuple_calls) from examples/keepalive",
"author_name": "Bob Ippolito",
"author_login": "etrepum",
"committed_at": "2019-03-11T22:57:58Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 14,
"commits_last_year": 10,
"latest_release_at": "2026-06-08T22:21:46Z",
"latest_release_tag": "v3.4.0",
"releases_from_tags": false,
"days_since_last_push": 43,
"active_weeks_last_year": 2,
"days_since_latest_release": 43,
"mean_days_between_releases": 194.4
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": false,
"health_percentage": 37,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"ecosystem": {
"packages": [
{
"name": "mochiweb",
"exists": true,
"license": "MIT",
"keywords": [],
"ecosystem": "hex",
"matches_repo": true,
"registry_url": "https://hex.pm/packages/mochiweb",
"is_deprecated": false,
"latest_version": "3.4.0",
"repository_url": "https://github.com/mochi/mochiweb",
"versions_count": 16,
"total_downloads": 33207173,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": 163321,
"first_published_at": "2015-03-25T22:03:54Z",
"latest_published_at": "2026-06-08T22:22:21.655550Z",
"latest_version_yanked": null,
"days_since_latest_publish": 43
}
]
},
"popularity": {
"forks": 462,
"stars": 1889,
"watchers": 118,
"fork_history": {
"days": [
{
"date": "2010-06-21",
"count": 1
},
{
"date": "2010-07-11",
"count": 2
},
{
"date": "2010-07-12",
"count": 1
},
{
"date": "2010-08-12",
"count": 1
},
{
"date": "2010-08-31",
"count": 1
},
{
"date": "2010-09-04",
"count": 3
},
{
"date": "2010-09-08",
"count": 1
},
{
"date": "2010-09-16",
"count": 1
},
{
"date": "2010-09-30",
"count": 1
},
{
"date": "2010-10-04",
"count": 1
},
{
"date": "2010-10-20",
"count": 1
},
{
"date": "2010-10-24",
"count": 1
},
{
"date": "2010-10-26",
"count": 1
},
{
"date": "2010-11-03",
"count": 1
},
{
"date": "2010-11-08",
"count": 1
},
{
"date": "2010-12-20",
"count": 1
},
{
"date": "2011-01-07",
"count": 2
},
{
"date": "2011-01-10",
"count": 1
},
{
"date": "2011-01-21",
"count": 1
},
{
"date": "2011-01-26",
"count": 1
},
{
"date": "2011-01-27",
"count": 1
},
{
"date": "2011-01-31",
"count": 1
},
{
"date": "2011-02-11",
"count": 1
},
{
"date": "2011-02-15",
"count": 1
},
{
"date": "2011-03-07",
"count": 1
},
{
"date": "2011-03-22",
"count": 1
},
{
"date": "2011-03-24",
"count": 2
},
{
"date": "2011-03-28",
"count": 1
},
{
"date": "2011-04-09",
"count": 1
},
{
"date": "2011-04-14",
"count": 1
},
{
"date": "2011-04-20",
"count": 1
},
{
"date": "2011-04-25",
"count": 1
},
{
"date": "2011-05-01",
"count": 1
},
{
"date": "2011-05-08",
"count": 1
},
{
"date": "2011-05-18",
"count": 1
},
{
"date": "2011-05-24",
"count": 1
},
{
"date": "2011-05-25",
"count": 1
},
{
"date": "2011-05-27",
"count": 1
},
{
"date": "2011-06-21",
"count": 1
},
{
"date": "2011-07-06",
"count": 1
},
{
"date": "2011-07-10",
"count": 1
},
{
"date": "2011-07-17",
"count": 1
},
{
"date": "2011-08-02",
"count": 1
},
{
"date": "2011-08-16",
"count": 1
},
{
"date": "2011-09-19",
"count": 1
},
{
"date": "2011-09-28",
"count": 1
},
{
"date": "2011-09-30",
"count": 1
},
{
"date": "2011-11-02",
"count": 1
},
{
"date": "2011-11-09",
"count": 1
},
{
"date": "2011-11-21",
"count": 1
},
{
"date": "2011-11-26",
"count": 1
},
{
"date": "2012-01-05",
"count": 1
},
{
"date": "2012-02-06",
"count": 1
},
{
"date": "2012-02-17",
"count": 1
},
{
"date": "2012-02-21",
"count": 1
},
{
"date": "2012-02-22",
"count": 2
},
{
"date": "2012-02-27",
"count": 1
},
{
"date": "2012-02-29",
"count": 1
},
{
"date": "2012-03-08",
"count": 2
},
{
"date": "2012-03-09",
"count": 1
},
{
"date": "2012-03-26",
"count": 1
},
{
"date": "2012-04-05",
"count": 1
},
{
"date": "2012-04-26",
"count": 1
},
{
"date": "2012-04-30",
"count": 1
},
{
"date": "2012-05-03",
"count": 1
},
{
"date": "2012-05-05",
"count": 1
},
{
"date": "2012-05-09",
"count": 1
},
{
"date": "2012-05-16",
"count": 1
},
{
"date": "2012-05-29",
"count": 1
},
{
"date": "2012-06-26",
"count": 1
},
{
"date": "2012-06-28",
"count": 1
},
{
"date": "2012-07-12",
"count": 1
},
{
"date": "2012-07-29",
"count": 1
},
{
"date": "2012-08-02",
"count": 1
},
{
"date": "2012-08-09",
"count": 1
},
{
"date": "2012-08-22",
"count": 1
},
{
"date": "2012-08-27",
"count": 1
},
{
"date": "2012-09-05",
"count": 1
},
{
"date": "2012-09-08",
"count": 1
},
{
"date": "2012-09-14",
"count": 1
},
{
"date": "2012-09-25",
"count": 1
},
{
"date": "2012-09-29",
"count": 1
},
{
"date": "2012-10-09",
"count": 1
},
{
"date": "2012-10-16",
"count": 1
},
{
"date": "2012-11-01",
"count": 1
},
{
"date": "2012-11-05",
"count": 1
},
{
"date": "2012-11-09",
"count": 1
},
{
"date": "2012-11-15",
"count": 1
},
{
"date": "2012-11-16",
"count": 2
},
{
"date": "2012-11-18",
"count": 1
},
{
"date": "2012-11-21",
"count": 1
},
{
"date": "2012-11-23",
"count": 1
},
{
"date": "2012-11-26",
"count": 1
},
{
"date": "2012-11-27",
"count": 1
},
{
"date": "2012-11-29",
"count": 1
},
{
"date": "2012-12-05",
"count": 1
},
{
"date": "2012-12-11",
"count": 1
},
{
"date": "2012-12-13",
"count": 1
},
{
"date": "2012-12-15",
"count": 1
},
{
"date": "2013-01-02",
"count": 1
},
{
"date": "2013-01-03",
"count": 1
},
{
"date": "2013-01-10",
"count": 1
},
{
"date": "2013-01-22",
"count": 2
},
{
"date": "2013-01-31",
"count": 1
},
{
"date": "2013-02-01",
"count": 2
},
{
"date": "2013-02-03",
"count": 1
},
{
"date": "2013-02-20",
"count": 1
},
{
"date": "2013-02-26",
"count": 1
},
{
"date": "2013-02-28",
"count": 1
},
{
"date": "2013-03-04",
"count": 2
},
{
"date": "2013-03-05",
"count": 2
},
{
"date": "2013-03-06",
"count": 1
},
{
"date": "2013-03-07",
"count": 1
},
{
"date": "2013-03-10",
"count": 1
},
{
"date": "2013-03-11",
"count": 1
},
{
"date": "2013-03-21",
"count": 1
},
{
"date": "2013-03-26",
"count": 1
},
{
"date": "2013-03-29",
"count": 1
},
{
"date": "2013-04-02",
"count": 1
},
{
"date": "2013-04-12",
"count": 1
},
{
"date": "2013-04-18",
"count": 1
},
{
"date": "2013-05-03",
"count": 1
},
{
"date": "2013-05-05",
"count": 1
},
{
"date": "2013-05-09",
"count": 1
},
{
"date": "2013-05-10",
"count": 1
},
{
"date": "2013-05-22",
"count": 1
},
{
"date": "2013-05-28",
"count": 1
},
{
"date": "2013-06-01",
"count": 1
},
{
"date": "2013-06-20",
"count": 1
},
{
"date": "2013-06-27",
"count": 1
},
{
"date": "2013-07-01",
"count": 1
},
{
"date": "2013-07-02",
"count": 1
},
{
"date": "2013-07-08",
"count": 1
},
{
"date": "2013-07-11",
"count": 1
},
{
"date": "2013-07-16",
"count": 2
},
{
"date": "2013-07-22",
"count": 1
},
{
"date": "2013-08-01",
"count": 1
},
{
"date": "2013-08-07",
"count": 1
},
{
"date": "2013-08-13",
"count": 1
},
{
"date": "2013-08-20",
"count": 1
},
{
"date": "2013-08-26",
"count": 1
},
{
"date": "2013-08-31",
"count": 1
},
{
"date": "2013-09-15",
"count": 1
},
{
"date": "2013-09-26",
"count": 1
},
{
"date": "2013-09-27",
"count": 1
},
{
"date": "2013-10-22",
"count": 1
},
{
"date": "2013-11-01",
"count": 1
},
{
"date": "2013-11-19",
"count": 1
},
{
"date": "2013-12-26",
"count": 2
},
{
"date": "2014-01-02",
"count": 1
},
{
"date": "2014-01-03",
"count": 1
},
{
"date": "2014-01-07",
"count": 1
},
{
"date": "2014-01-13",
"count": 1
},
{
"date": "2014-02-06",
"count": 2
},
{
"date": "2014-02-09",
"count": 1
},
{
"date": "2014-02-11",
"count": 1
},
{
"date": "2014-02-13",
"count": 1
},
{
"date": "2014-02-18",
"count": 2
},
{
"date": "2014-03-21",
"count": 1
},
{
"date": "2014-03-23",
"count": 1
},
{
"date": "2014-03-24",
"count": 1
},
{
"date": "2014-04-02",
"count": 1
},
{
"date": "2014-04-03",
"count": 1
},
{
"date": "2014-04-06",
"count": 1
},
{
"date": "2014-04-08",
"count": 1
},
{
"date": "2014-04-15",
"count": 1
},
{
"date": "2014-05-06",
"count": 1
},
{
"date": "2014-05-13",
"count": 1
},
{
"date": "2014-05-22",
"count": 1
},
{
"date": "2014-05-24",
"count": 1
},
{
"date": "2014-06-03",
"count": 1
},
{
"date": "2014-06-06",
"count": 1
},
{
"date": "2014-06-12",
"count": 2
},
{
"date": "2014-06-13",
"count": 1
},
{
"date": "2014-06-21",
"count": 1
},
{
"date": "2014-08-07",
"count": 1
},
{
"date": "2014-08-25",
"count": 1
},
{
"date": "2014-08-30",
"count": 1
},
{
"date": "2014-09-03",
"count": 1
},
{
"date": "2014-09-15",
"count": 1
},
{
"date": "2014-09-24",
"count": 1
},
{
"date": "2014-09-29",
"count": 1
},
{
"date": "2014-10-15",
"count": 1
},
{
"date": "2014-10-27",
"count": 2
},
{
"date": "2014-11-10",
"count": 1
},
{
"date": "2014-11-13",
"count": 1
},
{
"date": "2014-11-27",
"count": 1
},
{
"date": "2014-12-01",
"count": 2
},
{
"date": "2014-12-04",
"count": 1
},
{
"date": "2014-12-18",
"count": 1
},
{
"date": "2014-12-23",
"count": 1
},
{
"date": "2014-12-27",
"count": 1
},
{
"date": "2014-12-28",
"count": 1
},
{
"date": "2015-01-07",
"count": 1
},
{
"date": "2015-01-18",
"count": 1
},
{
"date": "2015-01-22",
"count": 1
},
{
"date": "2015-01-26",
"count": 2
},
{
"date": "2015-02-10",
"count": 1
},
{
"date": "2015-02-13",
"count": 1
},
{
"date": "2015-02-23",
"count": 1
},
{
"date": "2015-02-28",
"count": 1
},
{
"date": "2015-03-03",
"count": 1
},
{
"date": "2015-03-05",
"count": 1
},
{
"date": "2015-03-11",
"count": 1
},
{
"date": "2015-03-16",
"count": 1
},
{
"date": "2015-03-29",
"count": 1
},
{
"date": "2015-04-04",
"count": 1
},
{
"date": "2015-04-08",
"count": 1
},
{
"date": "2015-04-14",
"count": 1
},
{
"date": "2015-04-17",
"count": 1
},
{
"date": "2015-05-01",
"count": 2
},
{
"date": "2015-05-06",
"count": 1
},
{
"date": "2015-05-11",
"count": 1
},
{
"date": "2015-05-12",
"count": 1
},
{
"date": "2015-05-18",
"count": 1
},
{
"date": "2015-06-11",
"count": 1
},
{
"date": "2015-06-18",
"count": 1
},
{
"date": "2015-06-21",
"count": 1
},
{
"date": "2015-06-23",
"count": 1
},
{
"date": "2015-07-03",
"count": 1
},
{
"date": "2015-07-09",
"count": 1
},
{
"date": "2015-07-23",
"count": 1
},
{
"date": "2015-07-27",
"count": 1
},
{
"date": "2015-07-28",
"count": 1
},
{
"date": "2015-07-30",
"count": 1
},
{
"date": "2015-08-04",
"count": 1
},
{
"date": "2015-08-23",
"count": 1
},
{
"date": "2015-08-30",
"count": 1
},
{
"date": "2015-09-02",
"count": 1
},
{
"date": "2015-09-05",
"count": 1
},
{
"date": "2015-09-13",
"count": 1
},
{
"date": "2015-09-16",
"count": 1
},
{
"date": "2015-09-20",
"count": 1
},
{
"date": "2015-10-22",
"count": 2
},
{
"date": "2015-10-31",
"count": 1
},
{
"date": "2015-11-05",
"count": 1
},
{
"date": "2015-11-13",
"count": 1
},
{
"date": "2015-11-16",
"count": 1
},
{
"date": "2015-12-07",
"count": 1
},
{
"date": "2015-12-17",
"count": 1
},
{
"date": "2015-12-18",
"count": 1
},
{
"date": "2016-01-03",
"count": 1
},
{
"date": "2016-01-09",
"count": 1
},
{
"date": "2016-01-10",
"count": 1
},
{
"date": "2016-01-14",
"count": 1
},
{
"date": "2016-01-27",
"count": 1
},
{
"date": "2016-02-05",
"count": 1
},
{
"date": "2016-02-25",
"count": 1
},
{
"date": "2016-03-03",
"count": 1
},
{
"date": "2016-03-08",
"count": 1
},
{
"date": "2016-04-09",
"count": 1
},
{
"date": "2016-04-12",
"count": 1
},
{
"date": "2016-05-10",
"count": 1
},
{
"date": "2016-05-19",
"count": 1
},
{
"date": "2016-06-10",
"count": 1
},
{
"date": "2016-06-17",
"count": 1
},
{
"date": "2016-06-18",
"count": 1
},
{
"date": "2016-06-23",
"count": 2
},
{
"date": "2016-07-07",
"count": 1
},
{
"date": "2016-07-11",
"count": 1
},
{
"date": "2016-07-12",
"count": 1
},
{
"date": "2016-07-18",
"count": 1
},
{
"date": "2016-07-19",
"count": 1
},
{
"date": "2016-07-24",
"count": 1
},
{
"date": "2016-08-08",
"count": 1
},
{
"date": "2016-09-07",
"count": 1
},
{
"date": "2016-09-09",
"count": 1
},
{
"date": "2016-09-14",
"count": 1
},
{
"date": "2016-09-23",
"count": 1
},
{
"date": "2016-10-19",
"count": 1
},
{
"date": "2016-10-23",
"count": 1
},
{
"date": "2016-10-31",
"count": 1
},
{
"date": "2016-11-24",
"count": 1
},
{
"date": "2016-11-26",
"count": 1
},
{
"date": "2016-12-04",
"count": 1
},
{
"date": "2016-12-13",
"count": 1
},
{
"date": "2016-12-17",
"count": 1
},
{
"date": "2016-12-19",
"count": 1
},
{
"date": "2017-01-08",
"count": 1
},
{
"date": "2017-01-12",
"count": 2
},
{
"date": "2017-01-19",
"count": 1
},
{
"date": "2017-02-05",
"count": 1
},
{
"date": "2017-02-06",
"count": 1
},
{
"date": "2017-02-07",
"count": 1
},
{
"date": "2017-02-17",
"count": 1
},
{
"date": "2017-03-08",
"count": 1
},
{
"date": "2017-03-15",
"count": 1
},
{
"date": "2017-03-25",
"count": 1
},
{
"date": "2017-03-29",
"count": 1
},
{
"date": "2017-04-01",
"count": 1
},
{
"date": "2017-05-04",
"count": 1
},
{
"date": "2017-06-01",
"count": 1
},
{
"date": "2017-06-09",
"count": 1
},
{
"date": "2017-06-19",
"count": 1
},
{
"date": "2017-06-22",
"count": 1
},
{
"date": "2017-06-29",
"count": 1
},
{
"date": "2017-06-30",
"count": 1
},
{
"date": "2017-07-16",
"count": 1
},
{
"date": "2017-07-17",
"count": 1
},
{
"date": "2017-08-08",
"count": 1
},
{
"date": "2017-08-14",
"count": 1
},
{
"date": "2017-08-16",
"count": 2
},
{
"date": "2017-09-01",
"count": 1
},
{
"date": "2017-10-23",
"count": 1
},
{
"date": "2017-10-27",
"count": 1
},
{
"date": "2017-11-06",
"count": 1
},
{
"date": "2017-11-20",
"count": 1
},
{
"date": "2017-11-29",
"count": 2
},
{
"date": "2018-01-02",
"count": 1
},
{
"date": "2018-01-17",
"count": 1
},
{
"date": "2018-01-30",
"count": 1
},
{
"date": "2018-01-31",
"count": 1
},
{
"date": "2018-02-28",
"count": 1
},
{
"date": "2018-03-29",
"count": 1
},
{
"date": "2018-04-02",
"count": 1
},
{
"date": "2018-06-14",
"count": 1
},
{
"date": "2018-07-10",
"count": 1
},
{
"date": "2018-07-11",
"count": 1
},
{
"date": "2018-07-23",
"count": 1
},
{
"date": "2018-07-27",
"count": 1
},
{
"date": "2018-07-29",
"count": 1
},
{
"date": "2018-08-19",
"count": 1
},
{
"date": "2018-09-25",
"count": 1
},
{
"date": "2018-09-26",
"count": 1
},
{
"date": "2018-11-01",
"count": 1
},
{
"date": "2018-11-12",
"count": 1
},
{
"date": "2018-11-27",
"count": 1
},
{
"date": "2019-01-07",
"count": 1
},
{
"date": "2019-01-14",
"count": 1
},
{
"date": "2019-02-07",
"count": 1
},
{
"date": "2019-02-24",
"count": 1
},
{
"date": "2019-03-13",
"count": 1
},
{
"date": "2019-03-25",
"count": 1
},
{
"date": "2019-04-25",
"count": 1
},
{
"date": "2019-05-14",
"count": 1
},
{
"date": "2019-05-17",
"count": 1
},
{
"date": "2019-05-19",
"count": 1
},
{
"date": "2019-05-31",
"count": 1
},
{
"date": "2019-06-03",
"count": 1
},
{
"date": "2019-06-05",
"count": 1
},
{
"date": "2019-07-19",
"count": 1
},
{
"date": "2019-08-27",
"count": 1
},
{
"date": "2019-08-28",
"count": 1
},
{
"date": "2019-09-03",
"count": 1
},
{
"date": "2019-09-27",
"count": 1
},
{
"date": "2019-10-03",
"count": 1
},
{
"date": "2019-11-07",
"count": 1
},
{
"date": "2019-12-02",
"count": 1
},
{
"date": "2019-12-07",
"count": 1
},
{
"date": "2019-12-27",
"count": 1
},
{
"date": "2020-01-30",
"count": 1
},
{
"date": "2020-02-20",
"count": 1
},
{
"date": "2020-03-24",
"count": 1
},
{
"date": "2020-04-07",
"count": 1
},
{
"date": "2020-04-14",
"count": 1
},
{
"date": "2020-04-26",
"count": 1
},
{
"date": "2020-06-12",
"count": 1
},
{
"date": "2020-06-15",
"count": 1
},
{
"date": "2020-06-28",
"count": 1
},
{
"date": "2020-07-03",
"count": 1
},
{
"date": "2020-08-12",
"count": 1
},
{
"date": "2020-09-07",
"count": 1
},
{
"date": "2020-11-21",
"count": 1
},
{
"date": "2020-11-23",
"count": 1
},
{
"date": "2020-12-08",
"count": 1
},
{
"date": "2021-01-18",
"count": 1
},
{
"date": "2021-02-01",
"count": 1
},
{
"date": "2021-05-24",
"count": 1
},
{
"date": "2021-05-25",
"count": 1
},
{
"date": "2021-05-29",
"count": 1
},
{
"date": "2021-07-01",
"count": 1
},
{
"date": "2021-07-24",
"count": 1
},
{
"date": "2021-09-13",
"count": 1
},
{
"date": "2021-10-23",
"count": 1
},
{
"date": "2021-10-24",
"count": 1
},
{
"date": "2021-11-02",
"count": 1
},
{
"date": "2022-03-10",
"count": 1
},
{
"date": "2022-04-20",
"count": 1
},
{
"date": "2022-04-22",
"count": 1
},
{
"date": "2022-06-16",
"count": 1
},
{
"date": "2022-06-22",
"count": 1
},
{
"date": "2022-08-11",
"count": 1
},
{
"date": "2022-09-15",
"count": 1
},
{
"date": "2022-09-21",
"count": 1
},
{
"date": "2023-01-01",
"count": 1
},
{
"date": "2023-01-11",
"count": 1
},
{
"date": "2023-02-12",
"count": 1
},
{
"date": "2023-03-14",
"count": 1
},
{
"date": "2023-04-28",
"count": 1
},
{
"date": "2023-05-12",
"count": 1
},
{
"date": "2023-09-22",
"count": 1
},
{
"date": "2024-01-18",
"count": 1
},
{
"date": "2024-02-14",
"count": 1
},
{
"date": "2024-03-21",
"count": 1
},
{
"date": "2024-12-04",
"count": 1
},
{
"date": "2025-07-01",
"count": 1
}
],
"complete": true,
"collected": 422,
"total_forks": 462
},
"star_history": {
"days": [
{
"date": "2014-04-24",
"count": 1
},
{
"date": "2014-05-02",
"count": 1
},
{
"date": "2014-05-08",
"count": 2
},
{
"date": "2014-05-11",
"count": 3
},
{
"date": "2014-05-12",
"count": 1
},
{
"date": "2014-05-17",
"count": 1
},
{
"date": "2014-05-19",
"count": 1
},
{
"date": "2014-05-20",
"count": 2
},
{
"date": "2014-05-22",
"count": 1
},
{
"date": "2014-05-25",
"count": 1
},
{
"date": "2014-06-01",
"count": 1
},
{
"date": "2014-06-03",
"count": 1
},
{
"date": "2014-06-08",
"count": 1
},
{
"date": "2014-06-09",
"count": 1
},
{
"date": "2014-06-11",
"count": 2
},
{
"date": "2014-06-13",
"count": 3
},
{
"date": "2014-06-15",
"count": 1
},
{
"date": "2014-06-16",
"count": 1
},
{
"date": "2014-06-17",
"count": 1
},
{
"date": "2014-06-23",
"count": 2
},
{
"date": "2014-06-25",
"count": 1
},
{
"date": "2014-07-01",
"count": 1
},
{
"date": "2014-07-05",
"count": 1
},
{
"date": "2014-07-08",
"count": 1
},
{
"date": "2014-07-11",
"count": 1
},
{
"date": "2014-07-12",
"count": 1
},
{
"date": "2014-07-14",
"count": 1
},
{
"date": "2014-07-24",
"count": 2
},
{
"date": "2014-07-26",
"count": 1
},
{
"date": "2014-07-28",
"count": 2
},
{
"date": "2014-07-29",
"count": 1
},
{
"date": "2014-08-01",
"count": 1
},
{
"date": "2014-08-05",
"count": 1
},
{
"date": "2014-08-06",
"count": 2
},
{
"date": "2014-08-07",
"count": 1
},
{
"date": "2014-08-08",
"count": 1
},
{
"date": "2014-08-10",
"count": 1
},
{
"date": "2014-08-11",
"count": 1
},
{
"date": "2014-08-14",
"count": 1
},
{
"date": "2014-08-17",
"count": 1
},
{
"date": "2014-08-18",
"count": 1
},
{
"date": "2014-08-19",
"count": 1
},
{
"date": "2014-08-20",
"count": 3
},
{
"date": "2014-08-26",
"count": 1
},
{
"date": "2014-08-28",
"count": 1
},
{
"date": "2014-09-03",
"count": 1
},
{
"date": "2014-09-05",
"count": 1
},
{
"date": "2014-09-08",
"count": 1
},
{
"date": "2014-09-09",
"count": 1
},
{
"date": "2014-09-10",
"count": 3
},
{
"date": "2014-09-11",
"count": 2
},
{
"date": "2014-09-12",
"count": 1
},
{
"date": "2014-09-13",
"count": 1
},
{
"date": "2014-09-16",
"count": 1
},
{
"date": "2014-09-22",
"count": 1
},
{
"date": "2014-09-23",
"count": 1
},
{
"date": "2014-09-25",
"count": 1
},
{
"date": "2014-09-26",
"count": 1
},
{
"date": "2014-09-28",
"count": 2
},
{
"date": "2014-09-29",
"count": 1
},
{
"date": "2014-09-30",
"count": 2
},
{
"date": "2014-10-14",
"count": 1
},
{
"date": "2014-10-17",
"count": 1
},
{
"date": "2014-10-20",
"count": 2
},
{
"date": "2014-10-21",
"count": 1
},
{
"date": "2014-10-23",
"count": 1
},
{
"date": "2014-10-26",
"count": 2
},
{
"date": "2014-10-27",
"count": 1
},
{
"date": "2014-10-29",
"count": 1
},
{
"date": "2014-10-31",
"count": 1
},
{
"date": "2014-11-03",
"count": 1
},
{
"date": "2014-11-04",
"count": 1
},
{
"date": "2014-11-06",
"count": 1
},
{
"date": "2014-11-07",
"count": 1
},
{
"date": "2014-11-09",
"count": 1
},
{
"date": "2014-11-11",
"count": 2
},
{
"date": "2014-11-12",
"count": 1
},
{
"date": "2014-11-17",
"count": 1
},
{
"date": "2014-11-18",
"count": 2
},
{
"date": "2014-11-19",
"count": 1
},
{
"date": "2014-11-20",
"count": 1
},
{
"date": "2014-11-21",
"count": 1
},
{
"date": "2014-11-22",
"count": 2
},
{
"date": "2014-11-23",
"count": 2
},
{
"date": "2014-11-24",
"count": 2
},
{
"date": "2014-11-26",
"count": 1
},
{
"date": "2014-12-01",
"count": 1
},
{
"date": "2014-12-03",
"count": 1
},
{
"date": "2014-12-04",
"count": 1
},
{
"date": "2014-12-07",
"count": 2
},
{
"date": "2014-12-08",
"count": 1
},
{
"date": "2014-12-10",
"count": 1
},
{
"date": "2014-12-11",
"count": 1
},
{
"date": "2014-12-12",
"count": 1
},
{
"date": "2014-12-15",
"count": 1
},
{
"date": "2014-12-16",
"count": 1
},
{
"date": "2014-12-18",
"count": 1
},
{
"date": "2014-12-20",
"count": 1
},
{
"date": "2014-12-21",
"count": 1
},
{
"date": "2014-12-22",
"count": 1
},
{
"date": "2014-12-27",
"count": 1
},
{
"date": "2014-12-30",
"count": 1
},
{
"date": "2015-01-05",
"count": 1
},
{
"date": "2015-01-09",
"count": 1
},
{
"date": "2015-01-11",
"count": 1
},
{
"date": "2015-01-12",
"count": 1
},
{
"date": "2015-01-15",
"count": 2
},
{
"date": "2015-01-18",
"count": 1
},
{
"date": "2015-01-19",
"count": 1
},
{
"date": "2015-01-20",
"count": 1
},
{
"date": "2015-01-21",
"count": 1
},
{
"date": "2015-01-22",
"count": 1
},
{
"date": "2015-01-25",
"count": 2
},
{
"date": "2015-01-26",
"count": 1
},
{
"date": "2015-01-29",
"count": 1
},
{
"date": "2015-02-02",
"count": 1
},
{
"date": "2015-02-11",
"count": 1
},
{
"date": "2015-02-13",
"count": 1
},
{
"date": "2015-02-16",
"count": 1
},
{
"date": "2015-02-20",
"count": 1
},
{
"date": "2015-02-21",
"count": 1
},
{
"date": "2015-02-22",
"count": 1
},
{
"date": "2015-02-25",
"count": 1
},
{
"date": "2015-02-26",
"count": 1
},
{
"date": "2015-02-27",
"count": 2
},
{
"date": "2015-03-04",
"count": 1
},
{
"date": "2015-03-05",
"count": 1
},
{
"date": "2015-03-09",
"count": 2
},
{
"date": "2015-03-10",
"count": 1
},
{
"date": "2015-03-11",
"count": 1
},
{
"date": "2015-03-16",
"count": 1
},
{
"date": "2015-03-22",
"count": 2
},
{
"date": "2015-03-24",
"count": 1
},
{
"date": "2015-03-30",
"count": 1
},
{
"date": "2015-03-31",
"count": 1
},
{
"date": "2015-04-01",
"count": 1
},
{
"date": "2015-04-03",
"count": 2
},
{
"date": "2015-04-06",
"count": 1
},
{
"date": "2015-04-10",
"count": 1
},
{
"date": "2015-04-11",
"count": 2
},
{
"date": "2015-04-13",
"count": 1
},
{
"date": "2015-04-14",
"count": 1
},
{
"date": "2015-04-17",
"count": 1
},
{
"date": "2015-04-20",
"count": 1
},
{
"date": "2015-04-21",
"count": 1
},
{
"date": "2015-04-28",
"count": 2
},
{
"date": "2015-04-29",
"count": 1
},
{
"date": "2015-05-02",
"count": 1
},
{
"date": "2015-05-04",
"count": 1
},
{
"date": "2015-05-05",
"count": 2
},
{
"date": "2015-05-21",
"count": 3
},
{
"date": "2015-05-22",
"count": 2
},
{
"date": "2015-05-23",
"count": 1
},
{
"date": "2015-06-01",
"count": 2
},
{
"date": "2015-06-04",
"count": 1
},
{
"date": "2015-06-09",
"count": 2
},
{
"date": "2015-06-10",
"count": 2
},
{
"date": "2015-06-18",
"count": 2
},
{
"date": "2015-06-21",
"count": 1
},
{
"date": "2015-06-23",
"count": 1
},
{
"date": "2015-06-29",
"count": 1
},
{
"date": "2015-06-30",
"count": 2
},
{
"date": "2015-07-06",
"count": 1
},
{
"date": "2015-07-08",
"count": 1
},
{
"date": "2015-07-09",
"count": 2
},
{
"date": "2015-07-10",
"count": 2
},
{
"date": "2015-07-13",
"count": 1
},
{
"date": "2015-07-14",
"count": 1
},
{
"date": "2015-07-17",
"count": 3
},
{
"date": "2015-07-22",
"count": 2
},
{
"date": "2015-07-23",
"count": 2
},
{
"date": "2015-07-24",
"count": 1
},
{
"date": "2015-08-03",
"count": 2
},
{
"date": "2015-08-06",
"count": 1
},
{
"date": "2015-08-20",
"count": 2
},
{
"date": "2015-08-21",
"count": 1
},
{
"date": "2015-08-29",
"count": 1
},
{
"date": "2015-08-30",
"count": 1
},
{
"date": "2015-09-01",
"count": 1
},
{
"date": "2015-09-04",
"count": 1
},
{
"date": "2015-09-08",
"count": 1
},
{
"date": "2015-09-15",
"count": 1
},
{
"date": "2015-09-16",
"count": 1
},
{
"date": "2015-09-18",
"count": 4
},
{
"date": "2015-09-27",
"count": 1
},
{
"date": "2015-10-02",
"count": 1
},
{
"date": "2015-10-03",
"count": 1
},
{
"date": "2015-10-06",
"count": 1
},
{
"date": "2015-10-07",
"count": 2
},
{
"date": "2015-10-09",
"count": 1
},
{
"date": "2015-10-10",
"count": 1
},
{
"date": "2015-10-16",
"count": 1
},
{
"date": "2015-10-17",
"count": 1
},
{
"date": "2015-10-18",
"count": 1
},
{
"date": "2015-10-20",
"count": 1
},
{
"date": "2015-10-21",
"count": 1
},
{
"date": "2015-10-22",
"count": 2
},
{
"date": "2015-10-25",
"count": 1
},
{
"date": "2015-10-27",
"count": 1
},
{
"date": "2015-10-28",
"count": 2
},
{
"date": "2015-10-29",
"count": 1
},
{
"date": "2015-10-31",
"count": 1
},
{
"date": "2015-11-04",
"count": 1
},
{
"date": "2015-11-06",
"count": 1
},
{
"date": "2015-11-09",
"count": 2
},
{
"date": "2015-11-14",
"count": 1
},
{
"date": "2015-11-16",
"count": 2
},
{
"date": "2015-11-17",
"count": 1
},
{
"date": "2015-11-18",
"count": 2
},
{
"date": "2015-11-21",
"count": 1
},
{
"date": "2015-11-27",
"count": 1
},
{
"date": "2015-11-30",
"count": 2
},
{
"date": "2015-12-03",
"count": 1
},
{
"date": "2015-12-07",
"count": 1
},
{
"date": "2015-12-09",
"count": 2
},
{
"date": "2015-12-10",
"count": 1
},
{
"date": "2015-12-16",
"count": 1
},
{
"date": "2015-12-19",
"count": 1
},
{
"date": "2015-12-29",
"count": 1
},
{
"date": "2015-12-30",
"count": 2
},
{
"date": "2016-01-01",
"count": 2
},
{
"date": "2016-01-07",
"count": 1
},
{
"date": "2016-01-09",
"count": 1
},
{
"date": "2016-01-15",
"count": 1
},
{
"date": "2016-01-22",
"count": 1
},
{
"date": "2016-01-26",
"count": 1
},
{
"date": "2016-01-30",
"count": 1
},
{
"date": "2016-02-02",
"count": 1
},
{
"date": "2016-02-03",
"count": 1
},
{
"date": "2016-02-04",
"count": 1
},
{
"date": "2016-02-09",
"count": 1
},
{
"date": "2016-02-14",
"count": 1
},
{
"date": "2016-02-17",
"count": 3
},
{
"date": "2016-02-24",
"count": 1
},
{
"date": "2016-02-25",
"count": 1
},
{
"date": "2016-02-26",
"count": 2
},
{
"date": "2016-02-28",
"count": 1
},
{
"date": "2016-03-12",
"count": 1
},
{
"date": "2016-03-17",
"count": 1
},
{
"date": "2016-03-18",
"count": 1
},
{
"date": "2016-03-19",
"count": 1
},
{
"date": "2016-03-22",
"count": 1
},
{
"date": "2016-03-24",
"count": 1
},
{
"date": "2016-03-25",
"count": 1
},
{
"date": "2016-03-28",
"count": 1
},
{
"date": "2016-03-30",
"count": 1
},
{
"date": "2016-03-31",
"count": 1
},
{
"date": "2016-04-02",
"count": 1
},
{
"date": "2016-04-04",
"count": 1
},
{
"date": "2016-04-08",
"count": 1
},
{
"date": "2016-04-12",
"count": 1
},
{
"date": "2016-04-17",
"count": 1
},
{
"date": "2016-04-20",
"count": 1
},
{
"date": "2016-04-23",
"count": 2
},
{
"date": "2016-04-27",
"count": 1
},
{
"date": "2016-04-29",
"count": 1
},
{
"date": "2016-05-07",
"count": 1
},
{
"date": "2016-05-12",
"count": 1
},
{
"date": "2016-05-14",
"count": 1
},
{
"date": "2016-05-18",
"count": 1
},
{
"date": "2016-05-25",
"count": 1
},
{
"date": "2016-05-30",
"count": 1
},
{
"date": "2016-06-01",
"count": 1
},
{
"date": "2016-06-03",
"count": 1
},
{
"date": "2016-06-06",
"count": 1
},
{
"date": "2016-06-07",
"count": 1
},
{
"date": "2016-06-12",
"count": 1
},
{
"date": "2016-06-14",
"count": 1
},
{
"date": "2016-06-19",
"count": 1
},
{
"date": "2016-06-22",
"count": 1
},
{
"date": "2016-06-23",
"count": 1
},
{
"date": "2016-06-24",
"count": 1
},
{
"date": "2016-06-25",
"count": 1
},
{
"date": "2016-06-27",
"count": 1
},
{
"date": "2016-06-29",
"count": 1
},
{
"date": "2016-07-05",
"count": 1
},
{
"date": "2016-07-06",
"count": 1
},
{
"date": "2016-07-11",
"count": 2
},
{
"date": "2016-07-12",
"count": 1
},
{
"date": "2016-07-14",
"count": 1
},
{
"date": "2016-07-19",
"count": 2
},
{
"date": "2016-07-20",
"count": 1
},
{
"date": "2016-07-24",
"count": 1
},
{
"date": "2016-07-25",
"count": 1
},
{
"date": "2016-07-27",
"count": 1
},
{
"date": "2016-08-01",
"count": 2
},
{
"date": "2016-08-03",
"count": 1
},
{
"date": "2016-08-06",
"count": 1
},
{
"date": "2016-08-08",
"count": 1
},
{
"date": "2016-08-10",
"count": 1
},
{
"date": "2016-08-12",
"count": 1
},
{
"date": "2016-08-17",
"count": 1
},
{
"date": "2016-08-19",
"count": 1
},
{
"date": "2016-08-21",
"count": 1
},
{
"date": "2016-08-22",
"count": 1
},
{
"date": "2016-08-23",
"count": 1
},
{
"date": "2016-08-25",
"count": 1
},
{
"date": "2016-09-01",
"count": 1
},
{
"date": "2016-09-05",
"count": 1
},
{
"date": "2016-09-07",
"count": 1
},
{
"date": "2016-09-09",
"count": 1
},
{
"date": "2016-09-14",
"count": 1
},
{
"date": "2016-09-19",
"count": 1
},
{
"date": "2016-09-21",
"count": 1
},
{
"date": "2016-09-28",
"count": 1
},
{
"date": "2016-10-01",
"count": 1
},
{
"date": "2016-10-05",
"count": 1
},
{
"date": "2016-10-15",
"count": 1
},
{
"date": "2016-10-18",
"count": 2
},
{
"date": "2016-10-21",
"count": 1
},
{
"date": "2016-10-24",
"count": 1
},
{
"date": "2016-10-27",
"count": 2
},
{
"date": "2016-10-29",
"count": 1
},
{
"date": "2016-10-31",
"count": 2
},
{
"date": "2016-11-01",
"count": 1
},
{
"date": "2016-11-05",
"count": 1
},
{
"date": "2016-11-06",
"count": 1
},
{
"date": "2016-11-12",
"count": 1
},
{
"date": "2016-11-18",
"count": 1
},
{
"date": "2016-11-23",
"count": 2
},
{
"date": "2016-11-24",
"count": 1
},
{
"date": "2016-11-26",
"count": 1
},
{
"date": "2016-11-29",
"count": 1
},
{
"date": "2016-12-01",
"count": 1
},
{
"date": "2016-12-03",
"count": 2
},
{
"date": "2016-12-05",
"count": 1
},
{
"date": "2016-12-06",
"count": 2
},
{
"date": "2016-12-07",
"count": 1
},
{
"date": "2016-12-08",
"count": 1
},
{
"date": "2016-12-10",
"count": 1
},
{
"date": "2016-12-27",
"count": 1
},
{
"date": "2016-12-29",
"count": 1
},
{
"date": "2017-01-02",
"count": 1
},
{
"date": "2017-01-05",
"count": 1
},
{
"date": "2017-01-06",
"count": 1
},
{
"date": "2017-01-08",
"count": 1
},
{
"date": "2017-01-13",
"count": 1
},
{
"date": "2017-01-14",
"count": 1
},
{
"date": "2017-01-17",
"count": 1
},
{
"date": "2017-01-19",
"count": 1
},
{
"date": "2017-01-22",
"count": 3
},
{
"date": "2017-01-24",
"count": 1
},
{
"date": "2017-02-01",
"count": 1
},
{
"date": "2017-02-04",
"count": 1
},
{
"date": "2017-02-06",
"count": 1
},
{
"date": "2017-02-07",
"count": 1
},
{
"date": "2017-02-13",
"count": 2
},
{
"date": "2017-02-14",
"count": 1
},
{
"date": "2017-02-15",
"count": 1
},
{
"date": "2017-02-20",
"count": 1
},
{
"date": "2017-02-21",
"count": 2
},
{
"date": "2017-02-22",
"count": 1
},
{
"date": "2017-03-02",
"count": 1
},
{
"date": "2017-03-13",
"count": 1
},
{
"date": "2017-03-15",
"count": 1
},
{
"date": "2017-03-17",
"count": 1
},
{
"date": "2017-03-18",
"count": 1
},
{
"date": "2017-03-21",
"count": 1
},
{
"date": "2017-03-24",
"count": 1
},
{
"date": "2017-03-28",
"count": 1
},
{
"date": "2017-03-29",
"count": 1
},
{
"date": "2017-03-30",
"count": 1
},
{
"date": "2017-04-02",
"count": 1
},
{
"date": "2017-04-04",
"count": 1
},
{
"date": "2017-04-08",
"count": 1
},
{
"date": "2017-04-13",
"count": 3
},
{
"date": "2017-04-15",
"count": 1
},
{
"date": "2017-04-16",
"count": 1
},
{
"date": "2017-04-20",
"count": 1
},
{
"date": "2017-04-28",
"count": 1
},
{
"date": "2017-05-04",
"count": 1
},
{
"date": "2017-05-21",
"count": 1
},
{
"date": "2017-05-22",
"count": 2
},
{
"date": "2017-05-23",
"count": 1
},
{
"date": "2017-05-24",
"count": 1
},
{
"date": "2017-05-29",
"count": 1
},
{
"date": "2017-05-30",
"count": 1
},
{
"date": "2017-06-01",
"count": 1
},
{
"date": "2017-06-02",
"count": 1
},
{
"date": "2017-06-21",
"count": 1
},
{
"date": "2017-06-23",
"count": 1
},
{
"date": "2017-06-28",
"count": 1
},
{
"date": "2017-06-29",
"count": 1
},
{
"date": "2017-07-06",
"count": 1
},
{
"date": "2017-07-11",
"count": 5
},
{
"date": "2017-07-12",
"count": 14
},
{
"date": "2017-07-13",
"count": 4
},
{
"date": "2017-07-14",
"count": 5
},
{
"date": "2017-07-15",
"count": 2
},
{
"date": "2017-07-16",
"count": 2
},
{
"date": "2017-07-21",
"count": 2
},
{
"date": "2017-07-26",
"count": 1
},
{
"date": "2017-07-29",
"count": 1
},
{
"date": "2017-07-30",
"count": 1
},
{
"date": "2017-07-31",
"count": 1
},
{
"date": "2017-08-10",
"count": 1
},
{
"date": "2017-08-11",
"count": 1
},
{
"date": "2017-08-12",
"count": 1
},
{
"date": "2017-08-15",
"count": 1
},
{
"date": "2017-08-16",
"count": 3
},
{
"date": "2017-08-24",
"count": 2
},
{
"date": "2017-08-28",
"count": 1
},
{
"date": "2017-09-01",
"count": 1
},
{
"date": "2017-09-05",
"count": 1
},
{
"date": "2017-09-11",
"count": 1
},
{
"date": "2017-09-12",
"count": 3
},
{
"date": "2017-09-15",
"count": 1
},
{
"date": "2017-09-18",
"count": 2
},
{
"date": "2017-09-22",
"count": 1
},
{
"date": "2017-09-26",
"count": 1
},
{
"date": "2017-10-05",
"count": 2
},
{
"date": "2017-10-06",
"count": 2
},
{
"date": "2017-10-07",
"count": 1
},
{
"date": "2017-10-11",
"count": 1
},
{
"date": "2017-10-12",
"count": 1
},
{
"date": "2017-10-14",
"count": 1
},
{
"date": "2017-10-18",
"count": 1
},
{
"date": "2017-10-21",
"count": 1
},
{
"date": "2017-10-24",
"count": 1
},
{
"date": "2017-11-01",
"count": 1
},
{
"date": "2017-11-06",
"count": 1
},
{
"date": "2017-11-07",
"count": 1
},
{
"date": "2017-11-11",
"count": 1
},
{
"date": "2017-11-14",
"count": 2
},
{
"date": "2017-11-15",
"count": 2
},
{
"date": "2017-11-16",
"count": 3
},
{
"date": "2017-11-20",
"count": 1
},
{
"date": "2017-11-22",
"count": 1
},
{
"date": "2017-11-23",
"count": 1
},
{
"date": "2017-11-28",
"count": 1
},
{
"date": "2017-11-29",
"count": 1
},
{
"date": "2017-12-01",
"count": 1
},
{
"date": "2017-12-06",
"count": 1
},
{
"date": "2017-12-07",
"count": 1
},
{
"date": "2017-12-20",
"count": 1
},
{
"date": "2017-12-23",
"count": 1
},
{
"date": "2018-01-01",
"count": 1
},
{
"date": "2018-01-02",
"count": 2
},
{
"date": "2018-01-07",
"count": 1
},
{
"date": "2018-01-12",
"count": 1
},
{
"date": "2018-01-14",
"count": 1
},
{
"date": "2018-01-15",
"count": 1
},
{
"date": "2018-01-30",
"count": 1
},
{
"date": "2018-02-01",
"count": 1
},
{
"date": "2018-02-07",
"count": 1
},
{
"date": "2018-02-08",
"count": 1
},
{
"date": "2018-02-09",
"count": 1
},
{
"date": "2018-02-13",
"count": 2
},
{
"date": "2018-02-14",
"count": 1
},
{
"date": "2018-02-18",
"count": 1
},
{
"date": "2018-02-27",
"count": 1
},
{
"date": "2018-02-28",
"count": 1
},
{
"date": "2018-03-16",
"count": 1
},
{
"date": "2018-03-17",
"count": 1
},
{
"date": "2018-03-18",
"count": 1
},
{
"date": "2018-03-21",
"count": 1
},
{
"date": "2018-03-22",
"count": 1
},
{
"date": "2018-03-29",
"count": 1
},
{
"date": "2018-04-08",
"count": 1
},
{
"date": "2018-04-09",
"count": 1
},
{
"date": "2018-04-16",
"count": 1
},
{
"date": "2018-04-19",
"count": 1
},
{
"date": "2018-04-20",
"count": 1
},
{
"date": "2018-04-22",
"count": 1
},
{
"date": "2018-04-26",
"count": 1
},
{
"date": "2018-04-27",
"count": 1
},
{
"date": "2018-05-02",
"count": 1
},
{
"date": "2018-05-04",
"count": 1
},
{
"date": "2018-05-08",
"count": 1
},
{
"date": "2018-05-12",
"count": 1
},
{
"date": "2018-05-18",
"count": 1
},
{
"date": "2018-05-26",
"count": 1
},
{
"date": "2018-05-28",
"count": 1
},
{
"date": "2018-06-04",
"count": 1
},
{
"date": "2018-06-12",
"count": 1
},
{
"date": "2018-06-14",
"count": 1
},
{
"date": "2018-06-28",
"count": 1
},
{
"date": "2018-07-05",
"count": 1
},
{
"date": "2018-07-11",
"count": 1
},
{
"date": "2018-07-12",
"count": 1
},
{
"date": "2018-07-13",
"count": 2
},
{
"date": "2018-07-17",
"count": 1
},
{
"date": "2018-07-19",
"count": 1
},
{
"date": "2018-07-20",
"count": 1
},
{
"date": "2018-07-23",
"count": 1
},
{
"date": "2018-07-31",
"count": 1
},
{
"date": "2018-08-13",
"count": 1
},
{
"date": "2018-08-17",
"count": 1
},
{
"date": "2018-08-21",
"count": 1
},
{
"date": "2018-08-27",
"count": 2
},
{
"date": "2018-08-31",
"count": 1
},
{
"date": "2018-09-05",
"count": 1
},
{
"date": "2018-09-07",
"count": 1
},
{
"date": "2018-09-18",
"count": 1
},
{
"date": "2018-09-20",
"count": 1
},
{
"date": "2018-10-06",
"count": 2
},
{
"date": "2018-10-07",
"count": 1
},
{
"date": "2018-10-15",
"count": 1
},
{
"date": "2018-10-17",
"count": 3
},
{
"date": "2018-10-20",
"count": 1
},
{
"date": "2018-10-25",
"count": 1
},
{
"date": "2018-11-07",
"count": 1
},
{
"date": "2018-11-08",
"count": 1
},
{
"date": "2018-11-09",
"count": 1
},
{
"date": "2018-11-14",
"count": 1
},
{
"date": "2018-11-15",
"count": 1
},
{
"date": "2018-11-16",
"count": 1
},
{
"date": "2018-11-22",
"count": 2
},
{
"date": "2018-11-27",
"count": 1
},
{
"date": "2018-12-01",
"count": 1
},
{
"date": "2018-12-02",
"count": 1
},
{
"date": "2018-12-04",
"count": 1
},
{
"date": "2018-12-11",
"count": 1
},
{
"date": "2018-12-14",
"count": 1
},
{
"date": "2018-12-18",
"count": 1
},
{
"date": "2018-12-25",
"count": 1
},
{
"date": "2018-12-28",
"count": 1
},
{
"date": "2018-12-30",
"count": 1
},
{
"date": "2019-01-04",
"count": 1
},
{
"date": "2019-01-07",
"count": 1
},
{
"date": "2019-01-15",
"count": 1
},
{
"date": "2019-01-22",
"count": 1
},
{
"date": "2019-01-23",
"count": 1
},
{
"date": "2019-01-27",
"count": 1
},
{
"date": "2019-01-28",
"count": 1
},
{
"date": "2019-01-31",
"count": 1
},
{
"date": "2019-02-07",
"count": 1
},
{
"date": "2019-02-16",
"count": 1
},
{
"date": "2019-02-24",
"count": 6
},
{
"date": "2019-02-25",
"count": 1
},
{
"date": "2019-02-26",
"count": 2
},
{
"date": "2019-03-05",
"count": 1
},
{
"date": "2019-03-07",
"count": 1
},
{
"date": "2019-03-09",
"count": 1
},
{
"date": "2019-03-12",
"count": 1
},
{
"date": "2019-03-13",
"count": 1
},
{
"date": "2019-03-14",
"count": 1
},
{
"date": "2019-03-15",
"count": 1
},
{
"date": "2019-03-17",
"count": 1
},
{
"date": "2019-03-20",
"count": 1
},
{
"date": "2019-03-30",
"count": 1
},
{
"date": "2019-04-05",
"count": 1
},
{
"date": "2019-04-09",
"count": 2
},
{
"date": "2019-04-21",
"count": 1
},
{
"date": "2019-04-23",
"count": 1
},
{
"date": "2019-04-24",
"count": 1
},
{
"date": "2019-04-29",
"count": 3
},
{
"date": "2019-05-01",
"count": 1
},
{
"date": "2019-05-02",
"count": 1
},
{
"date": "2019-05-03",
"count": 1
},
{
"date": "2019-05-09",
"count": 1
},
{
"date": "2019-05-11",
"count": 1
},
{
"date": "2019-05-16",
"count": 1
},
{
"date": "2019-05-19",
"count": 1
},
{
"date": "2019-05-25",
"count": 1
},
{
"date": "2019-05-26",
"count": 1
},
{
"date": "2019-05-28",
"count": 1
},
{
"date": "2019-05-30",
"count": 1
},
{
"date": "2019-06-01",
"count": 1
},
{
"date": "2019-06-03",
"count": 1
},
{
"date": "2019-06-04",
"count": 1
},
{
"date": "2019-06-06",
"count": 1
},
{
"date": "2019-06-10",
"count": 1
},
{
"date": "2019-06-15",
"count": 2
},
{
"date": "2019-06-19",
"count": 1
},
{
"date": "2019-06-29",
"count": 1
},
{
"date": "2019-07-11",
"count": 1
},
{
"date": "2019-07-13",
"count": 2
},
{
"date": "2019-07-15",
"count": 2
},
{
"date": "2019-07-16",
"count": 2
},
{
"date": "2019-07-20",
"count": 1
},
{
"date": "2019-08-02",
"count": 1
},
{
"date": "2019-08-07",
"count": 1
},
{
"date": "2019-08-09",
"count": 1
},
{
"date": "2019-08-11",
"count": 1
},
{
"date": "2019-08-12",
"count": 1
},
{
"date": "2019-08-14",
"count": 1
},
{
"date": "2019-08-15",
"count": 1
},
{
"date": "2019-08-16",
"count": 2
},
{
"date": "2019-08-18",
"count": 1
},
{
"date": "2019-08-22",
"count": 1
},
{
"date": "2019-08-26",
"count": 1
},
{
"date": "2019-08-27",
"count": 1
},
{
"date": "2019-08-30",
"count": 2
},
{
"date": "2019-09-01",
"count": 1
},
{
"date": "2019-09-05",
"count": 1
},
{
"date": "2019-09-17",
"count": 1
},
{
"date": "2019-09-27",
"count": 1
},
{
"date": "2019-10-03",
"count": 1
},
{
"date": "2019-10-12",
"count": 1
},
{
"date": "2019-10-13",
"count": 1
},
{
"date": "2019-10-21",
"count": 1
},
{
"date": "2019-10-29",
"count": 1
},
{
"date": "2019-11-10",
"count": 1
},
{
"date": "2019-11-11",
"count": 1
},
{
"date": "2019-11-18",
"count": 2
},
{
"date": "2019-11-29",
"count": 1
},
{
"date": "2019-12-09",
"count": 1
},
{
"date": "2019-12-28",
"count": 1
},
{
"date": "2020-01-03",
"count": 1
},
{
"date": "2020-01-08",
"count": 1
},
{
"date": "2020-01-09",
"count": 1
},
{
"date": "2020-01-13",
"count": 1
},
{
"date": "2020-01-18",
"count": 1
},
{
"date": "2020-01-21",
"count": 1
},
{
"date": "2020-02-20",
"count": 1
},
{
"date": "2020-02-27",
"count": 1
},
{
"date": "2020-02-29",
"count": 1
},
{
"date": "2020-03-02",
"count": 2
},
{
"date": "2020-03-11",
"count": 1
},
{
"date": "2020-03-19",
"count": 1
},
{
"date": "2020-03-20",
"count": 1
},
{
"date": "2020-03-25",
"count": 1
},
{
"date": "2020-03-27",
"count": 1
},
{
"date": "2020-03-28",
"count": 1
},
{
"date": "2020-03-31",
"count": 1
},
{
"date": "2020-04-05",
"count": 1
},
{
"date": "2020-05-11",
"count": 1
},
{
"date": "2020-05-22",
"count": 1
},
{
"date": "2020-05-25",
"count": 1
},
{
"date": "2020-05-26",
"count": 1
},
{
"date": "2020-06-03",
"count": 1
},
{
"date": "2020-06-07",
"count": 1
},
{
"date": "2020-06-12",
"count": 2
},
{
"date": "2020-06-15",
"count": 1
},
{
"date": "2020-06-18",
"count": 1
},
{
"date": "2020-06-30",
"count": 1
},
{
"date": "2020-07-04",
"count": 1
},
{
"date": "2020-07-10",
"count": 1
},
{
"date": "2020-07-16",
"count": 1
},
{
"date": "2020-07-17",
"count": 1
},
{
"date": "2020-08-07",
"count": 1
},
{
"date": "2020-08-20",
"count": 1
},
{
"date": "2020-09-17",
"count": 1
},
{
"date": "2020-09-20",
"count": 1
},
{
"date": "2020-09-21",
"count": 1
},
{
"date": "2020-09-28",
"count": 1
},
{
"date": "2020-09-29",
"count": 1
},
{
"date": "2020-10-11",
"count": 1
},
{
"date": "2020-10-23",
"count": 1
},
{
"date": "2020-10-30",
"count": 1
},
{
"date": "2020-11-07",
"count": 1
},
{
"date": "2020-11-10",
"count": 1
},
{
"date": "2020-11-17",
"count": 2
},
{
"date": "2020-11-19",
"count": 1
},
{
"date": "2020-12-22",
"count": 1
},
{
"date": "2020-12-23",
"count": 1
},
{
"date": "2020-12-24",
"count": 1
},
{
"date": "2020-12-29",
"count": 1
},
{
"date": "2021-01-07",
"count": 1
},
{
"date": "2021-02-03",
"count": 1
},
{
"date": "2021-02-04",
"count": 1
},
{
"date": "2021-02-07",
"count": 1
},
{
"date": "2021-02-16",
"count": 1
},
{
"date": "2021-02-27",
"count": 1
},
{
"date": "2021-03-01",
"count": 1
},
{
"date": "2021-03-14",
"count": 1
},
{
"date": "2021-03-15",
"count": 1
},
{
"date": "2021-03-28",
"count": 2
},
{
"date": "2021-04-08",
"count": 1
},
{
"date": "2021-04-23",
"count": 1
},
{
"date": "2021-04-26",
"count": 1
},
{
"date": "2021-04-30",
"count": 1
},
{
"date": "2021-05-05",
"count": 2
},
{
"date": "2021-05-24",
"count": 1
},
{
"date": "2021-06-07",
"count": 2
},
{
"date": "2021-06-09",
"count": 1
},
{
"date": "2021-06-26",
"count": 1
},
{
"date": "2021-07-14",
"count": 1
},
{
"date": "2021-07-15",
"count": 1
},
{
"date": "2021-07-24",
"count": 1
},
{
"date": "2021-07-30",
"count": 2
},
{
"date": "2021-08-05",
"count": 1
},
{
"date": "2021-08-20",
"count": 1
},
{
"date": "2021-08-27",
"count": 1
},
{
"date": "2021-09-03",
"count": 2
},
{
"date": "2021-09-10",
"count": 1
},
{
"date": "2021-09-13",
"count": 1
},
{
"date": "2021-09-16",
"count": 1
},
{
"date": "2021-09-26",
"count": 1
},
{
"date": "2021-10-07",
"count": 1
},
{
"date": "2021-10-13",
"count": 1
},
{
"date": "2021-10-14",
"count": 1
},
{
"date": "2021-11-26",
"count": 1
},
{
"date": "2021-12-04",
"count": 1
},
{
"date": "2021-12-07",
"count": 1
},
{
"date": "2021-12-09",
"count": 1
},
{
"date": "2021-12-12",
"count": 1
},
{
"date": "2021-12-31",
"count": 1
},
{
"date": "2022-01-06",
"count": 1
},
{
"date": "2022-01-10",
"count": 1
},
{
"date": "2022-01-20",
"count": 1
},
{
"date": "2022-02-21",
"count": 1
},
{
"date": "2022-02-25",
"count": 1
},
{
"date": "2022-03-11",
"count": 1
},
{
"date": "2022-03-21",
"count": 1
},
{
"date": "2022-04-08",
"count": 1
},
{
"date": "2022-04-09",
"count": 1
},
{
"date": "2022-04-12",
"count": 1
},
{
"date": "2022-04-20",
"count": 1
},
{
"date": "2022-04-22",
"count": 2
},
{
"date": "2022-05-11",
"count": 1
},
{
"date": "2022-05-14",
"count": 1
},
{
"date": "2022-06-08",
"count": 1
},
{
"date": "2022-06-17",
"count": 1
},
{
"date": "2022-06-23",
"count": 1
},
{
"date": "2022-06-24",
"count": 1
},
{
"date": "2022-06-25",
"count": 1
},
{
"date": "2022-06-26",
"count": 1
},
{
"date": "2022-06-30",
"count": 1
},
{
"date": "2022-07-07",
"count": 1
},
{
"date": "2022-08-13",
"count": 1
},
{
"date": "2022-08-15",
"count": 1
},
{
"date": "2022-08-30",
"count": 1
},
{
"date": "2022-09-05",
"count": 1
},
{
"date": "2022-09-07",
"count": 1
},
{
"date": "2022-09-14",
"count": 1
},
{
"date": "2022-09-21",
"count": 1
},
{
"date": "2022-10-17",
"count": 1
},
{
"date": "2022-10-31",
"count": 1
},
{
"date": "2022-11-17",
"count": 1
},
{
"date": "2022-11-28",
"count": 1
},
{
"date": "2022-12-11",
"count": 1
},
{
"date": "2022-12-29",
"count": 1
},
{
"date": "2022-12-31",
"count": 1
},
{
"date": "2023-01-01",
"count": 1
},
{
"date": "2023-01-09",
"count": 1
},
{
"date": "2023-01-11",
"count": 1
},
{
"date": "2023-01-13",
"count": 2
},
{
"date": "2023-01-17",
"count": 1
},
{
"date": "2023-02-09",
"count": 1
},
{
"date": "2023-02-13",
"count": 1
},
{
"date": "2023-02-21",
"count": 1
},
{
"date": "2023-03-14",
"count": 2
},
{
"date": "2023-03-18",
"count": 1
},
{
"date": "2023-03-23",
"count": 1
},
{
"date": "2023-03-25",
"count": 1
},
{
"date": "2023-03-28",
"count": 1
},
{
"date": "2023-04-07",
"count": 1
},
{
"date": "2023-04-08",
"count": 1
},
{
"date": "2023-04-17",
"count": 1
},
{
"date": "2023-04-28",
"count": 1
},
{
"date": "2023-05-02",
"count": 1
},
{
"date": "2023-05-12",
"count": 1
},
{
"date": "2023-05-26",
"count": 1
},
{
"date": "2023-06-09",
"count": 1
},
{
"date": "2023-06-30",
"count": 1
},
{
"date": "2023-07-06",
"count": 1
},
{
"date": "2023-07-08",
"count": 1
},
{
"date": "2023-07-19",
"count": 1
},
{
"date": "2023-07-25",
"count": 1
},
{
"date": "2023-08-21",
"count": 1
},
{
"date": "2023-08-22",
"count": 1
},
{
"date": "2023-09-08",
"count": 1
},
{
"date": "2023-09-10",
"count": 1
},
{
"date": "2023-09-11",
"count": 1
},
{
"date": "2023-09-20",
"count": 1
},
{
"date": "2023-09-28",
"count": 1
},
{
"date": "2023-10-02",
"count": 1
},
{
"date": "2023-10-03",
"count": 1
},
{
"date": "2023-10-10",
"count": 1
},
{
"date": "2023-10-14",
"count": 1
},
{
"date": "2023-10-30",
"count": 2
},
{
"date": "2023-11-09",
"count": 1
},
{
"date": "2023-11-10",
"count": 1
},
{
"date": "2023-11-13",
"count": 1
},
{
"date": "2023-11-15",
"count": 1
},
{
"date": "2023-12-06",
"count": 1
},
{
"date": "2023-12-07",
"count": 1
},
{
"date": "2024-02-05",
"count": 1
},
{
"date": "2024-02-23",
"count": 1
},
{
"date": "2024-02-29",
"count": 1
},
{
"date": "2024-03-02",
"count": 1
},
{
"date": "2024-03-18",
"count": 1
},
{
"date": "2024-03-25",
"count": 1
},
{
"date": "2024-03-27",
"count": 1
},
{
"date": "2024-04-02",
"count": 2
},
{
"date": "2024-05-03",
"count": 1
},
{
"date": "2024-05-09",
"count": 1
},
{
"date": "2024-05-24",
"count": 1
},
{
"date": "2024-05-29",
"count": 1
},
{
"date": "2024-06-11",
"count": 1
},
{
"date": "2024-06-16",
"count": 1
},
{
"date": "2024-06-19",
"count": 1
},
{
"date": "2024-06-23",
"count": 1
},
{
"date": "2024-08-29",
"count": 1
},
{
"date": "2024-09-04",
"count": 1
},
{
"date": "2024-09-08",
"count": 1
},
{
"date": "2024-09-26",
"count": 1
},
{
"date": "2024-10-04",
"count": 1
},
{
"date": "2024-10-14",
"count": 1
},
{
"date": "2024-10-17",
"count": 2
},
{
"date": "2024-10-19",
"count": 1
},
{
"date": "2024-10-22",
"count": 1
},
{
"date": "2024-10-25",
"count": 1
},
{
"date": "2024-11-07",
"count": 1
},
{
"date": "2024-11-19",
"count": 1
},
{
"date": "2024-11-20",
"count": 1
},
{
"date": "2024-11-24",
"count": 1
},
{
"date": "2024-12-28",
"count": 1
},
{
"date": "2024-12-31",
"count": 1
},
{
"date": "2025-02-22",
"count": 1
},
{
"date": "2025-03-09",
"count": 1
},
{
"date": "2025-03-21",
"count": 1
},
{
"date": "2025-03-30",
"count": 1
},
{
"date": "2025-04-18",
"count": 1
},
{
"date": "2025-04-25",
"count": 1
},
{
"date": "2025-06-01",
"count": 2
},
{
"date": "2025-06-04",
"count": 1
},
{
"date": "2025-07-16",
"count": 1
},
{
"date": "2025-08-11",
"count": 1
},
{
"date": "2025-08-24",
"count": 1
},
{
"date": "2025-09-30",
"count": 1
},
{
"date": "2025-10-10",
"count": 1
},
{
"date": "2025-10-11",
"count": 1
},
{
"date": "2025-10-24",
"count": 2
},
{
"date": "2025-11-12",
"count": 1
},
{
"date": "2025-12-02",
"count": 1
},
{
"date": "2025-12-20",
"count": 1
},
{
"date": "2025-12-27",
"count": 1
},
{
"date": "2026-01-15",
"count": 1
},
{
"date": "2026-01-21",
"count": 1
},
{
"date": "2026-02-10",
"count": 1
},
{
"date": "2026-02-22",
"count": 1
},
{
"date": "2026-03-01",
"count": 1
},
{
"date": "2026-03-03",
"count": 1
},
{
"date": "2026-04-26",
"count": 1
},
{
"date": "2026-04-29",
"count": 1
},
{
"date": "2026-05-12",
"count": 1
},
{
"date": "2026-05-15",
"count": 1
},
{
"date": "2026-05-26",
"count": 1
},
{
"date": "2026-05-27",
"count": 1
},
{
"date": "2026-05-30",
"count": 1
},
{
"date": "2026-06-10",
"count": 1
},
{
"date": "2026-07-02",
"count": 1
},
{
"date": "2026-07-06",
"count": 1
},
{
"date": "2026-07-09",
"count": 1
}
],
"complete": false,
"collected": 1000,
"total_stars": 1889
},
"open_issues_and_prs": 11
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [
"examples"
],
"has_llms_txt": false,
"has_dockerfile": false,
"has_mcp_signal": false,
"bootstrap_files": [
"Makefile",
"examples/example_project/Makefile"
],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [],
"toolchain_manifests": [],
"largest_source_bytes": null,
"source_files_sampled": 0,
"oversized_source_files": 0,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"dependencies": {
"manifests": [],
"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": [],
"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": 2,
"merged_prs": 106,
"open_issues": 9,
"closed_ratio": 0.924,
"closed_issues": 109,
"closed_unmerged_prs": 41
},
"bus_factor": 1,
"bot_contributors": 0,
"top_contributors": [
{
"type": "User",
"login": "etrepum",
"commits": 456,
"avatar_url": "https://avatars.githubusercontent.com/u/26596?v=4"
},
{
"type": "User",
"login": "nickva",
"commits": 18,
"avatar_url": "https://avatars.githubusercontent.com/u/211822?v=4"
},
{
"type": "User",
"login": "mdempsky",
"commits": 17,
"avatar_url": "https://avatars.githubusercontent.com/u/38349?v=4"
},
{
"type": "User",
"login": "doubleyou",
"commits": 12,
"avatar_url": "https://avatars.githubusercontent.com/u/217284?v=4"
},
{
"type": "User",
"login": "robertkowalski",
"commits": 11,
"avatar_url": "https://avatars.githubusercontent.com/u/298166?v=4"
},
{
"type": "User",
"login": "lhft",
"commits": 10,
"avatar_url": "https://avatars.githubusercontent.com/u/1996726?v=4"
},
{
"type": "User",
"login": "fdmanana",
"commits": 9,
"avatar_url": "https://avatars.githubusercontent.com/u/170624?v=4"
},
{
"type": "User",
"login": "jj1bdx",
"commits": 7,
"avatar_url": "https://avatars.githubusercontent.com/u/27508?v=4"
},
{
"type": "User",
"login": "lemenkov",
"commits": 7,
"avatar_url": "https://avatars.githubusercontent.com/u/41835?v=4"
},
{
"type": "User",
"login": "k3nn7",
"commits": 7,
"avatar_url": "https://avatars.githubusercontent.com/u/2681989?v=4"
}
],
"contributors_sampled": 54,
"top_contributor_share": 0.72
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"ci.yml",
"release.yml"
],
"has_docs_dir": false,
"linter_configs": [],
"has_editorconfig": true,
"has_linter_config": false,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 10,
"reason": "no binaries found in the repo",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": 0,
"reason": "branch protection not enabled on development/release branches",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": 3,
"reason": "4 out of 11 merged PRs checked by a CI test -- score normalized to 3",
"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 8/12 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 34 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": 0,
"reason": "no 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": 9,
"reason": "license file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 3,
"reason": "4 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 3",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
},
{
"name": "Packaging",
"score": null,
"reason": "packaging workflow not 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": 0,
"reason": "SAST tool is not run on all commits -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 0,
"reason": "security policy file not 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": "ea0327cc095801c255d2832929f1acb7c79054b2",
"ran_at": "2026-07-22T01:30:26Z",
"aggregate_score": 4,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": false,
"has_dependabot_config": false
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-06-08T22:22:25Z",
"oldest_open_prs": [
{
"number": 156,
"created_at": "2015-04-04T19:07:26Z",
"last_comment_at": "2015-04-04T23:49:59Z",
"last_comment_author": "etrepum"
},
{
"number": 178,
"created_at": "2016-07-11T18:37:26Z",
"last_comment_at": "2016-09-02T21:46:18Z",
"last_comment_author": "vishalchangrani"
}
],
"last_merged_pr_at": "2026-06-08T22:20:27Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": [
{
"number": 89,
"created_at": "2012-11-13T07:56:24Z",
"last_comment_at": "2012-11-16T05:55:54Z",
"last_comment_author": "etrepum"
},
{
"number": 166,
"created_at": "2016-02-26T22:18:12Z",
"last_comment_at": "2022-10-08T12:47:35Z",
"last_comment_author": "etrepum"
},
{
"number": 179,
"created_at": "2016-08-01T08:07:33Z",
"last_comment_at": "2016-08-01T08:38:52Z",
"last_comment_author": "lego12239"
},
{
"number": 182,
"created_at": "2016-12-03T18:08:08Z",
"last_comment_at": "2016-12-05T10:02:35Z",
"last_comment_author": "mworrell"
},
{
"number": 189,
"created_at": "2017-06-07T23:25:16Z",
"last_comment_at": "2017-06-08T10:57:36Z",
"last_comment_author": "etrepum"
},
{
"number": 195,
"created_at": "2017-11-25T18:44:39Z",
"last_comment_at": "2017-11-26T15:20:28Z",
"last_comment_author": "M3S8"
},
{
"number": 196,
"created_at": "2017-12-28T11:05:45Z",
"last_comment_at": "2017-12-29T02:09:54Z",
"last_comment_author": "sigsergv"
},
{
"number": 224,
"created_at": "2019-06-06T07:09:06Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 253,
"created_at": "2022-11-10T05:46:21Z",
"last_comment_at": "2022-11-10T22:11:18Z",
"last_comment_author": "etrepum"
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/mochi/mochiweb",
"host": "github.com",
"name": "mochiweb",
"owner": "mochi"
},
"metrics": {
"overall": {
"key": "overall",
"band": "at_risk",
"name": "Overall health",
"note": "High-Risk Jurisdiction Policy applies a 75% multiplier to weighted overall health and gives it an At risk ceiling of 49.",
"notes": [
{
"code": "jurisdiction_overall_adjustment",
"params": {
"cap": 49,
"pct": 75
}
}
],
"value": 43,
"inputs": {
"security": 30,
"vitality": 53,
"community": 72,
"governance": 67,
"engineering": 56,
"high_risk_jurisdiction_cap": 49,
"high_risk_jurisdiction_multiplier": 75,
"weighted_overall_before_jurisdiction": 57,
"overall_after_jurisdiction_multiplier": 43
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "moderate",
"name": "Vitality",
"value": 53,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "at_risk",
"name": "Development activity",
"note": null,
"notes": [],
"value": 32,
"inputs": {
"commits_last_year": 10,
"human_commit_share": 1,
"days_since_last_push": 43,
"active_weeks_last_year": 2
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 43 days ago",
"points": 18,
"status": "partial",
"details": [
{
"code": "push_recency",
"params": {
"days": 43
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "2/52 weeks with commits",
"points": 1.4,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 2
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "10 commits in the last year",
"points": 9.4,
"status": "partial",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 10
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "4 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 3",
"points": 3,
"status": "partial",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "good",
"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": 84,
"inputs": {
"releases_count": 14,
"latest_release_tag": "v3.4.0",
"releases_from_tags": false,
"days_since_latest_release": 43,
"mean_days_between_releases": 194.4
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "14 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 14
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 43 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 43
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~194.4 days",
"points": 12.6,
"status": "partial",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 194.4
}
}
],
"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": 43,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "last human commit 43 days ago",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_maintained",
"params": {
"days": 43
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "good",
"name": "Community & Adoption",
"value": 72,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "excellent",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 87,
"inputs": {
"forks": 462,
"stars": 1889,
"watchers": 118,
"growth_state": "organic",
"growth_factor_pct": 100
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "1,889 stars",
"points": 53.1,
"status": "partial",
"details": [
{
"code": "stars",
"params": {
"count": 1889
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "462 forks",
"points": 22.2,
"status": "partial",
"details": [
{
"code": "forks",
"params": {
"count": 462
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "118 watchers",
"points": 11.5,
"status": "partial",
"details": [
{
"code": "watchers",
"params": {
"count": 118
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "at_risk",
"name": "Community health",
"note": null,
"notes": [],
"value": 44,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": false,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "license file present, not a recognized license",
"points": 16.9,
"status": "partial",
"details": [
{
"code": "license_custom",
"params": {}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.3
}
]
},
{
"key": "ecosystem_adoption",
"band": "excellent",
"name": "Ecosystem adoption (downloads)",
"note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"registry_dependents"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 87,
"inputs": {
"packages": [
"mochiweb"
],
"dependents": null,
"ecosystems": "hex",
"total_downloads": 33207173,
"monthly_downloads": 163321
},
"components": [
{
"key": "monthly_downloads",
"name": "Monthly downloads",
"detail": "163,321 downloads/month across hex",
"points": 69.5,
"status": "partial",
"details": [
{
"code": "downloads_monthly",
"params": {
"count": 163321,
"ecosystems": "hex"
}
}
],
"max_points": 80
},
{
"key": "registry_dependents",
"name": "Registry dependents",
"detail": "not reported by this ecosystem",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_reported_by_this_ecosystem",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "moderate",
"name": "Sustainability & Governance",
"value": 67,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "at_risk",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 39,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 54,
"top_contributor_share": 0.72
},
"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 72% of commits",
"points": 6.3,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 72
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "54 contributors",
"points": 13.5,
"status": "met",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 54
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 34 contributing companies or organizations",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "good",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 80,
"inputs": {
"merged_prs": 106,
"open_issues": 9,
"closed_issues": 109,
"issue_closed_ratio": 0.924,
"closed_unmerged_prs": 41
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "92% of issues closed",
"points": 43.2,
"status": "partial",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 92
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "106/147 decided PRs merged",
"points": 27.6,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 106,
"decided": 147
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 8/12 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": 61,
"inputs": {
"followers": 21,
"owner_type": "Organization",
"is_verified": null,
"owner_login": "mochi",
"public_repos": 19,
"account_age_days": 5904
},
"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": "21 followers of mochi",
"points": 9.7,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 21,
"login": "mochi"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "19 public repos, account ~16 yr old",
"points": 21.5,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 19
}
},
{
"code": "account_age_years",
"params": {
"years": 16
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"mochiweb"
],
"ecosystems": "hex",
"any_deprecated": false,
"min_days_since_publish": 43
},
"components": [
{
"key": "published_resolvable",
"name": "Published & resolvable",
"detail": "1 package(s) on hex",
"points": 25,
"status": "met",
"details": [
{
"code": "packages_published",
"params": {
"count": 1,
"ecosystems": "hex"
}
}
],
"max_points": 25
},
{
"key": "publish_recency",
"name": "Publish recency",
"detail": "latest publish 43 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 43
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "16 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 16
}
}
],
"max_points": 20
},
{
"key": "not_deprecated",
"name": "Not deprecated",
"detail": "active, not deprecated or yanked",
"points": 20,
"status": "met",
"details": [
{
"code": "package_not_deprecated",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "moderate",
"name": "Engineering Quality",
"value": 56,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "moderate",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 60,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": true,
"has_linter_config": false,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "2 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 2
}
}
],
"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": null,
"points": 0,
"status": "missed",
"details": [],
"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": "4 out of 11 merged PRs checked by a CI test -- score normalized to 3",
"points": 6,
"status": "partial",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "moderate",
"name": "Documentation",
"note": null,
"notes": [],
"value": 50,
"inputs": {
"topics": [],
"has_wiki": true,
"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": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "wiki",
"name": "Wiki",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "at_risk",
"name": "Security",
"value": 30,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "at_risk",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): Packaging, Signed-Releases. Remaining weights renormalized. High-Risk Jurisdiction Policy applies a 75% multiplier to Security posture and gives it an At risk ceiling of 49.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"packaging",
"signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
},
{
"code": "jurisdiction_posture_adjustment",
"params": {
"cap": 49,
"pct": 75
}
}
],
"value": 30,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 16,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 2,
"scorecard_aggregate": 4,
"high_risk_jurisdiction_cap": 49,
"high_risk_jurisdiction_multiplier": 75,
"security_posture_after_multiplier": 30,
"security_posture_before_jurisdiction": 40
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "no binaries found in the repo",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "branch protection not enabled on development/release branches",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "4 out of 11 merged PRs checked by a CI test -- score normalized to 3",
"points": 0.8,
"status": "partial",
"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 8/12 approved changesets -- score normalized to 6",
"points": 4.5,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 34 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": "no update tool detected",
"points": 0,
"status": "missed",
"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.2,
"status": "partial",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "4 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 3",
"points": 2.2,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "packaging",
"name": "Packaging",
"detail": "packaging workflow not detected",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"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 not run on all commits -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file not detected",
"points": 0,
"status": "missed",
"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": "good",
"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": 75,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": true,
"exposures": [
{
"role": "contributor_organization",
"count": 1,
"country": "Russia"
}
],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"review_only_matches": 0,
"assessed_self_published_locations": 24
},
"components": [
{
"key": "policy_exposure_multiplier",
"name": "Policy exposure multiplier",
"detail": "Russia: contributor_organization (1)",
"points": 75,
"status": "partial",
"details": [
{
"code": "jurisdiction_exposure",
"params": {
"role": "contributor_organization",
"count": 1,
"country": "Russia"
}
}
],
"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": "at_risk",
"name": "AI Readiness",
"value": 30,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "critical",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 26,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.49,
"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": "49 of 100 human commits state their intent (structured subject or explanatory body)",
"points": 26.1,
"status": "partial",
"details": [
{
"code": "legible_history",
"params": {
"legible": 49,
"sampled": 100
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "at_risk",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [],
"has_dockerfile": false,
"typed_language": false,
"bootstrap_files": [
"Makefile",
"examples/example_project/Makefile"
],
"has_devcontainer": false,
"has_linter_config": false,
"typecheck_configs": [],
"agent_commit_share": 0,
"toolchain_manifests": [],
"dependency_bot_commit_share": 0
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": "Makefile, examples/example_project/Makefile",
"points": 18,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "Makefile, examples/example_project/Makefile"
}
}
],
"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": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"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": "no agent-authored commits among the last 100",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_agent_authored_commits",
"params": {
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "no automated dependency updates observed",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_dependency_automation",
"params": {}
}
],
"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": "critical",
"name": "Code legibility for models",
"note": "Excluded from scoring (no data or not applicable): Manageable file sizes. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"manageable_file_sizes"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 1,
"inputs": {
"primary_language": "Erlang",
"largest_source_bytes": null,
"source_files_sampled": 0,
"oversized_source_files": 0
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "Erlang without a type-check config",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_typecheck_config_language",
"params": {
"language": "Erlang"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "no source files detected",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_source_files",
"params": {}
}
],
"max_points": 55
}
]
},
{
"key": "ai_interfaces",
"band": "at_risk",
"name": "Machine-readable interfaces",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"example_dirs": [
"examples"
],
"has_mcp_signal": false,
"api_schema_files": []
},
"components": [
{
"key": "api_schema_openapi_graphql_proto",
"name": "API schema (OpenAPI/GraphQL/proto)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"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": "examples",
"points": 40,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "examples"
}
}
],
"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": [],
"report_type": "repository",
"generated_at": "2026-07-22T01:30:52.470009Z",
"schema_version": "0.26.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/m/mochi/mochiweb.svg",
"full_name": "mochi/mochiweb",
"license_state": "custom",
"license_spdx": null
}