原始 JSON 报告 机器可读
{
"data": {
"repo": {
"topics": [
"markdown",
"markdown-parser"
],
"is_fork": false,
"size_kb": 437,
"has_wiki": true,
"homepage": "http://dafoster.net/projects/rdiscount/",
"languages": {
"C": 150015,
"HTML": 99732,
"Perl": 7208,
"Ruby": 31575
},
"pushed_at": "2026-04-27T01:12:34Z",
"created_at": "2008-05-30T16:54:07Z",
"owner_type": "User",
"updated_at": "2026-04-27T01:11:57Z",
"description": "Discount (For Ruby) Implementation of John Gruber's Markdown",
"is_archived": false,
"is_disabled": false,
"license_spdx": null,
"default_branch": "master",
"license_spdx_raw": "NOASSERTION",
"primary_language": "C",
"significant_languages": [
"C",
"HTML",
"Ruby"
]
},
"owner": {
"blog": "https://dafoster.net/",
"name": "David Foster",
"type": "User",
"login": "davidfstr",
"company": "TechSmart Inc.",
"location": "Seattle, WA, USA",
"followers": 103,
"avatar_url": "https://avatars.githubusercontent.com/u/764688?v=4",
"created_at": "2011-05-03T01:26:56Z",
"is_verified": null,
"public_repos": 90,
"account_age_days": 5558
},
"license": {
"state": "custom",
"spdx_id": null,
"raw_spdx": "NOASSERTION",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "2.2.7",
"kind": "patch",
"published_at": "2022-10-23T13:13:12Z"
},
{
"tag": "2.2.0",
"kind": "minor",
"published_at": "2016-05-05T05:00:10Z"
},
{
"tag": "2.1.8",
"kind": "patch",
"published_at": "2015-02-01T23:09:25Z"
},
{
"tag": "2.1.7",
"kind": "patch",
"published_at": "2013-10-14T00:10:30Z"
},
{
"tag": "2.1.6",
"kind": "patch",
"published_at": "2013-05-29T02:15:35Z"
},
{
"tag": "2.0.7",
"kind": "patch",
"published_at": "2013-01-30T04:16:25Z"
},
{
"tag": "1.6.8",
"kind": "patch",
"published_at": "2011-01-25T11:12:10Z"
},
{
"tag": "1.6.5",
"kind": "patch",
"published_at": "2010-06-15T21:02:57Z"
},
{
"tag": "1.5.8",
"kind": "patch",
"published_at": "2010-02-03T16:47:26Z"
},
{
"tag": "1.5.5",
"kind": "patch",
"published_at": "2009-11-13T22:56:04Z"
},
{
"tag": "1.3.5",
"kind": "patch",
"published_at": "2009-07-26T21:11:50Z"
},
{
"tag": "1.3.4",
"kind": "patch",
"published_at": "2009-03-04T13:49:12Z"
},
{
"tag": "1.3.1",
"kind": "patch",
"published_at": "2009-01-11T02:50:39Z"
},
{
"tag": "1.2.11",
"kind": "patch",
"published_at": "2008-11-02T20:29:28Z"
},
{
"tag": "1.2.10",
"kind": "patch",
"published_at": "2008-09-30T19:41:05Z"
},
{
"tag": "1.2.7",
"kind": "patch",
"published_at": "2008-08-02T07:08:54Z"
}
],
"recent_commits": [
{
"oid": "d6465eefd2535b22d9bb3483e5326e16fdb40276",
"body": null,
"is_bot": false,
"headline": "2.2.7.5 release",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2026-04-27T01:07:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4e7318c13ee921e4dc74a89a333446a383dfb876",
"body": "…s C23 mode\n\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Patch Discount 2.2.7 to rewrite K&R syntax that is rejected in Clang'…",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2026-04-23T02:00:38Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "e6bc99e7c2b4cdcdbb359e323b7a4a5799bc626e",
"body": null,
"is_bot": false,
"headline": "Continuous Integration: Upgrade actions/checkout to v6",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2026-04-17T13:42:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2d733672453c3a618f7c8b205d5e88d252e2c00e",
"body": null,
"is_bot": false,
"headline": "Continuous Integration: Add Ruby 3.4 and 4.0",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2026-04-17T13:39:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "28bd9171da016542a4afbce1647521e381ef9a2e",
"body": null,
"is_bot": false,
"headline": "2.2.7.4 release",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2026-04-02T01:28:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b1a16445e92e0d12c07594dedcdc56f80b317761",
"body": "Co-authored-by: David Foster <david@dafoster.net>",
"is_bot": false,
"headline": "Guard against oversized markdown input before calling mkd_string",
"author_name": "w",
"author_login": "WesR",
"committed_at": "2026-04-02T01:21:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "921379e93a320061fbcee468a6dad3cebe718ab7",
"body": null,
"is_bot": false,
"headline": "gitignore: Ignore ext/rdiscount.bundle.dSYM",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2026-04-02T01:20:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8974babab7fa00f2a1b6f972542dab3331079fb5",
"body": null,
"is_bot": false,
"headline": "Rakefile: Exclude ext.diff and CLAUDE.md from gem files",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2026-04-02T01:20:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8d59aa0d3cf2d1653c898a8c422660ed6ebc1f0f",
"body": null,
"is_bot": false,
"headline": "Rakefile: Replace deprecated .exists? with .exist?",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2026-04-02T01:20:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ddb01984802565ab0d7da411724fa239d89e4938",
"body": null,
"is_bot": false,
"headline": "AI Coding: Create plan/ directory",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2026-04-02T01:20:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "593ed1becd49f66e278331f055e87db7d935e732",
"body": null,
"is_bot": false,
"headline": "AI Coding: Add initial instructions/documentation for AI coding agents",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2026-04-02T01:20:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "751ffc949d8170f063089b46469ac38da7286f34",
"body": null,
"is_bot": false,
"headline": "Continuous Integration: Support manual runs",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2026-04-02T01:03:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3a0e51ab0b65e460a13773a96d41bb5f11615206",
"body": null,
"is_bot": false,
"headline": "2.2.7.3 release",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2023-12-31T17:39:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a39f34d552e803a5845961d330690fbf4956533d",
"body": "Resolves #160",
"is_bot": false,
"headline": "Continuous Integration: Add Ruby 3.3",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2023-12-31T17:33:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2265fa24a13fef6d4cf8aff53b1f28bca3bfa11b",
"body": null,
"is_bot": false,
"headline": "Continuous Integration: Add Ruby 3.2",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2023-12-31T17:30:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a05ee4d8f1749aa8c6c9c0f81e580bdfa046bbbf",
"body": "Resolves #159",
"is_bot": false,
"headline": "Reinstate fixes for Clang 16",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2023-12-31T17:26:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e8f06e2ff9cafe1d8277eef6100bfad0a53bd3c2",
"body": null,
"is_bot": false,
"headline": "rdiscount.gemspec: Fix steps to rebuild file list",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2023-12-31T16:49:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bd5ee93928f8e88081279af542b0c114a90739b2",
"body": null,
"is_bot": false,
"headline": "2.2.7.2 release",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2023-12-19T15:19:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "07c05a64e6a360083b5c449684e0320b38874f1a",
"body": null,
"is_bot": false,
"headline": "Update Discount 2.2.7c -> 2.2.7d",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2023-12-19T15:13:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8c890c56cecaa85cebe671d12f4724215876062c",
"body": null,
"is_bot": false,
"headline": "2.2.7.1 release",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2023-06-16T12:22:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1f73bfa403ce3b85b96f66625cd7155004971c3b",
"body": null,
"is_bot": false,
"headline": "Add TruffleRuby in CI",
"author_name": "Benoit Daloze",
"author_login": "eregon",
"committed_at": "2023-06-14T12:40:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "48da2e1bb48c39af1198d30a7e2f7add4caca23e",
"body": "* This is required on TruffleRuby with Sulong, which otherwise fails when\n trying to write (void)NULL to an int.",
"is_bot": false,
"headline": "Use correctly-typed function pointers for mkd_sta_function_t",
"author_name": "Benoit Daloze",
"author_login": "eregon",
"committed_at": "2023-06-14T12:40:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d4f796b6687a335147b5aacc3b76ef471922c9d0",
"body": null,
"is_bot": false,
"headline": "Fix Clang error in ext/gethopt.c",
"author_name": "Andrew Konchin",
"author_login": "andrykonchin",
"committed_at": "2023-06-14T12:40:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "aeb0b68469ce2dd236f8cc33c4c104b063bb6e8c",
"body": "Bugfix filter_styles",
"is_bot": false,
"headline": "Merge pull request #153 from davidfstr/bugfix/no-style-flag",
"author_name": "Felix",
"author_login": "fliiiix",
"committed_at": "2022-11-16T06:56:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2a2409e437c0be96d0eed04ae1bb06a07fa4a4de",
"body": null,
"is_bot": false,
"headline": "doc: update url of submodule in BUILDING",
"author_name": "fliiiix",
"author_login": "fliiiix",
"committed_at": "2022-11-12T19:35:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "df109085791d98ec5231fe795f4c5a9129b227db",
"body": "This allows by default to use `<style>` tags in markdown.\nThe tests did not fail because the upstream lib does\nnot filter inline `<style>` tags. (Probably a bug)\n\nFix the filter_styles flag to actually filter styles.\n\nFix #149",
"is_bot": false,
"headline": "Fix default set MKD_NOSTYLE flag",
"author_name": "fliiiix",
"author_login": "fliiiix",
"committed_at": "2022-11-12T19:32:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "798dfbf76fbab3baf6f27cdc2ddb69d2cf98e629",
"body": null,
"is_bot": false,
"headline": "2.2.7 release",
"author_name": "fliiiix",
"author_login": "fliiiix",
"committed_at": "2022-10-23T13:13:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "44b08664bcf7995cb1009172118fe6356919508e",
"body": null,
"is_bot": false,
"headline": "Remove unsupported attributes from gemspec",
"author_name": "fliiiix",
"author_login": "fliiiix",
"committed_at": "2022-10-23T13:12:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4959cda2b2c88d3673b8f984a7ad7b4a3b0201aa",
"body": null,
"is_bot": false,
"headline": "Fixing test:conformance:1.0 and run 1.0 and 1.0.3 by default",
"author_name": "fliiiix",
"author_login": "fliiiix",
"committed_at": "2022-10-23T13:12:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5178741298a0b5375f648cce765806a4dc08b728",
"body": "Fixes #137",
"is_bot": false,
"headline": "Implement :explicitlist flag from upstream",
"author_name": "fliiiix",
"author_login": "fliiiix",
"committed_at": "2022-10-23T13:12:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "353e0586522518b27872e243ef8916e45099a469",
"body": "Fixes #130",
"is_bot": false,
"headline": "Implement :latex flag from upstream",
"author_name": "fliiiix",
"author_login": "fliiiix",
"committed_at": "2022-10-23T13:12:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "80e6d4c8b57039b210975989df7db13a33c0a23a",
"body": null,
"is_bot": false,
"headline": "Cleanup tests",
"author_name": "fliiiix",
"author_login": "fliiiix",
"committed_at": "2022-10-23T13:12:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "31870936c3789f2cd8a0f2b75e125cb3550e762c",
"body": "Fixes #148\n\n- Update submodule to tag 2.2.7c\n (Version 2.2.7c is not actually tagged)\n- Update ext module with rake gather\n- add -DBRANCH to build process\n- Changed behaviour for toc character escape\n eg. A?B is now #A-3f-B and not #A.B\n see test/rdiscount_test.rb\n (Fixes #129)",
"is_bot": false,
"headline": "Update discount to 2.2.7c",
"author_name": "fliiiix",
"author_login": "fliiiix",
"committed_at": "2022-10-23T13:11:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4fb56d4ac5bc234561b2e8143fe2ac799ab5fbfd",
"body": null,
"is_bot": false,
"headline": "Readme update urls to https",
"author_name": "fliiiix",
"author_login": "fliiiix",
"committed_at": "2022-10-01T06:27:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3b03879c78cce75479036fff25a530e59e02237f",
"body": null,
"is_bot": false,
"headline": "Update readme with the github action badge",
"author_name": "fliiiix",
"author_login": "fliiiix",
"committed_at": "2022-10-01T06:27:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8ed3b6f108627f058366efafc2c7603e73354fbf",
"body": null,
"is_bot": false,
"headline": "Move Windows CI tests to github action",
"author_name": "fliiiix",
"author_login": "fliiiix",
"committed_at": "2022-10-01T06:27:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "42831bcfa34ed1184df692b5a4d40f0fb9ba2601",
"body": null,
"is_bot": false,
"headline": "Move from travis to github action for testing",
"author_name": "fliiiix",
"author_login": "fliiiix",
"committed_at": "2022-10-01T06:27:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "efa3950f2dec802715310fc37ab8fa26d63923ae",
"body": null,
"is_bot": false,
"headline": "Update discount to offical repo and latest version 2.2.7b",
"author_name": "fliiiix",
"author_login": "fliiiix",
"committed_at": "2022-09-25T16:06:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "684494b2cdd64df9f35c393245ad4f72865b1e2c",
"body": null,
"is_bot": false,
"headline": "travis: add 3.0 and 3.1 release",
"author_name": "fliiiix",
"author_login": "fliiiix",
"committed_at": "2022-09-25T15:58:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "58730c8e8b84b9613dce435c8cd7816e8856cbe1",
"body": null,
"is_bot": false,
"headline": "travis: drop all EOL ruby versions",
"author_name": "fliiiix",
"author_login": "fliiiix",
"committed_at": "2022-09-25T15:35:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "875e372ee1866933ce4ac06ab577d7e88ba5171d",
"body": "`ubygems.rb' is deprecated, and will be removed on or after 2018-12-01.\nRemove `-rubygems' from your command-line, or use `-r rubygems' instead",
"is_bot": false,
"headline": "Update rake test:unit to run on ruby2.7",
"author_name": "fliiiix",
"author_login": "fliiiix",
"committed_at": "2022-09-25T15:33:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6b1471ec3b736839a29beaab8cac68050afeca79",
"body": null,
"is_bot": false,
"headline": "2.2.0.2 release",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2020-08-10T01:30:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ae6f0fc25a48c60f85ceda7fb84ab3a8741c2166",
"body": "Ruby 2.7 was validated on macOS but didn't build in Travis for some reason. I'm not going to investigate now.\r\n\r\nEarlier Ruby versions that continue to build on Travis are retained for now, including Ruby versions no longer supported by the core Ruby team (<= 2.4).",
"is_bot": false,
"headline": "Test latest Ruby 2.4-2.7 versions. Add to CI. (#144)",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2020-06-28T20:48:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "54cd69587c9068dd83de75096201a01dceea55f4",
"body": "Fix compile error under macOS Big Sur",
"is_bot": false,
"headline": "Merge pull request #142 from Bo98/big-sur-fix",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2020-06-28T19:44:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0c6b850c034277655f919fbb3de6d1655dfe5e26",
"body": null,
"is_bot": false,
"headline": "Drop support for Ruby 1.9.3 which no longer builds on Travis.",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2020-06-28T19:39:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "48cf5d5b3818943adc76728aaaf5b40b6ab9825b",
"body": "rdiscount.c:53:17: error: implicit declaration of function\r\n'rb_rdiscount__get_flags' is invalid in C99\r\n[-Werror,-Wimplicit-function-declaration]\r\n int flags = rb_rdiscount__get_flags(self);\r\n ^\r\nrdiscount.c:96:17: error: implicit declaration of function\r\n'rb_rdiscount__get_flags' is invalid in C99\r\n[-Werror,-Wimplicit-function-declaration]\r\n int flags = rb_rdiscount__get_flags(self);\r\n ^",
"is_bot": false,
"headline": "Fix compile error under macOS Big Sur",
"author_name": "Bo Anderson",
"author_login": "Bo98",
"committed_at": "2020-06-24T02:07:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "676a381b0321a51080ea94cd26fefdcd9898a613",
"body": null,
"is_bot": false,
"headline": "2.2.0.1 release",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2016-05-08T00:57:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7d2d64459902bb6cc45c4f6dd1d1bdbdf4a472dc",
"body": null,
"is_bot": false,
"headline": "Fix compilation on MSVC. Enable Ruby 2.3.0 in CI.",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2016-05-08T00:48:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e16d925b8f0d9706e88603780e4793a048703976",
"body": null,
"is_bot": false,
"headline": "Appveyor: Add instructions for how to Unblock the script.",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2016-05-05T05:00:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ee6c313f8809901ed63651e79006346d9eb6823a",
"body": null,
"is_bot": false,
"headline": "Update the CHANGELOG.",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2016-05-04T04:29:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "274d027de1108034ce409d8ca8352a3524e10f2f",
"body": null,
"is_bot": false,
"headline": "Bump version number. Modernize gemspec.",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2016-04-22T03:53:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "46103c46812dfa2ea0ad50bdafcb50e7eaecce2d",
"body": "Specifically:\n* Definition lists\n - USE_EXTRA_DL, USE_DISCOUNT_DL -> MKD_DLEXTRA\n* Fenced code blocks\n - WITH_FENCED_CODE -> MKD_FENCEDCODE\n* GitHub-style tags with - and _\n - WITH_GITHUB_TAGS -> MKD_GITHUBTAGS",
"is_bot": false,
"headline": "Migrate various features from configure flags to runtime flags.",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2016-04-22T03:52:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "eadc84b8645717597bbe70e7f4a6020062c3b1c7",
"body": null,
"is_bot": false,
"headline": "Discount sources up to v2.2.0.",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2016-04-15T04:59:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7fd7a2dfeeef06c6de2501fcdfa8f967d53ed16a",
"body": "[Travis] Also test on 2.3.0",
"is_bot": false,
"headline": "Merge pull request #133 from segiddins/seg-travis-2.3",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2016-01-31T05:21:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "85d1a77cb84618c2c4e0d2d29a9024e481ccd54d",
"body": null,
"is_bot": false,
"headline": "[Travis] Also test on 2.3.0",
"author_name": "Samuel Giddins",
"author_login": "segiddins",
"committed_at": "2016-01-31T00:51:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ea6c7705763ebc83701fdda36a299013e5b60862",
"body": "Fix compilation on MSVC.",
"is_bot": false,
"headline": "Merge pull request #132 from lowjoel/msvc",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2016-01-15T02:56:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "71186cd339fbefa68554bdbebb1c72ec90a1c1ca",
"body": null,
"is_bot": false,
"headline": "Fix compilation on MSVC.",
"author_name": "Joel Low",
"author_login": "lowjoel",
"committed_at": "2016-01-06T06:40:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "63d32e56462fdf83001e62a0c8b8b6ede5dafd27",
"body": null,
"is_bot": false,
"headline": "Update continuous integration status badges.",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2015-07-20T04:42:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "74fcc93d61a93380d7763b0ea215a331ef520cf5",
"body": "Enable continuous integration on Windows.",
"is_bot": false,
"headline": "Merge pull request #128 from davidfstr/appveyor",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2015-07-20T04:07:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3efaae211493631a92d58921c1ab50f572764a25",
"body": null,
"is_bot": false,
"headline": "gitignore: Remove reference to old Appveyor log file.",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2015-07-20T04:02:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fd58fd57e5ed46dd452ce3396e1427a960e89e4b",
"body": null,
"is_bot": false,
"headline": "Clarify that Appveyor on 32-bit Windows does not work.",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2015-07-20T03:55:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "152a823ef4fc8a9e8ac8f6ae8f01dba45ad9520f",
"body": null,
"is_bot": false,
"headline": "Enable CI on 64-bit Windows.",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2015-07-20T03:39:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8e9c72b7409c6c9fe1bf16b4e6ee62a0df33a2de",
"body": null,
"is_bot": false,
"headline": "Introduce deliberate test failure.",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2015-07-20T03:37:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1b0e379a192928b7004c1395af4e6f079e1a504b",
"body": null,
"is_bot": false,
"headline": "Disable Appveyor build transcript. Unnecessary.",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2015-07-20T03:33:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c9bd00d88c47c4bc0bb8114f3f2ba8bffd5eaa37",
"body": null,
"is_bot": false,
"headline": "appveyor.yml: Invoke build script as sub-shell.",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2015-07-20T03:29:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8f7bd6b56c653c8228c6716596f403c39a8848bc",
"body": "Fix checking of int size on 64-bit operating systems.",
"is_bot": false,
"headline": "Merge pull request #126 from comargo/patch-1",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2015-07-20T02:47:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "08b576ded5d9e517d72ac00ec062a5231fe66439",
"body": null,
"is_bot": false,
"headline": "appveyor-build: Clean up.",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2015-07-20T02:38:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "415674174e5518f028271551007e7c57d70fe9da",
"body": null,
"is_bot": false,
"headline": "appveyor-build: Detect and support 64-bit Windows OS.",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2015-07-20T02:06:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "344c7ee08d127a4c537b306a2cc60f43f5dd5a1b",
"body": null,
"is_bot": false,
"headline": "appveyor-build: Publish log incrementally.",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2015-07-20T01:13:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9ed99ec9c75aa82e1f02f5f1b6b1b761c95c50d5",
"body": null,
"is_bot": false,
"headline": "appveyor-build: Record log.",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2015-07-19T01:25:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "631415c30aea9e6bed6663805afdcf6ab343dcf2",
"body": null,
"is_bot": false,
"headline": "Initial appveyor.xml.",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2015-07-18T20:36:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9c0b8042cd5a402c536843a848f43a9b3dfc67f6",
"body": null,
"is_bot": false,
"headline": "appveyor-build: Improve output format.",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2015-07-18T20:05:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a504cbf86fc9534c5f4831832ac4fc7ee5b9eed6",
"body": null,
"is_bot": false,
"headline": "Appveyor automated provision, build, and test.",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2015-07-18T16:57:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ad18525ede65d918b90855467c65203b9ea6a5b7",
"body": "With 64bit mingw the code didn't work (failed on WORD type detection)",
"is_bot": false,
"headline": "Fix checking of int size",
"author_name": "Cyril Margorin",
"author_login": "comargo",
"committed_at": "2015-07-09T14:06:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f93aa5422c3517e8b5924ad1b6abf81edd34ac98",
"body": null,
"is_bot": false,
"headline": "CHANGELOG: Fix typo in Ruby version number.",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2015-02-01T23:20:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "09caf9b2d520a9af779788f1172c1e4365767cf3",
"body": null,
"is_bot": false,
"headline": "2.1.8 release",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2015-02-01T23:09:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "68a258548436926b8b29ef4e96d79215046d70b1",
"body": null,
"is_bot": false,
"headline": "Add regression test for #121.",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2015-02-01T23:09:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5f20c89781793e76034fbdb659be311676ef4a27",
"body": null,
"is_bot": false,
"headline": "Discount sources up to v2.1.8.",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2015-02-01T23:09:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "adae9271533b6d9a5e72542865839030de5642b7",
"body": "Add Ruby 2.2 to continuous integration.",
"is_bot": false,
"headline": "Merge pull request #123 from orangejulius/patch-1",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2015-02-01T22:26:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4df32d78377555311f9d6ad06d1d83a9086d6c85",
"body": "Use RbConfig module instead of deprecated Config module.\r\n\r\nNeeded for Ruby 2.2 support.",
"is_bot": false,
"headline": "Merge pull request #124 from orangejulius/patch-2",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2015-02-01T22:18:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8b0b2377e1e6e683e04f956902f1954786b4b857",
"body": "The Config module is depricated in favor of RbConfig, and as of Ruby 2.2 no longer exists (it used to print a warning). It [appears](http://ruby-doc.org/stdlib-1.9.2/libdoc/rubygems/rdoc/RbConfig.html) that RbConfig exists since at least Ruby 1.9.2, so all versions of Ruby supported by Rdiscount should be fine with this change.",
"is_bot": false,
"headline": "Use RbConfig instead of Config",
"author_name": "Julian Simioni",
"author_login": "orangejulius",
"committed_at": "2015-01-31T13:49:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "23b7b31e25488931ec1d57a5fb0a5af5752dddeb",
"body": "Since 2.1 was just added, might as well add 2.2 also",
"is_bot": false,
"headline": "Add Ruby 2.2 to continuous integration",
"author_name": "Julian Simioni",
"author_login": "orangejulius",
"committed_at": "2015-01-31T13:33:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b5f8909524d79bc0e9ccf8f5f16d057fb5fbd424",
"body": null,
"is_bot": false,
"headline": "Add Ruby 2.1.0 to continuous integration.",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2014-12-09T05:08:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5343e96ca630c2788bbd99b2df8ebcfc92946d24",
"body": null,
"is_bot": false,
"headline": "2.1.7.1 release",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2014-04-12T19:00:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6eb4045bb1ad812edcf88098d1c58db1b98269ba",
"body": null,
"is_bot": false,
"headline": "Detect conformance test failures correctly. (#106)",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2014-04-05T21:52:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "733e33e37332e4349b39a35880ab0f39e321a37e",
"body": null,
"is_bot": false,
"headline": "Exclude RubyMine project metadata from Git.",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2014-04-05T21:49:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "aa3c540c488597e2a4a5580644d0e58fed10f881",
"body": "Fix OS X 10.9 build issue: Strip unused -multiply_definedsuppress flag from Makefile. (#115)",
"is_bot": false,
"headline": "Merge pull request #116 from maciejtrybilo/master",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2014-03-21T17:24:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c31f1119a190a4b644052777812d80c0a82c5126",
"body": null,
"is_bot": false,
"headline": "one space after if",
"author_name": "Maciej Trybilo",
"author_login": "maciejtrybilo",
"committed_at": "2014-03-21T09:10:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6bcbd0d4d1b318d0622c4c7b54e05f67cfb12d50",
"body": "…n OS X post Xcode 5.1",
"is_bot": false,
"headline": "Issue 115 - unused -multiply_definedsuppress flag breakes the build o…",
"author_name": "Maciej Trybilo",
"author_login": "maciejtrybilo",
"committed_at": "2014-03-20T15:28:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e0a1950d731eafd53ff6bb9ca483db3b057197e2",
"body": null,
"is_bot": false,
"headline": "Test emphasis detection with international characters. (#110)",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2014-03-18T03:09:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5807570608bf3683cd5a1699cb8784d9ae9f5e8a",
"body": "Add license to gemspec",
"is_bot": false,
"headline": "Merge pull request #114 from anatol/patch-1",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2013-12-17T01:43:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bd1d36b39e8edcaa87c8d79c5f667bf2c3304e1f",
"body": null,
"is_bot": false,
"headline": "Add license to gemspec",
"author_name": "Anatol",
"author_login": "anatol",
"committed_at": "2013-12-16T15:18:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0db261d17a510303c748c3a231626fbf09108470",
"body": "* Discount sources up to v2.1.7.\n* Update tests, CHANGELOG, BUILDING instructions.",
"is_bot": false,
"headline": "2.1.7 release",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2013-10-14T00:10:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "652a6ca261e5d956feeb751eb819faa53317b227",
"body": null,
"is_bot": false,
"headline": "Update doc for RDiscount constructor to have new extensions.",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2013-06-02T14:43:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "44c9ad2287e58da186904f00740295f3f22c23e8",
"body": null,
"is_bot": false,
"headline": "Update link to RDoc documentation.",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2013-05-29T03:39:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ffe9058f7314466a5bad290e4a344ee71184edf7",
"body": null,
"is_bot": false,
"headline": "2.1.6 release",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2013-05-29T02:15:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "35d66052ad4e07ac2f727c28b39efcabee7d00f5",
"body": null,
"is_bot": false,
"headline": "Update CHANGELOG.",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2013-05-29T02:15:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2bdb2f8f78c8f2f605de68142e914ad8cc695d62",
"body": null,
"is_bot": false,
"headline": "Verify that RDiscount::VERSION constant looks sane.",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2013-05-29T02:15:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c382e3fadd270b5312db9bc7906fb0f8cda7495d",
"body": "…ease.",
"is_bot": false,
"headline": "Add reminder to update RDiscount::VERSION constant when issuing a rel…",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2013-05-29T02:15:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "13138ac258b56d1f953dcd6037a848330eebf34e",
"body": null,
"is_bot": false,
"headline": "Enable - and _ as acceptable characters in HTML tag names. (#76)",
"author_name": "David Foster",
"author_login": "davidfstr",
"committed_at": "2013-05-29T02:15:35Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 16,
"commits_last_year": 12,
"latest_release_at": "2022-10-23T13:13:12Z",
"latest_release_tag": "2.2.7",
"releases_from_tags": true,
"days_since_last_push": 85,
"active_weeks_last_year": 5,
"days_since_latest_release": 1367,
"mean_days_between_releases": 525.2
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": false,
"health_percentage": 42,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"ecosystem": {
"packages": [
{
"name": "rdiscount",
"exists": true,
"license": "BSD-3-Clause",
"keywords": [],
"ecosystem": "rubygems",
"matches_repo": true,
"registry_url": "https://rubygems.org/gems/rdiscount",
"is_deprecated": false,
"latest_version": "2.2.7.5",
"repository_url": "https://github.com/davidfstr/rdiscount",
"versions_count": 35,
"total_downloads": 13110505,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": null,
"first_published_at": "2009-07-25T18:00:33Z",
"latest_published_at": "2026-04-27T01:11:46.332000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 85
}
]
},
"popularity": {
"forks": 67,
"stars": 749,
"watchers": 18,
"fork_history": {
"days": [
{
"date": "2008-09-30",
"count": 1
},
{
"date": "2008-12-21",
"count": 1
},
{
"date": "2009-02-28",
"count": 1
},
{
"date": "2009-04-05",
"count": 1
},
{
"date": "2010-05-14",
"count": 1
},
{
"date": "2010-05-20",
"count": 1
},
{
"date": "2010-06-17",
"count": 1
},
{
"date": "2010-08-13",
"count": 1
},
{
"date": "2010-09-30",
"count": 1
},
{
"date": "2010-10-04",
"count": 1
},
{
"date": "2011-02-16",
"count": 1
},
{
"date": "2011-02-22",
"count": 1
},
{
"date": "2011-05-08",
"count": 2
},
{
"date": "2011-07-12",
"count": 1
},
{
"date": "2011-09-10",
"count": 1
},
{
"date": "2011-09-16",
"count": 1
},
{
"date": "2011-09-17",
"count": 1
},
{
"date": "2011-10-06",
"count": 2
},
{
"date": "2011-10-27",
"count": 1
},
{
"date": "2011-12-09",
"count": 1
},
{
"date": "2011-12-20",
"count": 1
},
{
"date": "2012-03-03",
"count": 1
},
{
"date": "2012-05-16",
"count": 1
},
{
"date": "2012-07-14",
"count": 1
},
{
"date": "2012-10-31",
"count": 1
},
{
"date": "2012-11-09",
"count": 1
},
{
"date": "2012-11-11",
"count": 1
},
{
"date": "2012-11-13",
"count": 1
},
{
"date": "2013-01-12",
"count": 1
},
{
"date": "2013-03-10",
"count": 1
},
{
"date": "2013-03-11",
"count": 1
},
{
"date": "2013-03-21",
"count": 1
},
{
"date": "2013-03-23",
"count": 1
},
{
"date": "2013-04-18",
"count": 1
},
{
"date": "2013-05-14",
"count": 1
},
{
"date": "2013-07-05",
"count": 1
},
{
"date": "2013-09-15",
"count": 1
},
{
"date": "2013-09-20",
"count": 1
},
{
"date": "2013-12-16",
"count": 1
},
{
"date": "2014-02-10",
"count": 1
},
{
"date": "2014-02-15",
"count": 1
},
{
"date": "2014-03-20",
"count": 1
},
{
"date": "2014-04-14",
"count": 1
},
{
"date": "2014-05-17",
"count": 1
},
{
"date": "2014-07-12",
"count": 1
},
{
"date": "2015-09-11",
"count": 1
},
{
"date": "2015-11-19",
"count": 1
},
{
"date": "2016-01-31",
"count": 1
},
{
"date": "2017-02-08",
"count": 1
},
{
"date": "2017-02-15",
"count": 1
},
{
"date": "2017-05-15",
"count": 1
},
{
"date": "2018-02-08",
"count": 1
},
{
"date": "2018-03-30",
"count": 1
},
{
"date": "2020-06-24",
"count": 1
},
{
"date": "2020-10-20",
"count": 1
},
{
"date": "2020-12-05",
"count": 1
},
{
"date": "2022-09-25",
"count": 1
},
{
"date": "2023-01-26",
"count": 1
},
{
"date": "2023-05-02",
"count": 1
},
{
"date": "2023-06-14",
"count": 1
},
{
"date": "2023-11-10",
"count": 1
},
{
"date": "2025-11-21",
"count": 1
}
],
"complete": true,
"collected": 64,
"total_forks": 67
},
"star_history": {
"days": [
{
"date": "2008-05-30",
"count": 134
},
{
"date": "2008-05-31",
"count": 2
},
{
"date": "2008-06-01",
"count": 1
},
{
"date": "2008-06-04",
"count": 3
},
{
"date": "2008-06-08",
"count": 3
},
{
"date": "2008-06-12",
"count": 1
},
{
"date": "2008-06-13",
"count": 1
},
{
"date": "2008-06-14",
"count": 1
},
{
"date": "2008-06-16",
"count": 2
},
{
"date": "2008-06-17",
"count": 1
},
{
"date": "2008-06-19",
"count": 1
},
{
"date": "2008-06-20",
"count": 2
},
{
"date": "2008-06-21",
"count": 1
},
{
"date": "2008-06-23",
"count": 2
},
{
"date": "2008-06-24",
"count": 1
},
{
"date": "2008-06-26",
"count": 2
},
{
"date": "2008-06-30",
"count": 1
},
{
"date": "2008-07-07",
"count": 1
},
{
"date": "2008-07-08",
"count": 3
},
{
"date": "2008-07-10",
"count": 1
},
{
"date": "2008-07-11",
"count": 1
},
{
"date": "2008-07-13",
"count": 1
},
{
"date": "2008-07-15",
"count": 1
},
{
"date": "2008-07-17",
"count": 1
},
{
"date": "2008-07-23",
"count": 1
},
{
"date": "2008-07-28",
"count": 1
},
{
"date": "2008-07-29",
"count": 1
},
{
"date": "2008-08-01",
"count": 1
},
{
"date": "2008-08-03",
"count": 1
},
{
"date": "2008-08-07",
"count": 1
},
{
"date": "2008-08-11",
"count": 1
},
{
"date": "2008-08-16",
"count": 1
},
{
"date": "2008-08-18",
"count": 1
},
{
"date": "2008-08-19",
"count": 1
},
{
"date": "2008-08-28",
"count": 1
},
{
"date": "2008-09-04",
"count": 1
},
{
"date": "2008-09-08",
"count": 1
},
{
"date": "2008-09-14",
"count": 1
},
{
"date": "2008-09-18",
"count": 1
},
{
"date": "2008-09-21",
"count": 1
},
{
"date": "2008-09-23",
"count": 1
},
{
"date": "2008-09-25",
"count": 1
},
{
"date": "2008-09-26",
"count": 1
},
{
"date": "2008-09-28",
"count": 1
},
{
"date": "2008-09-29",
"count": 1
},
{
"date": "2008-09-30",
"count": 2
},
{
"date": "2008-10-10",
"count": 1
},
{
"date": "2008-10-16",
"count": 2
},
{
"date": "2008-10-17",
"count": 1
},
{
"date": "2008-10-19",
"count": 1
},
{
"date": "2008-10-21",
"count": 1
},
{
"date": "2008-10-22",
"count": 3
},
{
"date": "2008-10-25",
"count": 1
},
{
"date": "2008-10-30",
"count": 1
},
{
"date": "2008-11-02",
"count": 1
},
{
"date": "2008-11-05",
"count": 1
},
{
"date": "2008-11-06",
"count": 1
},
{
"date": "2008-11-07",
"count": 1
},
{
"date": "2008-11-09",
"count": 1
},
{
"date": "2008-11-23",
"count": 1
},
{
"date": "2008-12-01",
"count": 1
},
{
"date": "2008-12-02",
"count": 1
},
{
"date": "2008-12-04",
"count": 1
},
{
"date": "2008-12-08",
"count": 1
},
{
"date": "2008-12-09",
"count": 1
},
{
"date": "2008-12-10",
"count": 1
},
{
"date": "2008-12-13",
"count": 2
},
{
"date": "2008-12-14",
"count": 1
},
{
"date": "2008-12-19",
"count": 2
},
{
"date": "2008-12-22",
"count": 2
},
{
"date": "2008-12-24",
"count": 1
},
{
"date": "2008-12-25",
"count": 1
},
{
"date": "2008-12-28",
"count": 1
},
{
"date": "2008-12-31",
"count": 1
},
{
"date": "2009-01-01",
"count": 1
},
{
"date": "2009-01-05",
"count": 1
},
{
"date": "2009-01-13",
"count": 1
},
{
"date": "2009-01-16",
"count": 1
},
{
"date": "2009-01-19",
"count": 2
},
{
"date": "2009-01-26",
"count": 1
},
{
"date": "2009-01-29",
"count": 1
},
{
"date": "2009-02-01",
"count": 1
},
{
"date": "2009-02-08",
"count": 1
},
{
"date": "2009-02-10",
"count": 1
},
{
"date": "2009-02-13",
"count": 1
},
{
"date": "2009-02-14",
"count": 1
},
{
"date": "2009-02-15",
"count": 1
},
{
"date": "2009-02-18",
"count": 1
},
{
"date": "2009-02-19",
"count": 1
},
{
"date": "2009-02-27",
"count": 1
},
{
"date": "2009-02-28",
"count": 2
},
{
"date": "2009-03-01",
"count": 4
},
{
"date": "2009-03-11",
"count": 2
},
{
"date": "2009-03-13",
"count": 3
},
{
"date": "2009-03-14",
"count": 2
},
{
"date": "2009-03-18",
"count": 1
},
{
"date": "2009-03-21",
"count": 1
},
{
"date": "2009-03-25",
"count": 2
},
{
"date": "2009-03-27",
"count": 1
},
{
"date": "2009-04-08",
"count": 1
},
{
"date": "2009-04-10",
"count": 1
},
{
"date": "2009-04-12",
"count": 1
},
{
"date": "2009-04-13",
"count": 1
},
{
"date": "2009-04-14",
"count": 1
},
{
"date": "2009-04-15",
"count": 2
},
{
"date": "2009-04-16",
"count": 1
},
{
"date": "2009-04-17",
"count": 2
},
{
"date": "2009-04-24",
"count": 1
},
{
"date": "2009-04-28",
"count": 1
},
{
"date": "2009-05-03",
"count": 1
},
{
"date": "2009-05-07",
"count": 1
},
{
"date": "2009-05-15",
"count": 1
},
{
"date": "2009-05-18",
"count": 1
},
{
"date": "2009-05-21",
"count": 1
},
{
"date": "2009-05-24",
"count": 1
},
{
"date": "2009-06-04",
"count": 1
},
{
"date": "2009-06-13",
"count": 1
},
{
"date": "2009-06-15",
"count": 1
},
{
"date": "2009-06-22",
"count": 1
},
{
"date": "2009-06-25",
"count": 1
},
{
"date": "2009-06-26",
"count": 1
},
{
"date": "2009-07-14",
"count": 1
},
{
"date": "2009-07-15",
"count": 2
},
{
"date": "2009-07-22",
"count": 1
},
{
"date": "2009-07-28",
"count": 1
},
{
"date": "2009-07-29",
"count": 2
},
{
"date": "2009-07-31",
"count": 1
},
{
"date": "2009-08-06",
"count": 1
},
{
"date": "2009-08-10",
"count": 1
},
{
"date": "2009-08-14",
"count": 1
},
{
"date": "2009-08-19",
"count": 1
},
{
"date": "2009-08-22",
"count": 1
},
{
"date": "2009-08-24",
"count": 1
},
{
"date": "2009-08-31",
"count": 2
},
{
"date": "2009-09-02",
"count": 1
},
{
"date": "2009-09-03",
"count": 1
},
{
"date": "2009-09-08",
"count": 1
},
{
"date": "2009-09-10",
"count": 1
},
{
"date": "2009-09-12",
"count": 1
},
{
"date": "2009-09-16",
"count": 2
},
{
"date": "2009-09-19",
"count": 1
},
{
"date": "2009-09-21",
"count": 1
},
{
"date": "2009-09-29",
"count": 1
},
{
"date": "2009-10-01",
"count": 1
},
{
"date": "2009-10-03",
"count": 1
},
{
"date": "2009-10-06",
"count": 1
},
{
"date": "2009-10-18",
"count": 1
},
{
"date": "2009-10-21",
"count": 1
},
{
"date": "2009-10-23",
"count": 1
},
{
"date": "2009-11-04",
"count": 1
},
{
"date": "2009-11-14",
"count": 1
},
{
"date": "2009-11-19",
"count": 1
},
{
"date": "2009-11-26",
"count": 1
},
{
"date": "2009-12-01",
"count": 1
},
{
"date": "2009-12-04",
"count": 1
},
{
"date": "2009-12-10",
"count": 1
},
{
"date": "2009-12-11",
"count": 1
},
{
"date": "2009-12-17",
"count": 1
},
{
"date": "2009-12-18",
"count": 2
},
{
"date": "2009-12-20",
"count": 1
},
{
"date": "2009-12-21",
"count": 1
},
{
"date": "2010-01-02",
"count": 1
},
{
"date": "2010-01-07",
"count": 1
},
{
"date": "2010-01-13",
"count": 1
},
{
"date": "2010-01-15",
"count": 1
},
{
"date": "2010-01-27",
"count": 1
},
{
"date": "2010-01-29",
"count": 1
},
{
"date": "2010-01-31",
"count": 1
},
{
"date": "2010-02-01",
"count": 2
},
{
"date": "2010-02-06",
"count": 1
},
{
"date": "2010-02-07",
"count": 1
},
{
"date": "2010-02-09",
"count": 1
},
{
"date": "2010-02-14",
"count": 1
},
{
"date": "2010-02-15",
"count": 1
},
{
"date": "2010-02-19",
"count": 2
},
{
"date": "2010-02-24",
"count": 1
},
{
"date": "2010-02-26",
"count": 1
},
{
"date": "2010-02-28",
"count": 1
},
{
"date": "2010-03-06",
"count": 1
},
{
"date": "2010-03-10",
"count": 1
},
{
"date": "2010-03-11",
"count": 2
},
{
"date": "2010-03-13",
"count": 1
},
{
"date": "2010-03-18",
"count": 1
},
{
"date": "2010-03-20",
"count": 1
},
{
"date": "2010-03-31",
"count": 2
},
{
"date": "2010-04-02",
"count": 1
},
{
"date": "2010-04-06",
"count": 1
},
{
"date": "2010-04-07",
"count": 1
},
{
"date": "2010-04-18",
"count": 1
},
{
"date": "2010-04-19",
"count": 1
},
{
"date": "2010-04-27",
"count": 1
},
{
"date": "2010-05-01",
"count": 1
},
{
"date": "2010-05-02",
"count": 1
},
{
"date": "2010-05-19",
"count": 1
},
{
"date": "2010-05-20",
"count": 1
},
{
"date": "2010-05-28",
"count": 1
},
{
"date": "2010-05-30",
"count": 1
},
{
"date": "2010-06-01",
"count": 1
},
{
"date": "2010-06-27",
"count": 1
},
{
"date": "2010-07-04",
"count": 1
},
{
"date": "2010-07-11",
"count": 1
},
{
"date": "2010-07-15",
"count": 1
},
{
"date": "2010-07-21",
"count": 1
},
{
"date": "2010-07-23",
"count": 1
},
{
"date": "2010-07-24",
"count": 2
},
{
"date": "2010-07-26",
"count": 2
},
{
"date": "2010-07-27",
"count": 1
},
{
"date": "2010-08-06",
"count": 1
},
{
"date": "2010-08-10",
"count": 1
},
{
"date": "2010-08-25",
"count": 1
},
{
"date": "2010-08-28",
"count": 1
},
{
"date": "2010-09-02",
"count": 1
},
{
"date": "2010-09-08",
"count": 1
},
{
"date": "2010-09-12",
"count": 1
},
{
"date": "2010-09-18",
"count": 1
},
{
"date": "2010-09-20",
"count": 1
},
{
"date": "2010-09-27",
"count": 1
},
{
"date": "2010-10-05",
"count": 1
},
{
"date": "2010-10-10",
"count": 1
},
{
"date": "2010-10-15",
"count": 1
},
{
"date": "2010-10-16",
"count": 1
},
{
"date": "2010-10-20",
"count": 1
},
{
"date": "2010-10-21",
"count": 1
},
{
"date": "2010-10-27",
"count": 1
},
{
"date": "2010-10-28",
"count": 1
},
{
"date": "2010-11-01",
"count": 1
},
{
"date": "2010-11-06",
"count": 1
},
{
"date": "2010-11-07",
"count": 1
},
{
"date": "2010-11-10",
"count": 1
},
{
"date": "2010-11-11",
"count": 1
},
{
"date": "2010-12-03",
"count": 1
},
{
"date": "2010-12-09",
"count": 1
},
{
"date": "2010-12-12",
"count": 1
},
{
"date": "2010-12-18",
"count": 1
},
{
"date": "2010-12-22",
"count": 1
},
{
"date": "2010-12-31",
"count": 1
},
{
"date": "2011-01-02",
"count": 1
},
{
"date": "2011-01-17",
"count": 1
},
{
"date": "2011-02-01",
"count": 1
},
{
"date": "2011-02-03",
"count": 1
},
{
"date": "2011-02-07",
"count": 1
},
{
"date": "2011-02-08",
"count": 1
},
{
"date": "2011-02-10",
"count": 1
},
{
"date": "2011-02-11",
"count": 1
},
{
"date": "2011-02-14",
"count": 1
},
{
"date": "2011-02-19",
"count": 1
},
{
"date": "2011-02-21",
"count": 1
},
{
"date": "2011-03-02",
"count": 1
},
{
"date": "2011-03-03",
"count": 1
},
{
"date": "2011-03-09",
"count": 1
},
{
"date": "2011-03-16",
"count": 1
},
{
"date": "2011-03-25",
"count": 1
},
{
"date": "2011-03-27",
"count": 1
},
{
"date": "2011-03-28",
"count": 1
},
{
"date": "2011-03-30",
"count": 1
},
{
"date": "2011-04-06",
"count": 1
},
{
"date": "2011-04-10",
"count": 1
},
{
"date": "2011-04-29",
"count": 1
},
{
"date": "2011-05-07",
"count": 1
},
{
"date": "2011-05-10",
"count": 1
},
{
"date": "2011-05-11",
"count": 1
},
{
"date": "2011-06-18",
"count": 1
},
{
"date": "2011-06-22",
"count": 2
},
{
"date": "2011-06-25",
"count": 1
},
{
"date": "2011-07-02",
"count": 1
},
{
"date": "2011-07-15",
"count": 1
},
{
"date": "2011-07-18",
"count": 1
},
{
"date": "2011-08-12",
"count": 1
},
{
"date": "2011-08-17",
"count": 1
},
{
"date": "2011-08-30",
"count": 1
},
{
"date": "2011-09-01",
"count": 1
},
{
"date": "2011-09-02",
"count": 1
},
{
"date": "2011-10-12",
"count": 1
},
{
"date": "2011-10-15",
"count": 1
},
{
"date": "2011-10-23",
"count": 1
},
{
"date": "2011-11-09",
"count": 2
},
{
"date": "2011-11-23",
"count": 1
},
{
"date": "2011-12-16",
"count": 1
},
{
"date": "2011-12-22",
"count": 1
},
{
"date": "2012-01-06",
"count": 1
},
{
"date": "2012-01-28",
"count": 1
},
{
"date": "2012-03-03",
"count": 1
},
{
"date": "2012-03-17",
"count": 1
},
{
"date": "2012-03-24",
"count": 1
},
{
"date": "2012-04-20",
"count": 1
},
{
"date": "2012-05-27",
"count": 1
},
{
"date": "2012-06-16",
"count": 1
},
{
"date": "2012-06-22",
"count": 1
},
{
"date": "2012-10-07",
"count": 1
},
{
"date": "2013-02-10",
"count": 1
},
{
"date": "2013-02-11",
"count": 1
},
{
"date": "2013-02-12",
"count": 1
},
{
"date": "2013-03-01",
"count": 1
},
{
"date": "2013-03-03",
"count": 2
},
{
"date": "2013-03-10",
"count": 1
},
{
"date": "2013-03-11",
"count": 1
},
{
"date": "2013-03-14",
"count": 1
},
{
"date": "2013-03-18",
"count": 1
},
{
"date": "2013-03-19",
"count": 1
},
{
"date": "2013-03-24",
"count": 1
},
{
"date": "2013-03-26",
"count": 1
},
{
"date": "2013-03-27",
"count": 1
},
{
"date": "2013-04-01",
"count": 1
},
{
"date": "2013-04-03",
"count": 1
},
{
"date": "2013-04-04",
"count": 1
},
{
"date": "2013-04-05",
"count": 1
},
{
"date": "2013-04-09",
"count": 2
},
{
"date": "2013-04-10",
"count": 1
},
{
"date": "2013-04-23",
"count": 1
},
{
"date": "2013-04-26",
"count": 1
},
{
"date": "2013-05-03",
"count": 2
},
{
"date": "2013-05-11",
"count": 1
},
{
"date": "2013-05-15",
"count": 1
},
{
"date": "2013-05-19",
"count": 1
},
{
"date": "2013-05-20",
"count": 1
},
{
"date": "2013-05-21",
"count": 1
},
{
"date": "2013-05-26",
"count": 1
},
{
"date": "2013-05-27",
"count": 1
},
{
"date": "2013-05-28",
"count": 1
},
{
"date": "2013-06-02",
"count": 1
},
{
"date": "2013-06-04",
"count": 2
},
{
"date": "2013-06-07",
"count": 1
},
{
"date": "2013-06-09",
"count": 1
},
{
"date": "2013-06-13",
"count": 2
},
{
"date": "2013-06-18",
"count": 1
},
{
"date": "2013-06-19",
"count": 1
},
{
"date": "2013-06-22",
"count": 1
},
{
"date": "2013-06-24",
"count": 2
},
{
"date": "2013-06-29",
"count": 1
},
{
"date": "2013-06-30",
"count": 1
},
{
"date": "2013-07-06",
"count": 1
},
{
"date": "2013-07-07",
"count": 1
},
{
"date": "2013-07-08",
"count": 1
},
{
"date": "2013-07-12",
"count": 1
},
{
"date": "2013-07-19",
"count": 1
},
{
"date": "2013-07-26",
"count": 1
},
{
"date": "2013-08-05",
"count": 1
},
{
"date": "2013-08-07",
"count": 1
},
{
"date": "2013-08-11",
"count": 1
},
{
"date": "2013-08-15",
"count": 1
},
{
"date": "2013-08-20",
"count": 1
},
{
"date": "2013-09-10",
"count": 2
},
{
"date": "2013-09-12",
"count": 1
},
{
"date": "2013-09-18",
"count": 1
},
{
"date": "2013-09-27",
"count": 2
},
{
"date": "2013-09-29",
"count": 1
},
{
"date": "2013-09-30",
"count": 1
},
{
"date": "2013-10-12",
"count": 1
},
{
"date": "2013-10-16",
"count": 1
},
{
"date": "2013-10-19",
"count": 2
},
{
"date": "2013-10-23",
"count": 1
},
{
"date": "2013-10-27",
"count": 1
},
{
"date": "2013-11-01",
"count": 1
},
{
"date": "2013-11-21",
"count": 1
},
{
"date": "2013-11-24",
"count": 1
},
{
"date": "2013-11-30",
"count": 1
},
{
"date": "2013-12-03",
"count": 1
},
{
"date": "2013-12-09",
"count": 1
},
{
"date": "2013-12-14",
"count": 1
},
{
"date": "2013-12-19",
"count": 1
},
{
"date": "2013-12-23",
"count": 1
},
{
"date": "2013-12-24",
"count": 1
},
{
"date": "2013-12-26",
"count": 2
},
{
"date": "2014-01-10",
"count": 1
},
{
"date": "2014-01-11",
"count": 1
},
{
"date": "2014-01-18",
"count": 1
},
{
"date": "2014-01-21",
"count": 1
},
{
"date": "2014-01-28",
"count": 1
},
{
"date": "2014-01-31",
"count": 1
},
{
"date": "2014-02-05",
"count": 3
},
{
"date": "2014-02-11",
"count": 1
},
{
"date": "2014-02-24",
"count": 1
},
{
"date": "2014-03-09",
"count": 1
},
{
"date": "2014-03-10",
"count": 1
},
{
"date": "2014-03-14",
"count": 1
},
{
"date": "2014-03-15",
"count": 1
},
{
"date": "2014-03-17",
"count": 1
},
{
"date": "2014-03-18",
"count": 1
},
{
"date": "2014-03-22",
"count": 1
},
{
"date": "2014-03-24",
"count": 1
},
{
"date": "2014-03-31",
"count": 1
},
{
"date": "2014-04-11",
"count": 1
},
{
"date": "2014-04-13",
"count": 1
},
{
"date": "2014-04-15",
"count": 1
},
{
"date": "2014-04-16",
"count": 1
},
{
"date": "2014-04-24",
"count": 1
},
{
"date": "2014-04-28",
"count": 1
},
{
"date": "2014-05-05",
"count": 1
},
{
"date": "2014-05-07",
"count": 1
},
{
"date": "2014-05-13",
"count": 2
},
{
"date": "2014-05-14",
"count": 1
},
{
"date": "2014-05-16",
"count": 1
},
{
"date": "2014-06-03",
"count": 1
},
{
"date": "2014-06-05",
"count": 1
},
{
"date": "2014-06-16",
"count": 2
},
{
"date": "2014-06-17",
"count": 2
},
{
"date": "2014-06-19",
"count": 1
},
{
"date": "2014-06-24",
"count": 1
},
{
"date": "2014-06-26",
"count": 1
},
{
"date": "2014-08-05",
"count": 1
},
{
"date": "2014-08-07",
"count": 1
},
{
"date": "2014-08-11",
"count": 1
},
{
"date": "2014-08-17",
"count": 2
},
{
"date": "2014-08-25",
"count": 2
},
{
"date": "2014-08-28",
"count": 1
},
{
"date": "2014-08-31",
"count": 1
},
{
"date": "2014-09-01",
"count": 1
},
{
"date": "2014-09-03",
"count": 1
},
{
"date": "2014-09-08",
"count": 1
},
{
"date": "2014-09-11",
"count": 2
},
{
"date": "2014-09-20",
"count": 1
},
{
"date": "2014-10-07",
"count": 1
},
{
"date": "2014-10-08",
"count": 1
},
{
"date": "2014-10-14",
"count": 1
},
{
"date": "2014-10-17",
"count": 1
},
{
"date": "2014-10-20",
"count": 1
},
{
"date": "2014-10-22",
"count": 1
},
{
"date": "2014-10-23",
"count": 1
},
{
"date": "2014-11-05",
"count": 1
},
{
"date": "2014-11-06",
"count": 1
},
{
"date": "2014-11-11",
"count": 1
},
{
"date": "2014-11-16",
"count": 1
},
{
"date": "2014-12-17",
"count": 1
},
{
"date": "2014-12-23",
"count": 1
},
{
"date": "2014-12-29",
"count": 1
},
{
"date": "2014-12-31",
"count": 1
},
{
"date": "2015-01-11",
"count": 1
},
{
"date": "2015-01-12",
"count": 1
},
{
"date": "2015-01-25",
"count": 1
},
{
"date": "2015-01-29",
"count": 1
},
{
"date": "2015-01-30",
"count": 1
},
{
"date": "2015-02-10",
"count": 1
},
{
"date": "2015-02-24",
"count": 1
},
{
"date": "2015-03-03",
"count": 1
},
{
"date": "2015-03-06",
"count": 1
},
{
"date": "2015-03-22",
"count": 1
},
{
"date": "2015-03-23",
"count": 1
},
{
"date": "2015-04-15",
"count": 1
},
{
"date": "2015-04-22",
"count": 1
},
{
"date": "2015-04-25",
"count": 1
},
{
"date": "2015-04-26",
"count": 1
},
{
"date": "2015-04-28",
"count": 1
},
{
"date": "2015-05-04",
"count": 1
},
{
"date": "2015-05-05",
"count": 1
},
{
"date": "2015-05-13",
"count": 1
},
{
"date": "2015-05-28",
"count": 1
},
{
"date": "2015-06-26",
"count": 1
},
{
"date": "2015-07-06",
"count": 2
},
{
"date": "2015-07-10",
"count": 1
},
{
"date": "2015-07-14",
"count": 1
},
{
"date": "2015-07-28",
"count": 1
},
{
"date": "2015-07-31",
"count": 1
},
{
"date": "2015-08-17",
"count": 1
},
{
"date": "2015-08-23",
"count": 1
},
{
"date": "2015-08-25",
"count": 1
},
{
"date": "2015-08-27",
"count": 1
},
{
"date": "2015-09-01",
"count": 1
},
{
"date": "2015-09-02",
"count": 2
},
{
"date": "2015-09-10",
"count": 1
},
{
"date": "2015-10-05",
"count": 1
},
{
"date": "2015-10-10",
"count": 1
},
{
"date": "2015-10-13",
"count": 1
},
{
"date": "2015-11-04",
"count": 2
},
{
"date": "2015-11-17",
"count": 1
},
{
"date": "2015-12-07",
"count": 1
},
{
"date": "2015-12-18",
"count": 1
},
{
"date": "2015-12-21",
"count": 1
},
{
"date": "2016-01-02",
"count": 1
},
{
"date": "2016-01-06",
"count": 1
},
{
"date": "2016-01-16",
"count": 1
},
{
"date": "2016-01-19",
"count": 1
},
{
"date": "2016-01-21",
"count": 1
},
{
"date": "2016-01-27",
"count": 1
},
{
"date": "2016-01-31",
"count": 2
},
{
"date": "2016-02-02",
"count": 2
},
{
"date": "2016-02-05",
"count": 1
},
{
"date": "2016-02-11",
"count": 1
},
{
"date": "2016-03-24",
"count": 1
},
{
"date": "2016-03-25",
"count": 1
},
{
"date": "2016-04-06",
"count": 1
},
{
"date": "2016-04-13",
"count": 1
},
{
"date": "2016-04-30",
"count": 1
},
{
"date": "2016-05-18",
"count": 1
},
{
"date": "2016-05-28",
"count": 1
},
{
"date": "2016-06-01",
"count": 1
},
{
"date": "2016-06-02",
"count": 2
},
{
"date": "2016-06-10",
"count": 1
},
{
"date": "2016-06-22",
"count": 2
},
{
"date": "2016-07-04",
"count": 1
},
{
"date": "2016-07-11",
"count": 1
},
{
"date": "2016-07-19",
"count": 1
},
{
"date": "2016-07-28",
"count": 1
},
{
"date": "2016-08-11",
"count": 1
},
{
"date": "2016-09-01",
"count": 1
},
{
"date": "2016-09-05",
"count": 1
},
{
"date": "2016-11-19",
"count": 1
},
{
"date": "2016-12-11",
"count": 1
},
{
"date": "2016-12-25",
"count": 2
},
{
"date": "2017-01-20",
"count": 1
},
{
"date": "2017-02-19",
"count": 1
},
{
"date": "2017-03-15",
"count": 1
},
{
"date": "2017-05-25",
"count": 1
},
{
"date": "2017-06-14",
"count": 1
},
{
"date": "2017-06-22",
"count": 1
},
{
"date": "2017-07-04",
"count": 1
},
{
"date": "2017-07-13",
"count": 1
},
{
"date": "2017-07-20",
"count": 1
},
{
"date": "2017-07-30",
"count": 1
},
{
"date": "2017-09-11",
"count": 1
},
{
"date": "2017-09-25",
"count": 1
},
{
"date": "2017-10-01",
"count": 1
},
{
"date": "2017-10-27",
"count": 1
},
{
"date": "2017-11-14",
"count": 1
},
{
"date": "2017-11-28",
"count": 1
},
{
"date": "2018-03-16",
"count": 1
},
{
"date": "2018-03-18",
"count": 1
},
{
"date": "2018-03-26",
"count": 1
},
{
"date": "2018-06-21",
"count": 1
},
{
"date": "2018-10-12",
"count": 1
},
{
"date": "2018-10-21",
"count": 1
},
{
"date": "2019-01-17",
"count": 1
},
{
"date": "2019-02-01",
"count": 1
},
{
"date": "2019-03-27",
"count": 1
},
{
"date": "2019-04-15",
"count": 1
},
{
"date": "2020-02-19",
"count": 1
},
{
"date": "2020-04-30",
"count": 1
},
{
"date": "2020-05-12",
"count": 1
},
{
"date": "2020-05-22",
"count": 1
},
{
"date": "2020-09-11",
"count": 1
},
{
"date": "2020-11-28",
"count": 1
},
{
"date": "2021-11-02",
"count": 1
},
{
"date": "2022-01-29",
"count": 1
},
{
"date": "2022-09-10",
"count": 1
},
{
"date": "2022-11-05",
"count": 1
},
{
"date": "2022-11-07",
"count": 1
},
{
"date": "2022-11-16",
"count": 1
},
{
"date": "2023-03-31",
"count": 1
},
{
"date": "2023-06-19",
"count": 1
},
{
"date": "2023-07-09",
"count": 1
},
{
"date": "2023-12-24",
"count": 1
},
{
"date": "2024-12-19",
"count": 1
},
{
"date": "2024-12-29",
"count": 1
},
{
"date": "2025-02-21",
"count": 1
},
{
"date": "2025-02-22",
"count": 1
},
{
"date": "2025-02-23",
"count": 1
},
{
"date": "2025-04-11",
"count": 1
},
{
"date": "2025-09-01",
"count": 1
}
],
"complete": true,
"collected": 749,
"total_stars": 749
},
"open_issues_and_prs": 3
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [],
"has_llms_txt": false,
"has_dockerfile": false,
"has_mcp_signal": false,
"bootstrap_files": [],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [],
"toolchain_manifests": [],
"largest_source_bytes": 43511,
"source_files_sampled": 40,
"oversized_source_files": 0,
"agent_instruction_files": [
".github/copilot-instructions.md",
"CLAUDE.md"
],
"agent_instruction_max_bytes": 3054
},
"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": 1,
"merged_prs": 19,
"open_issues": 2,
"closed_ratio": 0.984,
"closed_issues": 127,
"closed_unmerged_prs": 12
},
"bus_factor": 2,
"bot_contributors": 0,
"top_contributors": [
{
"type": "User",
"login": "davidfstr",
"commits": 118,
"avatar_url": "https://avatars.githubusercontent.com/u/764688?v=4"
},
{
"type": "User",
"login": "rtomayko",
"commits": 106,
"avatar_url": "https://avatars.githubusercontent.com/u/404?v=4"
},
{
"type": "User",
"login": "fliiiix",
"commits": 18,
"avatar_url": "https://avatars.githubusercontent.com/u/1682954?v=4"
},
{
"type": "User",
"login": "js",
"commits": 6,
"avatar_url": "https://avatars.githubusercontent.com/u/23626?v=4"
},
{
"type": "User",
"login": "pixeltrix",
"commits": 3,
"avatar_url": "https://avatars.githubusercontent.com/u/6321?v=4"
},
{
"type": "User",
"login": "drothlis",
"commits": 3,
"avatar_url": "https://avatars.githubusercontent.com/u/12424?v=4"
},
{
"type": "User",
"login": "nono",
"commits": 2,
"avatar_url": "https://avatars.githubusercontent.com/u/2767?v=4"
},
{
"type": "User",
"login": "maciejtrybilo",
"commits": 2,
"avatar_url": "https://avatars.githubusercontent.com/u/1718852?v=4"
},
{
"type": "User",
"login": "orangejulius",
"commits": 2,
"avatar_url": "https://avatars.githubusercontent.com/u/111716?v=4"
},
{
"type": "User",
"login": "shirosaki",
"commits": 2,
"avatar_url": "https://avatars.githubusercontent.com/u/170831?v=4"
}
],
"contributors_sampled": 29,
"top_contributor_share": 0.418
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"main.yml"
],
"has_docs_dir": false,
"linter_configs": [],
"has_editorconfig": false,
"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": null,
"reason": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": 0,
"reason": "0 out of 3 merged PRs checked by a CI test -- score normalized to 0",
"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": 0,
"reason": "Found 2/23 approved changesets -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 10,
"reason": "project has 8 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": "2 commit(s) and 2 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": "d6465eefd2535b22d9bb3483e5326e16fdb40276",
"ran_at": "2026-07-21T23:33:17Z",
"aggregate_score": 3.8,
"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-04-27T01:15:25Z",
"oldest_open_prs": [
{
"number": 49,
"created_at": "2011-07-13T18:24:47Z",
"last_comment_at": "2026-04-27T01:33:28Z",
"last_comment_author": "davidfstr"
}
],
"last_merged_pr_at": "2023-06-14T12:40:50Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": [
{
"number": 147,
"created_at": "2021-04-22T15:24:38Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 163,
"created_at": "2026-04-27T01:38:49Z",
"last_comment_at": null,
"last_comment_author": null
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/davidfstr/rdiscount",
"host": "github.com",
"name": "rdiscount",
"owner": "davidfstr"
},
"metrics": {
"overall": {
"key": "overall",
"band": "moderate",
"name": "Overall health",
"note": null,
"notes": [],
"value": 53,
"inputs": {
"security": 38,
"vitality": 30,
"community": 66,
"governance": 71,
"engineering": 59
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "at_risk",
"name": "Vitality",
"value": 30,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "at_risk",
"name": "Development activity",
"note": null,
"notes": [],
"value": 34,
"inputs": {
"commits_last_year": 12,
"human_commit_share": 1,
"days_since_last_push": 85,
"active_weeks_last_year": 5
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 85 days ago",
"points": 18,
"status": "partial",
"details": [
{
"code": "push_recency",
"params": {
"days": 85
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "5/52 weeks with commits",
"points": 3.5,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 5
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "12 commits in the last year",
"points": 10,
"status": "partial",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 12
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "2 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 3",
"points": 3,
"status": "partial",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "critical",
"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": 24,
"inputs": {
"releases_count": 16,
"latest_release_tag": "2.2.7",
"releases_from_tags": true,
"days_since_latest_release": 1367,
"mean_days_between_releases": 525.2
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "16 version tags (no GitHub releases)",
"points": 16.2,
"status": "partial",
"details": [
{
"code": "version_tags_no_releases",
"params": {
"count": 16
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 1367 days ago",
"points": 0,
"status": "missed",
"details": [
{
"code": "release_recency",
"params": {
"days": 1367
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~525.2 days",
"points": 5.4,
"status": "partial",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 525.2
}
}
],
"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": 85,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "last human commit 85 days ago",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_maintained",
"params": {
"days": 85
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "moderate",
"name": "Community & Adoption",
"value": 66,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "moderate",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 69,
"inputs": {
"forks": 67,
"stars": 749,
"watchers": 18,
"growth_state": "organic",
"growth_factor_pct": 100
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "749 stars",
"points": 46.6,
"status": "partial",
"details": [
{
"code": "stars",
"params": {
"count": 749
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "67 forks",
"points": 15.2,
"status": "partial",
"details": [
{
"code": "forks",
"params": {
"count": 67
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "18 watchers",
"points": 6.8,
"status": "partial",
"details": [
{
"code": "watchers",
"params": {
"count": 18
}
}
],
"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": 92,
"inputs": {
"packages": [
"rdiscount"
],
"dependents": null,
"ecosystems": "rubygems",
"total_downloads": 13110505,
"monthly_downloads": null
},
"components": [
{
"key": "total_downloads",
"name": "Total downloads",
"detail": "13,110,505 downloads all-time across rubygems",
"points": 74,
"status": "partial",
"details": [
{
"code": "downloads_total",
"params": {
"count": 13110505,
"ecosystems": "rubygems"
}
}
],
"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": "good",
"name": "Sustainability & Governance",
"value": 71,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "moderate",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 62,
"inputs": {
"bus_factor": 2,
"contributors_sampled": 29,
"top_contributor_share": 0.418
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "2 contributor(s) cover half of all commits",
"points": 25.2,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 2
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 42% of commits",
"points": 13.1,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 42
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "29 contributors",
"points": 13.5,
"status": "met",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 29
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 8 contributing companies or organizations",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "moderate",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 69,
"inputs": {
"merged_prs": 19,
"open_issues": 2,
"closed_issues": 127,
"issue_closed_ratio": 0.984,
"closed_unmerged_prs": 12
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "98% of issues closed",
"points": 46,
"status": "partial",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 98
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "19/31 decided PRs merged",
"points": 23.4,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 19,
"decided": 31
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 2/23 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "moderate",
"name": "Ownership & stewardship",
"note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"verified_domain"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 62,
"inputs": {
"followers": 103,
"owner_type": "User",
"is_verified": null,
"owner_login": "davidfstr",
"public_repos": 90,
"account_age_days": 5558
},
"components": [
{
"key": "ownership_backing",
"name": "Ownership backing",
"detail": "personal (user) account",
"points": 10,
"status": "partial",
"details": [
{
"code": "owner_personal",
"params": {}
}
],
"max_points": 30
},
{
"key": "verified_domain",
"name": "Verified domain",
"detail": "not applicable to user accounts",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_applicable_to_user_accounts",
"params": {}
}
],
"max_points": 20
},
{
"key": "owner_reach",
"name": "Owner reach",
"detail": "103 followers of davidfstr",
"points": 14.5,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 103,
"login": "davidfstr"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "90 public repos, account ~15 yr old",
"points": 25,
"status": "met",
"details": [
{
"code": "public_repos",
"params": {
"count": 90
}
},
{
"code": "account_age_years",
"params": {
"years": 15
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"rdiscount"
],
"ecosystems": "rubygems",
"any_deprecated": false,
"min_days_since_publish": 85
},
"components": [
{
"key": "published_resolvable",
"name": "Published & resolvable",
"detail": "1 package(s) on rubygems",
"points": 25,
"status": "met",
"details": [
{
"code": "packages_published",
"params": {
"count": 1,
"ecosystems": "rubygems"
}
}
],
"max_points": 25
},
{
"key": "publish_recency",
"name": "Publish recency",
"detail": "latest publish 85 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 85
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "35 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 35
}
}
],
"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": 59,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "at_risk",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 48,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "1 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 1
}
}
],
"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": 0,
"status": "missed",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "0 out of 3 merged PRs checked by a CI test -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "good",
"name": "Documentation",
"note": null,
"notes": [],
"value": 75,
"inputs": {
"topics": [
"markdown",
"markdown-parser"
],
"has_wiki": true,
"homepage": "http://dafoster.net/projects/rdiscount/",
"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": "http://dafoster.net/projects/rdiscount/",
"points": 15,
"status": "met",
"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": "2 topics",
"points": 10,
"status": "met",
"details": [
{
"code": "topics_count",
"params": {
"count": 2
}
}
],
"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": 38,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "at_risk",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): Branch-Protection, Packaging, Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"branch_protection",
"packaging",
"signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 38,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 15,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 3,
"scorecard_aggregate": 3.8
},
"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": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "0 out of 3 merged PRs checked by a CI test -- score normalized to 0",
"points": 0,
"status": "missed",
"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 2/23 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 8 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": "2 commit(s) and 2 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": "excellent",
"name": "High-Risk Jurisdiction Exposure",
"note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
"notes": [
{
"code": "jurisdiction_evidence_limits",
"params": {}
}
],
"value": 100,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": false,
"exposures": [],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"review_only_matches": 0,
"assessed_self_published_locations": 17
},
"components": [
{
"key": "policy_exposure_multiplier",
"name": "Policy exposure multiplier",
"detail": "no confirmed policy-scope location match",
"points": 100,
"status": "met",
"details": [
{
"code": "jurisdiction_no_match",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
},
{
"key": "ai_readiness",
"band": "moderate",
"name": "AI Readiness",
"value": 55,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "moderate",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 60,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.28,
"agent_instruction_files": [
".github/copilot-instructions.md",
"CLAUDE.md"
],
"agent_instruction_max_bytes": 3054
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": ".github/copilot-instructions.md, CLAUDE.md",
"points": 45,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".github/copilot-instructions.md, CLAUDE.md"
}
}
],
"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": "28 of 100 human commits state their intent (structured subject or explanatory body)",
"points": 14.9,
"status": "partial",
"details": [
{
"code": "legible_history",
"params": {
"legible": 28,
"sampled": 100
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "at_risk",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 35,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [],
"has_dockerfile": false,
"typed_language": true,
"bootstrap_files": [],
"has_devcontainer": false,
"has_linter_config": false,
"typecheck_configs": [],
"agent_commit_share": 0.01,
"toolchain_manifests": [],
"dependency_bot_commit_share": 0
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"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": "C (statically typed)",
"points": 11,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "C"
}
}
],
"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": "1 of the last 100 commits agent-authored or agent-credited",
"points": 2,
"status": "partial",
"details": [
{
"code": "agent_authored_commits",
"params": {
"count": 1,
"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": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"primary_language": "C",
"largest_source_bytes": 43511,
"source_files_sampled": 40,
"oversized_source_files": 0
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "C (statically typed)",
"points": 45,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "C"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "0/40 source files over 60KB",
"points": 55,
"status": "met",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 40,
"oversized": 0
}
}
],
"max_points": 55
}
]
}
],
"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-21T23:33:38.072326Z",
"schema_version": "0.26.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/d/davidfstr/rdiscount.svg",
"full_name": "davidfstr/rdiscount",
"license_state": "custom",
"license_spdx": null
}