, so it'd match the first line of the error\nmessage always.", "is_bot": false, "headline": "Avoid creating multiple regexp objects", "author_name": "Carlos Antonio da Silva", "author_login": "carlosantoniodasilva", "committed_at": "2024-05-24T14:41:26Z", "body_truncated": true, "is_coding_agent": false }, { "oid": "ae12516978a07b75bb3f929829170b7f5716f53c", "body": "This reverts commit b6ae67d28599b3c676b670e23e478063aba14cf6, reversing\nchanges made to 0ef4a58daae41ab091d25ac1dc3fb4ede35743b1.\n\nThis caused custom inputs to not load properly on non-eager load\nenvironments like dev/test, because those constants may not have been\ndefined yet.\n\nThe previous code would try to constantize them and force-load the\nlazily-loaded files/constants, the new code breaks that behavior, so\nwe're reverting.\n\nCloses #1824, see for more info.", "is_bot": false, "headline": "Revert \"Merge pull request #1810 from meanphil/mappings-slow-exception\"", "author_name": "Carlos Antonio da Silva", "author_login": "carlosantoniodasilva", "committed_at": "2024-05-14T21:37:31Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "4387c28361c38561fd6a7fec91be1f34950e2182", "body": null, "is_bot": false, "headline": "Improve docs on Non Active Record", "author_name": "Abinoam P. Marques Jr", "author_login": "abinoam", "committed_at": "2024-04-14T23:58:00Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "bad4ce04c4a9cc6e54b148620045ee8a4ba652db", "body": null, "is_bot": false, "headline": "Bump year [ci skip]", "author_name": "Carlos Antonio da Silva", "author_login": "carlosantoniodasilva", "committed_at": "2024-04-09T19:57:09Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "5103d7d1c68f8c169c8d159a40742edd27eeea85", "body": "Rails main changed `object` to be `false` instead of `nil`, causing the\nspecific check we were doing for `object.nil?` to fail, and the custom\nerrors were not displaying for forms without an object. Our test suite\ncaught that, and the fix is to simply not check specifically for `nil?`,\nbut just whet\n[…]\nity, probably not something worth\nchanging the framework for, but one worth mentioning.\n\nSource is likely to be:\n- https://github.com/rails/rails/pull/49943\n- https://github.com/rails/rails/pull/50931", "is_bot": false, "headline": "Fix error component without object on Rails main to display properly", "author_name": "Carlos Antonio da Silva", "author_login": "carlosantoniodasilva", "committed_at": "2024-04-09T19:33:45Z", "body_truncated": true, "is_coding_agent": false }, { "oid": "416894aab486fd7bf51e6e24738795fb439165f9", "body": null, "is_bot": false, "headline": "No need to `send` anymore, `include` is public", "author_name": "Carlos Antonio da Silva", "author_login": "carlosantoniodasilva", "committed_at": "2024-04-09T19:30:20Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "24c5cd46cc4e9855bc8978b703b6cb63536ad60a", "body": "Exclude previous Ruby versions from running against Rails main, since it\nonly supports Ruby 3.1+ now.", "is_bot": false, "headline": "Add support to Ruby 3.3 (no changes required)", "author_name": "Carlos Antonio da Silva", "author_login": "carlosantoniodasilva", "committed_at": "2024-04-09T18:12:56Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "ae5fd7cb876086674e1b82f63ac0e6850b5fb276", "body": "Note that we need to keep Nokogiri on v1.15.6 and Bundler on v2.4.22 due\nto Ruby 2.7 compatibility for now.\n\nWe also need to lock country_select on v8.x since v9.x will load\ncountries v6, which does not support Ruby 2.7 anymore either.\n\n(soon we'll have to drop it too apparently!)", "is_bot": false, "headline": "Run tests with latest gems, specifically country_select v9.0.0", "author_name": "Carlos Antonio da Silva", "author_login": "carlosantoniodasilva", "committed_at": "2024-04-09T18:12:23Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "3a2fa07ecc1d33daf5ae0e8812eb982d8fc822aa", "body": null, "is_bot": false, "headline": "Fix encrypted attributes improperly casted", "author_name": "Michaël Villeneuve", "author_login": "Michaelvilleneuve", "committed_at": "2024-03-07T10:39:35Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "8f77f598b32ed11b0d56c44481607a6e911bcecb", "body": null, "is_bot": false, "headline": "Release v5.3.0", "author_name": "Carlos Antonio da Silva", "author_login": "carlosantoniodasilva", "committed_at": "2023-10-11T22:05:21Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "bf1013ac46987adf3163db523f403861ca3f9bf2", "body": "Rails 7.1", "is_bot": false, "headline": "Merge pull request #1821 from heartcombo/ca/rails-71", "author_name": "Carlos Antonio da Silva", "author_login": "carlosantoniodasilva", "committed_at": "2023-10-11T11:15:03Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "1c27ae66e4f4a1b718d5ba70da68a30cce287d56", "body": null, "is_bot": false, "headline": "Update changelog with Rails 7.1 mention [ci skip]", "author_name": "Carlos Antonio da Silva", "author_login": "carlosantoniodasilva", "committed_at": "2023-10-10T22:49:15Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "80915d5c263b49c961c32cc3e6e7b859a031d44b", "body": "Rails 7.1 is deprecating the `ActiveSupport::Deprecation.instance` usage\nin favor of defining library-specific deprecators, this implements one\nfor SimpleForm going forward.", "is_bot": false, "headline": "Add a custom deprecator to SimpleForm", "author_name": "Carlos Antonio da Silva", "author_login": "carlosantoniodasilva", "committed_at": "2023-10-10T22:47:06Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "9a76a4ed5de15f5668a2cd8c85efc58e99520b33", "body": null, "is_bot": false, "headline": "Test with Rails 7.1 by default, create new Gemfile for 7.0", "author_name": "Carlos Antonio da Silva", "author_login": "carlosantoniodasilva", "committed_at": "2023-10-10T21:54:57Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "b9ba1ceeb59fd0ed7de4289db1380b52f36745e6", "body": "Update MiniTest => Minitest constant reference.\n\n`rails-dom-testing` changed the `NO_STRIP` constant around, update the\ncode that references it via `ActionDispatch::Assertions` (because it was\nincluded there) to point to the lib directly, making it more explicit.", "is_bot": false, "headline": "Update dependencies and fix tests with the latest", "author_name": "Carlos Antonio da Silva", "author_login": "carlosantoniodasilva", "committed_at": "2023-10-10T21:50:32Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "1d9890e82af1b3d32c030f9ebb6b181eafe7f859", "body": null, "is_bot": false, "headline": "pass base object to human_attribute_name in labels", "author_name": "Tom Rothe", "author_login": "motine", "committed_at": "2023-03-01T08:02:07Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "921ce9c3fc100e1737125ba1b5a2037c03f2de1b", "body": null, "is_bot": false, "headline": "Remove extraneous explicit return", "author_name": "Carlos Antonio da Silva", "author_login": "carlosantoniodasilva", "committed_at": "2023-02-20T14:37:32Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "f46628bd5c23cc32bc77fb57f2c9ea2ee9e3f6a5", "body": null, "is_bot": false, "headline": "Add changelog entry for #1810 [ci skip]", "author_name": "Carlos Antonio da Silva", "author_login": "carlosantoniodasilva", "committed_at": "2023-02-20T14:37:32Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "b6ae67d28599b3c676b670e23e478063aba14cf6", "body": "Speed up nested #simple_fields_for usage by a considerable amount\r\n\r\nCloses #1725 \r\nCloses #1791 \r\nCloses #1790", "is_bot": false, "headline": "Merge pull request #1810 from meanphil/mappings-slow-exception", "author_name": "Carlos Antonio da Silva", "author_login": "carlosantoniodasilva", "committed_at": "2023-02-20T14:31:32Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "ff3903fe9346199e39538a39ea4e5a5694e31541", "body": "Exceptions are slow due to generating backtraces - and then when other\ndebugging gems (such as did_you mean, which are included with\nRuby and Rails these days) get involved it resulted in excessive Object\nallocation.", "is_bot": false, "headline": "Speed up nested #simple_fields_for usage by a considerable amount", "author_name": "Phil Murray", "author_login": "meanphil", "committed_at": "2023-02-20T02:24:43Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "0ef4a58daae41ab091d25ac1dc3fb4ede35743b1", "body": null, "is_bot": false, "headline": "Update copyright year [ci skip]", "author_name": "Carlos Antonio da Silva", "author_login": "carlosantoniodasilva", "committed_at": "2023-02-16T12:10:18Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "159b70aea62443aeb0e32382de3095bcb571ee0e", "body": null, "is_bot": false, "headline": "Add changelog for #1809 [ci skip]", "author_name": "Carlos Antonio da Silva", "author_login": "carlosantoniodasilva", "committed_at": "2023-02-04T12:39:09Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "573ee5eeb700fb321ca08054659e56edf0970d8c", "body": "Remove test files from the gem package", "is_bot": false, "headline": "Merge pull request #1809 from orien/reduce-gem-contents", "author_name": "Carlos Antonio da Silva", "author_login": "carlosantoniodasilva", "committed_at": "2023-02-04T12:37:47Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "ecf5239303af7fc281509f4d58253bd6c8e49521", "body": "There are several files in the gem package that aren't useful for\ndownstream projects. Removing these reduces the gem package size from\n83K to 50K!", "is_bot": false, "headline": "Remove test files from the gem package", "author_name": "Orien Madgwick", "author_login": "orien", "committed_at": "2023-02-04T01:22:22Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "08fb6ea095a0db5823c672d991609418a700308f", "body": "It's not working right now, and we haven't used it in like forever\nto drive anything.\n\n[ci skip]", "is_bot": false, "headline": "Remove CodeClimate badge", "author_name": "Carlos Antonio da Silva", "author_login": "carlosantoniodasilva", "committed_at": "2023-02-03T14:49:26Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "d17d97f32c3b0020cfc080344bffb29bac49d091", "body": "Ref: #1808 [ci skip]", "is_bot": false, "headline": "Point to `main` branch instead of old `master`", "author_name": "Carlos Antonio da Silva", "author_login": "carlosantoniodasilva", "committed_at": "2023-01-30T16:44:07Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "485175830ce36a9b5b431f3ad16730a2a5211c7b", "body": null, "is_bot": false, "headline": "Release v5.2.0", "author_name": "Carlos Antonio da Silva", "author_login": "carlosantoniodasilva", "committed_at": "2023-01-29T13:23:28Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "ad1bb2ef24fc1a90459e7c4c18821edb38c57c2d", "body": "This combination should work fine. Also reorganize the exclusion list of\nbuilds a bit.", "is_bot": false, "headline": "Run the build with Ruby 3.2 + Rails 6.1, update changelog", "author_name": "Carlos Antonio da Silva", "author_login": "carlosantoniodasilva", "committed_at": "2023-01-16T20:25:32Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "edf540f3d14d4999d33ba69bda452da417e2cc15", "body": null, "is_bot": false, "headline": "Bundle update", "author_name": "Carlos Antonio da Silva", "author_login": "carlosantoniodasilva", "committed_at": "2023-01-16T20:10:27Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "341e36c087d78e0d5dbf768652e54cc42663f055", "body": "Adds Ruby 3.2 to the CI matrix", "is_bot": false, "headline": "Merge pull request #1802 from petergoldstein/feature/add_ruby_3_2_to_ci", "author_name": "Vasiliy Ermolovich", "author_login": "nashby", "committed_at": "2022-12-30T08:02:49Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "9b879ccb84c3a7d6d4224046fd94f6ef72203c7d", "body": null, "is_bot": false, "headline": "Adds Ruby 3.2 to the CI matrix. Updates checkout action version.", "author_name": "Peter Goldstein", "author_login": "petergoldstein", "committed_at": "2022-12-29T21:20:55Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "7790db2ea26c94a6c1a473a91d1001655de7b585", "body": "Split country and timezone inputs to fix deprecated way of passing priority countries to country input.", "is_bot": false, "headline": "Merge pull request #1782 from heartcombo/country-timezone-split", "author_name": "Vasiliy Ermolovich", "author_login": "nashby", "committed_at": "2022-12-29T21:13:48Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "b472e19b5d344405e224d7ec6264a2d4793c54e1", "body": "See https://github.com/rails/rails/commit/4e8e82829182cc2c1dc07997acc210bc0656eda4", "is_bot": false, "headline": "ActionView::OutputBuffer doesn't have #replace method anymore.", "author_name": "Vasiliy Ermolovich", "author_login": "nashby", "committed_at": "2022-09-24T08:19:38Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "2b77e9cb000cf9c2aec2b7c67247f52384f3cb08", "body": null, "is_bot": false, "headline": "Specify main branch for Rails edge.", "author_name": "Vasiliy Ermolovich", "author_login": "nashby", "committed_at": "2022-09-24T08:18:47Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "f38c6a1d3acca8e3b5bd650fd92a6466d468eb71", "body": "…iority countries to country input.\n\nIt still uses SimpleForm's PriorityInput for backward compatibility.", "is_bot": false, "headline": "Split country and timezone inputs to fix deprecated way of passing pr…", "author_name": "Vasiliy Ermolovich", "author_login": "nashby", "committed_at": "2022-09-23T15:53:31Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "31fe25504771bd6cd425b585a4e0ed652fba4521", "body": "Fix broken Rubydoc links in README.md", "is_bot": false, "headline": "Merge pull request #1785 from Mir0ff944/mi-readme-rubydoc-url-fix", "author_name": "Vasiliy Ermolovich", "author_login": "nashby", "committed_at": "2022-07-18T14:15:33Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "95a8dba2bf1d1692a04d8b44ee034c95bef1840f", "body": "Use the correct default branch on Rubydoc links.", "is_bot": false, "headline": "Fix broken Rubydoc links in README.md", "author_name": "Miroslav Ivanov", "author_login": "Mir0ff944", "committed_at": "2022-07-16T23:52:24Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "8b8cea1dbd85be82876c612a020a1522b7c9941f", "body": null, "is_bot": false, "headline": "Update CHANGELOG.md", "author_name": "Vasiliy Ermolovich", "author_login": "nashby", "committed_at": "2022-07-13T17:36:01Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "486ff139b6d74f4a7672717022e980bd0357eb97", "body": "Honor `include_hidden` on inline boolean inputs", "is_bot": false, "headline": "Merge pull request #1772 from yboulkaid/main", "author_name": "Vasiliy Ermolovich", "author_login": "nashby", "committed_at": "2022-07-13T17:33:29Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "cf743e7e834dcfe39a3e9485ee44b86b4868d98b", "body": "Revise unchecked docs", "is_bot": false, "headline": "Merge pull request #1784 from paulcc/revise-unchecked-docs", "author_name": "Vasiliy Ermolovich", "author_login": "nashby", "committed_at": "2022-07-12T18:51:48Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "4338d45c2dd259226456efe0082370b75b7f011c", "body": null, "is_bot": false, "headline": "Add clarification re. hidden field and give example of include_hidden:", "author_name": "Paul Callaghan", "author_login": "paulcc", "committed_at": "2022-07-12T11:20:24Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "c3060bd8f8675f543371a910d9451aefa4ab5961", "body": "…ission of hidden field", "is_bot": false, "headline": "Use strings in checked/unchecked examples, to avoid confusion with om…", "author_name": "Paul Callaghan", "author_login": "paulcc", "committed_at": "2022-07-12T11:20:24Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "39787221d97fd21bb372c7cb7822d25e787c4e8f", "body": "…p-method-proc\n\nAllow proc as group_method for grouped collection select", "is_bot": false, "headline": "Merge pull request #1775 from cgunther/grouped-collection-select-grou…", "author_name": "Vasiliy Ermolovich", "author_login": "nashby", "committed_at": "2022-07-08T16:05:33Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "adea6b557c9879daa4c0639dd6f873f872f8e173", "body": "Since Rails v5.2, the group method could be a callable object.", "is_bot": false, "headline": "Allow proc as group_method for grouped collection select", "author_name": "Chris Gunther", "author_login": "cgunther", "committed_at": "2022-06-09T15:43:27Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "27e510280897b005011600f83597b9849ccc2a6b", "body": null, "is_bot": false, "headline": "Honor `include_hidden` on inline boolean inputs", "author_name": "Youssef Boulkaid", "author_login": "yboulkaid", "committed_at": "2022-05-10T18:55:40Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "23205201a935c7e52c39549756e2ec2e2ec47793", "body": null, "is_bot": false, "headline": "Merge pull request #1771 from sajadtorkamani/patch-1", "author_name": "Carlos Antonio da Silva", "author_login": "carlosantoniodasilva", "committed_at": "2022-04-23T11:41:35Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "ee134f87b5c76ddcacaa9c2b36131eeb1d42c90d", "body": null, "is_bot": false, "headline": "Fix anchor link to Bootstrap", "author_name": "Sajad Torkamani", "author_login": "sajadtorkamani", "committed_at": "2022-04-23T10:56:04Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "60f73d2424a6c53beea77b0779d910768d4fb055", "body": "Only call where if needed", "is_bot": false, "headline": "Merge pull request #1765 from asgerb/where-patch", "author_name": "Vasiliy Ermolovich", "author_login": "nashby", "committed_at": "2022-03-31T14:56:59Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "e2e4dd30d27c30aa1dc17966763e4beac6cb39cc", "body": null, "is_bot": false, "headline": "Only call `where` if needed", "author_name": "asgerb", "author_login": "asgerb", "committed_at": "2022-03-11T10:08:44Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "159f4015973c5f57b05253308bbaedc238dbbe07", "body": "Update bootstrap initializer banner", "is_bot": false, "headline": "Merge pull request #1764 from m5o/bootstrap-banner-info", "author_name": "Carlos Antonio da Silva", "author_login": "carlosantoniodasilva", "committed_at": "2022-03-09T17:09:50Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "e277227123f6c51ce0c7337346a70a601839a804", "body": "* remove a misleading sentence\n * `Please do not make direct changes to this file!`\n* 💭 prep & discussion:\n * https://github.com/heartcombo/simple_form-bootstrap/pull/359\n\nfixes #1756\n\n/cc @carlosantoniodasilva @collimarco", "is_bot": false, "headline": "Update bootstrap initializer banner", "author_name": "m5o", "author_login": "m5o", "committed_at": "2022-03-09T17:06:51Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "9159ee109a858dca23bca6d7c013a5216ff402c3", "body": null, "is_bot": false, "headline": "Update CHANGELOG.md", "author_name": "Vasiliy Ermolovich", "author_login": "nashby", "committed_at": "2022-03-07T12:48:41Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "1535f3236773757bc1702d6cdb0f08a565f81e9f", "body": "Update install generator for Bootstrap 5", "is_bot": false, "headline": "Merge pull request #1738 from mhw/bootstrap-5", "author_name": "Vasiliy Ermolovich", "author_login": "nashby", "committed_at": "2022-03-07T12:46:59Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "3238067743729ae294850693ecdb0fd6475940d4", "body": null, "is_bot": false, "headline": "Add changelog entry for #1703 [ci skip]", "author_name": "Carlos Antonio da Silva", "author_login": "carlosantoniodasilva", "committed_at": "2022-02-25T17:37:01Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "8c45bf1a0ce7dcb0bb380f8a13c858ca58c6c5d6", "body": "* Rails and Ruby versions follow the most recent to oldest, except for\n Rails main, so we can keep the Gemfile the first one.\n* Excluding specific matrix combinations based on the Gemfile first,\n Ruby version next, and keep the same order (most recent -> oldest)\n* Quote all Ruby versions to keep t\n[…]\n0' version to avoid the float issue where it'd use the latest\n 3.x instead.\n* Test Rails 6.1 with Ruby 3.1, as Rails test suite supports it.\n\nAlso update Changelog with the 3.1 Ruby support addition.", "is_bot": false, "headline": "Reorganize test matrix & use latest bundler", "author_name": "Carlos Antonio da Silva", "author_login": "carlosantoniodasilva", "committed_at": "2022-02-25T16:40:55Z", "body_truncated": true, "is_coding_agent": false } ], "releases_count": 14, "commits_last_year": 30, "latest_release_at": "2026-01-05T13:07:49Z", "latest_release_tag": "v5.4.1", "releases_from_tags": false, "days_since_last_push": 111, "active_weeks_last_year": 11, "days_since_latest_release": 197, "mean_days_between_releases": 309.8 }, "community": { "has_readme": true, "has_license": true, "has_description": true, "has_contributing": true, "health_percentage": 50, "has_issue_template": true, "has_code_of_conduct": false, "has_pull_request_template": false }, "ecosystem": { "packages": [ { "name": "simple_form", "exists": true, "license": "MIT", "keywords": [], "ecosystem": "rubygems", "matches_repo": true, "registry_url": "https://rubygems.org/gems/simple_form", "is_deprecated": false, "latest_version": "5.4.1", "repository_url": "https://github.com/heartcombo/simple_form", "versions_count": 63, "total_downloads": 95931058, "dependents_count": null, "deprecation_note": null, "maintainers_count": null, "monthly_downloads": null, "first_published_at": "2009-11-09T16:13:30.227000Z", "latest_published_at": "2026-01-05T13:07:06.117000Z", "latest_version_yanked": null, "days_since_latest_publish": 197 } ] }, "popularity": { "forks": 1298, "stars": 8231, "watchers": 150, "fork_history": { "days": [ { "date": "2012-12-27", "count": 1 }, { "date": "2012-12-28", "count": 2 }, { "date": "2013-01-03", "count": 1 }, { "date": "2013-01-14", "count": 1 }, { "date": "2013-01-17", "count": 2 }, { "date": "2013-01-24", "count": 1 }, { "date": "2013-01-26", "count": 2 }, { "date": "2013-01-28", "count": 1 }, { "date": "2013-01-29", "count": 1 }, { "date": "2013-02-05", "count": 1 }, { "date": "2013-02-12", "count": 1 }, { "date": "2013-02-26", "count": 3 }, { "date": "2013-03-01", "count": 1 }, { "date": "2013-03-04", "count": 1 }, { "date": "2013-03-06", "count": 2 }, { "date": "2013-03-07", "count": 1 }, { "date": "2013-03-09", "count": 1 }, { "date": "2013-03-11", "count": 1 }, { "date": "2013-03-12", "count": 2 }, { "date": "2013-03-16", "count": 1 }, { "date": "2013-03-17", "count": 1 }, { "date": "2013-03-18", "count": 1 }, { "date": "2013-03-19", "count": 3 }, { "date": "2013-03-20", "count": 2 }, { "date": "2013-03-21", "count": 2 }, { "date": "2013-03-23", "count": 1 }, { "date": "2013-03-27", "count": 2 }, { "date": "2013-03-29", "count": 1 }, { "date": "2013-04-04", "count": 1 }, { "date": "2013-04-07", "count": 1 }, { "date": "2013-04-08", "count": 1 }, { "date": "2013-04-09", "count": 1 }, { "date": "2013-04-12", "count": 1 }, { "date": "2013-04-13", "count": 1 }, { "date": "2013-04-17", "count": 1 }, { "date": "2013-04-18", "count": 1 }, { "date": "2013-04-23", "count": 1 }, { "date": "2013-04-24", "count": 1 }, { "date": "2013-04-29", "count": 1 }, { "date": "2013-05-01", "count": 1 }, { "date": "2013-05-02", "count": 1 }, { "date": "2013-05-03", "count": 2 }, { "date": "2013-05-05", "count": 1 }, { "date": "2013-05-17", "count": 2 }, { "date": "2013-05-21", "count": 1 }, { "date": "2013-05-31", "count": 3 }, { "date": "2013-06-02", "count": 1 }, { "date": "2013-06-04", "count": 1 }, { "date": "2013-06-05", "count": 2 }, { "date": "2013-06-12", "count": 1 }, { "date": "2013-06-13", "count": 1 }, { "date": "2013-06-15", "count": 1 }, { "date": "2013-06-17", "count": 1 }, { "date": "2013-06-18", "count": 1 }, { "date": "2013-06-19", "count": 1 }, { "date": "2013-06-20", "count": 2 }, { "date": "2013-06-25", "count": 2 }, { "date": "2013-06-26", "count": 1 }, { "date": "2013-06-27", "count": 1 }, { "date": "2013-06-28", "count": 1 }, { "date": "2013-07-03", "count": 1 }, { "date": "2013-07-05", "count": 1 }, { "date": "2013-07-10", "count": 1 }, { "date": "2013-07-15", "count": 1 }, { "date": "2013-07-16", "count": 1 }, { "date": "2013-07-18", "count": 1 }, { "date": "2013-07-19", "count": 1 }, { "date": "2013-07-22", "count": 2 }, { "date": "2013-07-26", "count": 2 }, { "date": "2013-07-29", "count": 3 }, { "date": "2013-07-30", "count": 1 }, { "date": "2013-07-31", "count": 2 }, { "date": "2013-08-07", "count": 1 }, { "date": "2013-08-09", "count": 2 }, { "date": "2013-08-12", "count": 1 }, { "date": "2013-08-15", "count": 1 }, { "date": "2013-08-18", "count": 1 }, { "date": "2013-08-20", "count": 1 }, { "date": "2013-08-21", "count": 3 }, { "date": "2013-08-22", "count": 2 }, { "date": "2013-08-24", "count": 1 }, { "date": "2013-08-26", "count": 2 }, { "date": "2013-08-28", "count": 1 }, { "date": "2013-09-01", "count": 1 }, { "date": "2013-09-04", "count": 1 }, { "date": "2013-09-05", "count": 1 }, { "date": "2013-09-06", "count": 2 }, { "date": "2013-09-10", "count": 1 }, { "date": "2013-09-11", "count": 1 }, { "date": "2013-09-12", "count": 2 }, { "date": "2013-09-16", "count": 2 }, { "date": "2013-09-19", "count": 1 }, { "date": "2013-09-24", "count": 2 }, { "date": "2013-09-27", "count": 1 }, { "date": "2013-09-28", "count": 1 }, { "date": "2013-09-30", "count": 2 }, { "date": "2013-10-01", "count": 1 }, { "date": "2013-10-03", "count": 1 }, { "date": "2013-10-04", "count": 1 }, { "date": "2013-10-07", "count": 3 }, { "date": "2013-10-08", "count": 1 }, { "date": "2013-10-16", "count": 1 }, { "date": "2013-10-17", "count": 3 }, { "date": "2013-10-18", "count": 1 }, { "date": "2013-10-22", "count": 1 }, { "date": "2013-10-25", "count": 1 }, { "date": "2013-10-28", "count": 2 }, { "date": "2013-10-30", "count": 1 }, { "date": "2013-11-05", "count": 2 }, { "date": "2013-11-06", "count": 1 }, { "date": "2013-11-08", "count": 3 }, { "date": "2013-11-09", "count": 1 }, { "date": "2013-11-11", "count": 1 }, { "date": "2013-11-12", "count": 2 }, { "date": "2013-11-15", "count": 1 }, { "date": "2013-11-21", "count": 1 }, { "date": "2013-11-25", "count": 1 }, { "date": "2013-11-26", "count": 2 }, { "date": "2013-11-28", "count": 1 }, { "date": "2013-12-03", "count": 1 }, { "date": "2013-12-04", "count": 1 }, { "date": "2013-12-06", "count": 2 }, { "date": "2013-12-11", "count": 2 }, { "date": "2013-12-12", "count": 1 }, { "date": "2013-12-29", "count": 1 }, { "date": "2013-12-31", "count": 1 }, { "date": "2014-01-07", "count": 1 }, { "date": "2014-01-09", "count": 1 }, { "date": "2014-01-10", "count": 2 }, { "date": "2014-01-11", "count": 1 }, { "date": "2014-01-12", "count": 1 }, { "date": "2014-01-14", "count": 1 }, { "date": "2014-01-16", "count": 1 }, { "date": "2014-01-19", "count": 2 }, { "date": "2014-01-20", "count": 2 }, { "date": "2014-01-21", "count": 1 }, { "date": "2014-01-26", "count": 3 }, { "date": "2014-01-28", "count": 1 }, { "date": "2014-02-02", "count": 1 }, { "date": "2014-02-04", "count": 1 }, { "date": "2014-02-05", "count": 1 }, { "date": "2014-02-09", "count": 1 }, { "date": "2014-02-12", "count": 2 }, { "date": "2014-02-13", "count": 1 }, { "date": "2014-02-14", "count": 1 }, { "date": "2014-02-16", "count": 1 }, { "date": "2014-02-19", "count": 1 }, { "date": "2014-02-21", "count": 1 }, { "date": "2014-02-25", "count": 1 }, { "date": "2014-02-28", "count": 1 }, { "date": "2014-03-05", "count": 1 }, { "date": "2014-03-06", "count": 1 }, { "date": "2014-03-08", "count": 1 }, { "date": "2014-03-11", "count": 1 }, { "date": "2014-03-14", "count": 1 }, { "date": "2014-03-17", "count": 2 }, { "date": "2014-03-20", "count": 2 }, { "date": "2014-03-21", "count": 2 }, { "date": "2014-03-25", "count": 1 }, { "date": "2014-03-26", "count": 1 }, { "date": "2014-03-30", "count": 1 }, { "date": "2014-04-01", "count": 1 }, { "date": "2014-04-03", "count": 2 }, { "date": "2014-04-08", "count": 3 }, { "date": "2014-04-09", "count": 1 }, { "date": "2014-04-11", "count": 1 }, { "date": "2014-04-12", "count": 1 }, { "date": "2014-04-13", "count": 1 }, { "date": "2014-04-14", "count": 1 }, { "date": "2014-04-17", "count": 2 }, { "date": "2014-04-22", "count": 2 }, { "date": "2014-04-23", "count": 2 }, { "date": "2014-04-24", "count": 1 }, { "date": "2014-04-28", "count": 1 }, { "date": "2014-04-29", "count": 2 }, { "date": "2014-05-04", "count": 2 }, { "date": "2014-05-07", "count": 1 }, { "date": "2014-05-14", "count": 1 }, { "date": "2014-05-16", "count": 2 }, { "date": "2014-05-19", "count": 2 }, { "date": "2014-05-20", "count": 1 }, { "date": "2014-05-22", "count": 1 }, { "date": "2014-05-25", "count": 1 }, { "date": "2014-05-26", "count": 1 }, { "date": "2014-05-29", "count": 1 }, { "date": "2014-06-01", "count": 1 }, { "date": "2014-06-05", "count": 1 }, { "date": "2014-06-06", "count": 1 }, { "date": "2014-06-08", "count": 1 }, { "date": "2014-06-10", "count": 1 }, { "date": "2014-06-19", "count": 2 }, { "date": "2014-06-21", "count": 1 }, { "date": "2014-06-26", "count": 1 }, { "date": "2014-06-29", "count": 1 }, { "date": "2014-06-30", "count": 1 }, { "date": "2014-07-01", "count": 1 }, { "date": "2014-07-02", "count": 1 }, { "date": "2014-07-09", "count": 1 }, { "date": "2014-07-15", "count": 2 }, { "date": "2014-07-16", "count": 1 }, { "date": "2014-07-17", "count": 1 }, { "date": "2014-07-18", "count": 1 }, { "date": "2014-07-19", "count": 1 }, { "date": "2014-07-21", "count": 2 }, { "date": "2014-07-23", "count": 2 }, { "date": "2014-07-24", "count": 1 }, { "date": "2014-07-29", "count": 1 }, { "date": "2014-07-31", "count": 1 }, { "date": "2014-08-01", "count": 1 }, { "date": "2014-08-12", "count": 2 }, { "date": "2014-08-13", "count": 2 }, { "date": "2014-08-15", "count": 1 }, { "date": "2014-08-19", "count": 1 }, { "date": "2014-08-21", "count": 2 }, { "date": "2014-08-24", "count": 1 }, { "date": "2014-08-25", "count": 1 }, { "date": "2014-08-26", "count": 1 }, { "date": "2014-09-03", "count": 1 }, { "date": "2014-09-04", "count": 1 }, { "date": "2014-09-05", "count": 2 }, { "date": "2014-09-09", "count": 3 }, { "date": "2014-09-21", "count": 1 }, { "date": "2014-09-23", "count": 1 }, { "date": "2014-09-24", "count": 1 }, { "date": "2014-09-25", "count": 1 }, { "date": "2014-09-29", "count": 2 }, { "date": "2014-10-04", "count": 1 }, { "date": "2014-10-08", "count": 1 }, { "date": "2014-10-10", "count": 1 }, { "date": "2014-10-11", "count": 1 }, { "date": "2014-10-16", "count": 1 }, { "date": "2014-10-17", "count": 3 }, { "date": "2014-10-19", "count": 1 }, { "date": "2014-10-22", "count": 1 }, { "date": "2014-10-24", "count": 1 }, { "date": "2014-10-27", "count": 1 }, { "date": "2014-10-29", "count": 1 }, { "date": "2014-11-01", "count": 1 }, { "date": "2014-11-05", "count": 1 }, { "date": "2014-11-08", "count": 1 }, { "date": "2014-11-10", "count": 1 }, { "date": "2014-11-19", "count": 1 }, { "date": "2014-11-22", "count": 1 }, { "date": "2014-11-23", "count": 1 }, { "date": "2014-11-24", "count": 1 }, { "date": "2014-11-28", "count": 1 }, { "date": "2014-12-02", "count": 1 }, { "date": "2014-12-03", "count": 1 }, { "date": "2014-12-04", "count": 2 }, { "date": "2014-12-08", "count": 1 }, { "date": "2014-12-13", "count": 1 }, { "date": "2014-12-19", "count": 1 }, { "date": "2014-12-21", "count": 1 }, { "date": "2014-12-28", "count": 1 }, { "date": "2015-01-07", "count": 1 }, { "date": "2015-01-08", "count": 1 }, { "date": "2015-01-11", "count": 1 }, { "date": "2015-01-12", "count": 2 }, { "date": "2015-01-19", "count": 1 }, { "date": "2015-01-21", "count": 1 }, { "date": "2015-01-25", "count": 1 }, { "date": "2015-01-26", "count": 1 }, { "date": "2015-01-27", "count": 3 }, { "date": "2015-02-03", "count": 1 }, { "date": "2015-02-04", "count": 2 }, { "date": "2015-02-10", "count": 2 }, { "date": "2015-02-11", "count": 2 }, { "date": "2015-02-13", "count": 2 }, { "date": "2015-02-14", "count": 1 }, { "date": "2015-02-16", "count": 1 }, { "date": "2015-02-19", "count": 2 }, { "date": "2015-02-21", "count": 1 }, { "date": "2015-02-26", "count": 1 }, { "date": "2015-03-03", "count": 1 }, { "date": "2015-03-05", "count": 1 }, { "date": "2015-03-19", "count": 1 }, { "date": "2015-03-20", "count": 1 }, { "date": "2015-03-21", "count": 2 }, { "date": "2015-03-25", "count": 1 }, { "date": "2015-04-05", "count": 1 }, { "date": "2015-04-09", "count": 2 }, { "date": "2015-04-11", "count": 2 }, { "date": "2015-04-14", "count": 1 }, { "date": "2015-04-16", "count": 1 }, { "date": "2015-04-24", "count": 1 }, { "date": "2015-04-27", "count": 1 }, { "date": "2015-04-29", "count": 1 }, { "date": "2015-04-30", "count": 1 }, { "date": "2015-05-07", "count": 1 }, { "date": "2015-05-11", "count": 1 }, { "date": "2015-05-14", "count": 1 }, { "date": "2015-05-21", "count": 1 }, { "date": "2015-05-23", "count": 1 }, { "date": "2015-05-25", "count": 1 }, { "date": "2015-05-26", "count": 3 }, { "date": "2015-05-29", "count": 1 }, { "date": "2015-06-12", "count": 1 }, { "date": "2015-06-13", "count": 1 }, { "date": "2015-06-18", "count": 1 }, { "date": "2015-06-26", "count": 1 }, { "date": "2015-06-28", "count": 2 }, { "date": "2015-07-03", "count": 1 }, { "date": "2015-07-04", "count": 1 }, { "date": "2015-07-06", "count": 2 }, { "date": "2015-07-09", "count": 1 }, { "date": "2015-07-14", "count": 2 }, { "date": "2015-07-16", "count": 1 }, { "date": "2015-07-17", "count": 1 }, { "date": "2015-07-23", "count": 1 }, { "date": "2015-07-24", "count": 1 }, { "date": "2015-07-28", "count": 1 }, { "date": "2015-07-29", "count": 1 }, { "date": "2015-07-31", "count": 1 }, { "date": "2015-08-01", "count": 1 }, { "date": "2015-08-02", "count": 1 }, { "date": "2015-08-04", "count": 1 }, { "date": "2015-08-09", "count": 1 }, { "date": "2015-08-11", "count": 1 }, { "date": "2015-08-12", "count": 1 }, { "date": "2015-08-15", "count": 1 }, { "date": "2015-08-22", "count": 1 }, { "date": "2015-08-24", "count": 1 }, { "date": "2015-08-25", "count": 1 }, { "date": "2015-08-29", "count": 1 }, { "date": "2015-08-30", "count": 2 }, { "date": "2015-09-01", "count": 1 }, { "date": "2015-09-04", "count": 1 }, { "date": "2015-09-06", "count": 1 }, { "date": "2015-09-10", "count": 1 }, { "date": "2015-09-15", "count": 1 }, { "date": "2015-09-17", "count": 1 }, { "date": "2015-09-21", "count": 1 }, { "date": "2015-09-23", "count": 1 }, { "date": "2015-09-30", "count": 1 }, { "date": "2015-10-16", "count": 1 }, { "date": "2015-10-17", "count": 1 }, { "date": "2015-10-20", "count": 1 }, { "date": "2015-10-23", "count": 2 }, { "date": "2015-11-04", "count": 1 }, { "date": "2015-11-07", "count": 1 }, { "date": "2015-11-10", "count": 1 }, { "date": "2015-11-15", "count": 1 }, { "date": "2015-11-16", "count": 2 }, { "date": "2015-11-17", "count": 1 }, { "date": "2015-11-18", "count": 1 }, { "date": "2015-11-19", "count": 1 }, { "date": "2015-11-22", "count": 1 }, { "date": "2015-11-26", "count": 2 }, { "date": "2015-11-28", "count": 1 }, { "date": "2015-11-30", "count": 1 }, { "date": "2015-12-02", "count": 1 }, { "date": "2015-12-07", "count": 1 }, { "date": "2015-12-08", "count": 1 }, { "date": "2015-12-18", "count": 1 }, { "date": "2015-12-19", "count": 1 }, { "date": "2015-12-22", "count": 1 }, { "date": "2015-12-23", "count": 3 }, { "date": "2015-12-24", "count": 1 }, { "date": "2015-12-27", "count": 1 }, { "date": "2015-12-30", "count": 1 }, { "date": "2016-01-03", "count": 1 }, { "date": "2016-01-06", "count": 1 }, { "date": "2016-01-11", "count": 1 }, { "date": "2016-01-12", "count": 1 }, { "date": "2016-01-25", "count": 1 }, { "date": "2016-02-01", "count": 1 }, { "date": "2016-02-02", "count": 1 }, { "date": "2016-02-14", "count": 1 }, { "date": "2016-02-17", "count": 1 }, { "date": "2016-02-20", "count": 1 }, { "date": "2016-02-22", "count": 1 }, { "date": "2016-02-23", "count": 1 }, { "date": "2016-02-27", "count": 1 }, { "date": "2016-02-29", "count": 1 }, { "date": "2016-03-06", "count": 1 }, { "date": "2016-03-07", "count": 2 }, { "date": "2016-03-08", "count": 1 }, { "date": "2016-03-09", "count": 1 }, { "date": "2016-03-10", "count": 2 }, { "date": "2016-03-14", "count": 1 }, { "date": "2016-03-21", "count": 1 }, { "date": "2016-03-24", "count": 1 }, { "date": "2016-03-31", "count": 1 }, { "date": "2016-04-01", "count": 1 }, { "date": "2016-04-11", "count": 2 }, { "date": "2016-04-13", "count": 1 }, { "date": "2016-04-15", "count": 1 }, { "date": "2016-04-19", "count": 1 }, { "date": "2016-04-21", "count": 3 }, { "date": "2016-04-22", "count": 1 }, { "date": "2016-04-23", "count": 1 }, { "date": "2016-04-24", "count": 1 }, { "date": "2016-04-28", "count": 1 }, { "date": "2016-05-02", "count": 1 }, { "date": "2016-05-10", "count": 1 }, { "date": "2016-05-13", "count": 1 }, { "date": "2016-05-26", "count": 1 }, { "date": "2016-06-02", "count": 1 }, { "date": "2016-06-03", "count": 1 }, { "date": "2016-06-06", "count": 1 }, { "date": "2016-06-08", "count": 1 }, { "date": "2016-06-10", "count": 1 }, { "date": "2016-06-21", "count": 2 }, { "date": "2016-06-23", "count": 1 }, { "date": "2016-06-24", "count": 1 }, { "date": "2016-06-28", "count": 1 }, { "date": "2016-07-01", "count": 1 }, { "date": "2016-07-04", "count": 2 }, { "date": "2016-07-07", "count": 1 }, { "date": "2016-07-11", "count": 1 }, { "date": "2016-07-13", "count": 1 }, { "date": "2016-07-20", "count": 1 }, { "date": "2016-07-21", "count": 1 }, { "date": "2016-07-24", "count": 1 }, { "date": "2016-07-27", "count": 1 }, { "date": "2016-07-28", "count": 1 }, { "date": "2016-07-29", "count": 2 }, { "date": "2016-08-03", "count": 1 }, { "date": "2016-08-05", "count": 1 }, { "date": "2016-08-06", "count": 1 }, { "date": "2016-08-08", "count": 1 }, { "date": "2016-08-10", "count": 1 }, { "date": "2016-08-17", "count": 1 }, { "date": "2016-08-18", "count": 1 }, { "date": "2016-08-22", "count": 1 }, { "date": "2016-08-25", "count": 1 }, { "date": "2016-08-26", "count": 1 }, { "date": "2016-08-29", "count": 1 }, { "date": "2016-08-31", "count": 1 }, { "date": "2016-09-01", "count": 1 }, { "date": "2016-09-03", "count": 1 }, { "date": "2016-09-06", "count": 1 }, { "date": "2016-09-07", "count": 1 }, { "date": "2016-09-12", "count": 1 }, { "date": "2016-09-17", "count": 1 }, { "date": "2016-09-18", "count": 1 }, { "date": "2016-09-22", "count": 2 }, { "date": "2016-10-05", "count": 1 }, { "date": "2016-10-10", "count": 1 }, { "date": "2016-10-18", "count": 1 }, { "date": "2016-10-21", "count": 1 }, { "date": "2016-10-27", "count": 1 }, { "date": "2016-10-29", "count": 1 }, { "date": "2016-10-31", "count": 1 }, { "date": "2016-11-24", "count": 1 }, { "date": "2016-11-25", "count": 1 }, { "date": "2016-11-28", "count": 1 }, { "date": "2016-11-29", "count": 1 }, { "date": "2016-12-05", "count": 1 }, { "date": "2016-12-06", "count": 1 }, { "date": "2016-12-07", "count": 1 }, { "date": "2016-12-08", "count": 2 }, { "date": "2016-12-19", "count": 1 }, { "date": "2016-12-20", "count": 1 }, { "date": "2016-12-29", "count": 1 }, { "date": "2016-12-30", "count": 1 }, { "date": "2017-01-05", "count": 1 }, { "date": "2017-01-10", "count": 1 }, { "date": "2017-01-17", "count": 1 }, { "date": "2017-01-19", "count": 2 }, { "date": "2017-01-21", "count": 1 }, { "date": "2017-01-26", "count": 1 }, { "date": "2017-02-02", "count": 1 }, { "date": "2017-02-04", "count": 2 }, { "date": "2017-02-09", "count": 1 }, { "date": "2017-02-19", "count": 1 }, { "date": "2017-02-21", "count": 1 }, { "date": "2017-02-28", "count": 1 }, { "date": "2017-03-08", "count": 1 }, { "date": "2017-03-09", "count": 1 }, { "date": "2017-03-14", "count": 1 }, { "date": "2017-03-19", "count": 1 }, { "date": "2017-03-24", "count": 1 }, { "date": "2017-03-25", "count": 1 }, { "date": "2017-03-26", "count": 1 }, { "date": "2017-03-28", "count": 1 }, { "date": "2017-03-29", "count": 1 }, { "date": "2017-04-04", "count": 1 }, { "date": "2017-04-11", "count": 2 }, { "date": "2017-04-13", "count": 1 }, { "date": "2017-04-16", "count": 1 }, { "date": "2017-04-22", "count": 1 }, { "date": "2017-04-23", "count": 1 }, { "date": "2017-04-24", "count": 1 }, { "date": "2017-04-25", "count": 1 }, { "date": "2017-04-27", "count": 3 }, { "date": "2017-04-28", "count": 8 }, { "date": "2017-04-29", "count": 1 }, { "date": "2017-04-30", "count": 2 }, { "date": "2017-05-01", "count": 1 }, { "date": "2017-05-02", "count": 4 }, { "date": "2017-05-03", "count": 1 }, { "date": "2017-05-05", "count": 1 }, { "date": "2017-05-10", "count": 1 }, { "date": "2017-05-16", "count": 1 }, { "date": "2017-05-17", "count": 3 }, { "date": "2017-05-20", "count": 1 }, { "date": "2017-05-25", "count": 1 }, { "date": "2017-05-26", "count": 1 }, { "date": "2017-05-27", "count": 1 }, { "date": "2017-06-11", "count": 1 }, { "date": "2017-06-13", "count": 1 }, { "date": "2017-06-16", "count": 1 }, { "date": "2017-06-19", "count": 2 }, { "date": "2017-07-04", "count": 1 }, { "date": "2017-07-07", "count": 4 }, { "date": "2017-07-10", "count": 1 }, { "date": "2017-07-15", "count": 1 }, { "date": "2017-07-20", "count": 1 }, { "date": "2017-07-22", "count": 1 }, { "date": "2017-08-03", "count": 1 }, { "date": "2017-08-06", "count": 1 }, { "date": "2017-08-08", "count": 1 }, { "date": "2017-08-24", "count": 1 }, { "date": "2017-08-25", "count": 1 }, { "date": "2017-09-04", "count": 2 }, { "date": "2017-09-06", "count": 1 }, { "date": "2017-09-12", "count": 1 }, { "date": "2017-09-14", "count": 1 }, { "date": "2017-09-15", "count": 1 }, { "date": "2017-09-18", "count": 1 }, { "date": "2017-09-28", "count": 1 }, { "date": "2017-10-04", "count": 1 }, { "date": "2017-10-17", "count": 1 }, { "date": "2017-10-24", "count": 1 }, { "date": "2017-11-02", "count": 1 }, { "date": "2017-11-07", "count": 1 }, { "date": "2017-11-09", "count": 1 }, { "date": "2017-11-10", "count": 1 }, { "date": "2017-11-13", "count": 1 }, { "date": "2017-11-17", "count": 1 }, { "date": "2017-11-19", "count": 1 }, { "date": "2017-11-27", "count": 1 }, { "date": "2017-12-02", "count": 1 }, { "date": "2017-12-11", "count": 1 }, { "date": "2017-12-13", "count": 4 }, { "date": "2017-12-15", "count": 1 }, { "date": "2017-12-18", "count": 1 }, { "date": "2018-01-05", "count": 1 }, { "date": "2018-01-11", "count": 1 }, { "date": "2018-01-15", "count": 1 }, { "date": "2018-01-19", "count": 1 }, { "date": "2018-01-23", "count": 1 }, { "date": "2018-01-24", "count": 1 }, { "date": "2018-01-25", "count": 1 }, { "date": "2018-01-28", "count": 1 }, { "date": "2018-02-01", "count": 1 }, { "date": "2018-02-03", "count": 1 }, { "date": "2018-02-04", "count": 1 }, { "date": "2018-02-05", "count": 2 }, { "date": "2018-02-07", "count": 1 }, { "date": "2018-02-14", "count": 1 }, { "date": "2018-02-15", "count": 1 }, { "date": "2018-02-18", "count": 1 }, { "date": "2018-02-20", "count": 1 }, { "date": "2018-02-25", "count": 1 }, { "date": "2018-02-28", "count": 1 }, { "date": "2018-03-02", "count": 1 }, { "date": "2018-03-08", "count": 1 }, { "date": "2018-03-16", "count": 1 }, { "date": "2018-03-17", "count": 1 }, { "date": "2018-03-21", "count": 2 }, { "date": "2018-03-23", "count": 2 }, { "date": "2018-03-25", "count": 1 }, { "date": "2018-03-26", "count": 1 }, { "date": "2018-03-29", "count": 2 }, { "date": "2018-03-30", "count": 1 }, { "date": "2018-04-10", "count": 1 }, { "date": "2018-04-11", "count": 2 }, { "date": "2018-05-07", "count": 1 }, { "date": "2018-05-10", "count": 1 }, { "date": "2018-05-11", "count": 1 }, { "date": "2018-05-13", "count": 2 }, { "date": "2018-05-17", "count": 1 }, { "date": "2018-05-21", "count": 1 }, { "date": "2018-05-24", "count": 1 }, { "date": "2018-05-28", "count": 1 }, { "date": "2018-06-07", "count": 1 }, { "date": "2018-06-12", "count": 1 }, { "date": "2018-06-13", "count": 1 }, { "date": "2018-06-19", "count": 1 }, { "date": "2018-07-05", "count": 1 }, { "date": "2018-07-23", "count": 1 }, { "date": "2018-07-26", "count": 1 }, { "date": "2018-07-27", "count": 1 }, { "date": "2018-07-30", "count": 1 }, { "date": "2018-08-01", "count": 1 }, { "date": "2018-08-02", "count": 1 }, { "date": "2018-08-14", "count": 1 }, { "date": "2018-08-16", "count": 1 }, { "date": "2018-08-19", "count": 1 }, { "date": "2018-08-29", "count": 1 }, { "date": "2018-08-30", "count": 1 }, { "date": "2018-09-10", "count": 1 }, { "date": "2018-10-11", "count": 1 }, { "date": "2018-10-16", "count": 1 }, { "date": "2018-10-18", "count": 1 }, { "date": "2018-10-30", "count": 1 }, { "date": "2018-11-09", "count": 1 }, { "date": "2018-11-14", "count": 1 }, { "date": "2018-11-19", "count": 1 }, { "date": "2018-11-23", "count": 1 }, { "date": "2018-11-30", "count": 1 }, { "date": "2018-12-04", "count": 1 }, { "date": "2018-12-12", "count": 1 }, { "date": "2018-12-17", "count": 1 }, { "date": "2018-12-21", "count": 1 }, { "date": "2018-12-31", "count": 1 }, { "date": "2019-01-07", "count": 1 }, { "date": "2019-01-18", "count": 1 }, { "date": "2019-01-31", "count": 1 }, { "date": "2019-02-04", "count": 1 }, { "date": "2019-02-11", "count": 2 }, { "date": "2019-02-13", "count": 1 }, { "date": "2019-02-16", "count": 1 }, { "date": "2019-02-21", "count": 2 }, { "date": "2019-02-26", "count": 1 }, { "date": "2019-03-06", "count": 1 }, { "date": "2019-03-11", "count": 1 }, { "date": "2019-03-14", "count": 1 }, { "date": "2019-03-22", "count": 1 }, { "date": "2019-03-23", "count": 1 }, { "date": "2019-03-28", "count": 1 }, { "date": "2019-04-02", "count": 1 }, { "date": "2019-04-04", "count": 1 }, { "date": "2019-04-20", "count": 1 }, { "date": "2019-04-23", "count": 1 }, { "date": "2019-04-24", "count": 1 }, { "date": "2019-05-13", "count": 1 }, { "date": "2019-05-14", "count": 1 }, { "date": "2019-05-15", "count": 1 }, { "date": "2019-05-17", "count": 1 }, { "date": "2019-05-21", "count": 1 }, { "date": "2019-05-22", "count": 2 }, { "date": "2019-05-25", "count": 1 }, { "date": "2019-05-27", "count": 1 }, { "date": "2019-05-29", "count": 1 }, { "date": "2019-05-30", "count": 1 }, { "date": "2019-06-05", "count": 1 }, { "date": "2019-06-10", "count": 1 }, { "date": "2019-06-12", "count": 1 }, { "date": "2019-06-13", "count": 1 }, { "date": "2019-06-17", "count": 1 }, { "date": "2019-06-22", "count": 1 }, { "date": "2019-06-25", "count": 1 }, { "date": "2019-06-30", "count": 1 }, { "date": "2019-07-04", "count": 1 }, { "date": "2019-07-06", "count": 1 }, { "date": "2019-07-14", "count": 1 }, { "date": "2019-07-20", "count": 1 }, { "date": "2019-07-25", "count": 1 }, { "date": "2019-08-02", "count": 1 }, { "date": "2019-08-20", "count": 1 }, { "date": "2019-08-28", "count": 1 }, { "date": "2019-09-01", "count": 1 }, { "date": "2019-09-08", "count": 1 }, { "date": "2019-09-24", "count": 1 }, { "date": "2019-09-25", "count": 1 }, { "date": "2019-09-27", "count": 1 }, { "date": "2019-09-30", "count": 1 }, { "date": "2019-10-01", "count": 1 }, { "date": "2019-10-02", "count": 2 }, { "date": "2019-10-10", "count": 1 }, { "date": "2019-10-14", "count": 1 }, { "date": "2019-10-17", "count": 2 }, { "date": "2019-10-28", "count": 1 }, { "date": "2019-10-30", "count": 3 }, { "date": "2019-10-31", "count": 1 }, { "date": "2019-11-08", "count": 1 }, { "date": "2019-11-22", "count": 1 }, { "date": "2019-11-29", "count": 1 }, { "date": "2019-12-03", "count": 1 }, { "date": "2019-12-16", "count": 1 }, { "date": "2019-12-19", "count": 1 }, { "date": "2019-12-23", "count": 2 }, { "date": "2019-12-27", "count": 2 }, { "date": "2020-01-08", "count": 1 }, { "date": "2020-01-10", "count": 1 }, { "date": "2020-01-22", "count": 1 }, { "date": "2020-01-27", "count": 1 }, { "date": "2020-01-30", "count": 1 }, { "date": "2020-02-04", "count": 1 }, { "date": "2020-02-06", "count": 1 }, { "date": "2020-02-10", "count": 1 }, { "date": "2020-02-12", "count": 1 }, { "date": "2020-02-15", "count": 1 }, { "date": "2020-02-22", "count": 1 }, { "date": "2020-02-29", "count": 1 }, { "date": "2020-03-05", "count": 1 }, { "date": "2020-03-14", "count": 1 }, { "date": "2020-05-01", "count": 1 }, { "date": "2020-05-18", "count": 2 }, { "date": "2020-05-23", "count": 1 }, { "date": "2020-05-25", "count": 1 }, { "date": "2020-05-30", "count": 1 }, { "date": "2020-06-03", "count": 1 }, { "date": "2020-06-04", "count": 1 }, { "date": "2020-06-14", "count": 1 }, { "date": "2020-06-16", "count": 1 }, { "date": "2020-06-18", "count": 1 }, { "date": "2020-06-23", "count": 1 }, { "date": "2020-06-25", "count": 1 }, { "date": "2020-07-01", "count": 1 }, { "date": "2020-07-09", "count": 1 }, { "date": "2020-07-14", "count": 1 }, { "date": "2020-07-31", "count": 1 }, { "date": "2020-08-03", "count": 1 }, { "date": "2020-08-04", "count": 1 }, { "date": "2020-08-19", "count": 1 }, { "date": "2020-09-11", "count": 1 }, { "date": "2020-09-23", "count": 1 }, { "date": "2020-09-30", "count": 1 }, { "date": "2020-11-02", "count": 1 }, { "date": "2020-11-26", "count": 1 }, { "date": "2020-12-09", "count": 1 }, { "date": "2020-12-18", "count": 1 }, { "date": "2020-12-27", "count": 1 }, { "date": "2021-01-04", "count": 1 }, { "date": "2021-01-05", "count": 1 }, { "date": "2021-01-07", "count": 1 }, { "date": "2021-01-08", "count": 1 }, { "date": "2021-01-18", "count": 1 }, { "date": "2021-01-20", "count": 1 }, { "date": "2021-01-28", "count": 1 }, { "date": "2021-01-31", "count": 1 }, { "date": "2021-03-04", "count": 1 }, { "date": "2021-03-09", "count": 1 }, { "date": "2021-03-24", "count": 1 }, { "date": "2021-04-01", "count": 1 }, { "date": "2021-04-13", "count": 2 }, { "date": "2021-04-16", "count": 1 }, { "date": "2021-05-20", "count": 1 }, { "date": "2021-05-21", "count": 1 }, { "date": "2021-05-29", "count": 1 }, { "date": "2021-06-05", "count": 1 }, { "date": "2021-06-17", "count": 2 }, { "date": "2021-07-08", "count": 1 }, { "date": "2021-07-11", "count": 1 }, { "date": "2021-08-02", "count": 1 }, { "date": "2021-08-04", "count": 1 }, { "date": "2021-09-08", "count": 1 }, { "date": "2021-09-14", "count": 1 }, { "date": "2021-09-20", "count": 1 }, { "date": "2021-10-22", "count": 2 }, { "date": "2021-11-02", "count": 1 }, { "date": "2021-11-11", "count": 1 }, { "date": "2021-11-29", "count": 1 }, { "date": "2021-12-02", "count": 1 }, { "date": "2022-01-14", "count": 1 }, { "date": "2022-02-02", "count": 1 }, { "date": "2022-02-06", "count": 1 }, { "date": "2022-02-19", "count": 1 }, { "date": "2022-02-22", "count": 2 }, { "date": "2022-03-04", "count": 1 }, { "date": "2022-03-11", "count": 1 }, { "date": "2022-03-16", "count": 1 }, { "date": "2022-04-11", "count": 1 }, { "date": "2022-04-13", "count": 1 }, { "date": "2022-04-17", "count": 1 }, { "date": "2022-04-27", "count": 1 }, { "date": "2022-05-02", "count": 1 }, { "date": "2022-05-10", "count": 1 }, { "date": "2022-06-09", "count": 1 }, { "date": "2022-06-14", "count": 1 }, { "date": "2022-06-27", "count": 1 }, { "date": "2022-07-08", "count": 1 }, { "date": "2022-07-12", "count": 1 }, { "date": "2022-07-16", "count": 1 }, { "date": "2022-08-21", "count": 1 }, { "date": "2022-08-30", "count": 2 }, { "date": "2022-09-01", "count": 1 }, { "date": "2022-09-19", "count": 1 }, { "date": "2022-09-23", "count": 1 }, { "date": "2022-09-27", "count": 1 }, { "date": "2022-10-13", "count": 1 }, { "date": "2022-10-20", "count": 2 }, { "date": "2022-11-18", "count": 1 }, { "date": "2022-11-23", "count": 1 }, { "date": "2022-11-30", "count": 1 }, { "date": "2023-01-17", "count": 2 }, { "date": "2023-02-08", "count": 1 }, { "date": "2023-02-12", "count": 2 }, { "date": "2023-02-20", "count": 1 }, { "date": "2023-03-01", "count": 1 }, { "date": "2023-03-03", "count": 1 }, { "date": "2023-03-09", "count": 1 }, { "date": "2023-03-29", "count": 1 }, { "date": "2023-04-03", "count": 1 }, { "date": "2023-04-05", "count": 1 }, { "date": "2023-04-26", "count": 1 }, { "date": "2023-05-07", "count": 1 }, { "date": "2023-07-24", "count": 1 }, { "date": "2023-08-04", "count": 1 }, { "date": "2023-08-08", "count": 1 }, { "date": "2023-09-15", "count": 1 }, { "date": "2023-10-16", "count": 1 }, { "date": "2023-11-08", "count": 1 }, { "date": "2023-11-17", "count": 1 }, { "date": "2023-11-30", "count": 1 }, { "date": "2023-12-09", "count": 2 }, { "date": "2023-12-11", "count": 1 }, { "date": "2024-01-26", "count": 1 }, { "date": "2024-01-27", "count": 1 }, { "date": "2024-02-04", "count": 1 }, { "date": "2024-02-14", "count": 1 }, { "date": "2024-02-19", "count": 1 }, { "date": "2024-03-05", "count": 2 }, { "date": "2024-03-07", "count": 1 }, { "date": "2024-04-11", "count": 1 }, { "date": "2024-05-09", "count": 1 }, { "date": "2024-06-06", "count": 1 }, { "date": "2024-06-12", "count": 1 }, { "date": "2024-07-18", "count": 1 }, { "date": "2024-08-22", "count": 1 }, { "date": "2024-09-29", "count": 1 }, { "date": "2024-10-09", "count": 1 }, { "date": "2024-10-23", "count": 1 }, { "date": "2024-11-11", "count": 1 }, { "date": "2025-01-23", "count": 1 }, { "date": "2025-02-15", "count": 1 }, { "date": "2025-03-06", "count": 1 }, { "date": "2025-04-07", "count": 1 }, { "date": "2025-05-14", "count": 1 }, { "date": "2025-07-02", "count": 1 }, { "date": "2025-09-04", "count": 1 }, { "date": "2025-09-09", "count": 1 }, { "date": "2025-10-29", "count": 1 }, { "date": "2025-11-07", "count": 1 }, { "date": "2025-11-27", "count": 1 }, { "date": "2025-12-04", "count": 1 }, { "date": "2026-02-07", "count": 1 }, { "date": "2026-03-29", "count": 1 }, { "date": "2026-04-16", "count": 1 }, { "date": "2026-06-28", "count": 1 }, { "date": "2026-07-19", "count": 3 } ], "complete": false, "collected": 1000, "total_forks": 1298 }, "star_history": { "days": [ { "date": "2020-05-27", "count": 3 }, { "date": "2020-05-28", "count": 1 }, { "date": "2020-05-29", "count": 1 }, { "date": "2020-05-30", "count": 2 }, { "date": "2020-06-01", "count": 2 }, { "date": "2020-06-02", "count": 2 }, { "date": "2020-06-03", "count": 2 }, { "date": "2020-06-04", "count": 3 }, { "date": "2020-06-09", "count": 2 }, { "date": "2020-06-10", "count": 1 }, { "date": "2020-06-16", "count": 1 }, { "date": "2020-06-20", "count": 1 }, { "date": "2020-06-23", "count": 2 }, { "date": "2020-06-24", "count": 4 }, { "date": "2020-06-25", "count": 2 }, { "date": "2020-06-30", "count": 1 }, { "date": "2020-07-01", "count": 1 }, { "date": "2020-07-02", "count": 1 }, { "date": "2020-07-04", "count": 1 }, { "date": "2020-07-05", "count": 1 }, { "date": "2020-07-08", "count": 3 }, { "date": "2020-07-10", "count": 3 }, { "date": "2020-07-11", "count": 1 }, { "date": "2020-07-12", "count": 1 }, { "date": "2020-07-16", "count": 2 }, { "date": "2020-07-17", "count": 2 }, { "date": "2020-07-18", "count": 1 }, { "date": "2020-07-21", "count": 1 }, { "date": "2020-07-22", "count": 1 }, { "date": "2020-07-23", "count": 3 }, { "date": "2020-07-24", "count": 4 }, { "date": "2020-07-27", "count": 1 }, { "date": "2020-07-29", "count": 1 }, { "date": "2020-07-30", "count": 1 }, { "date": "2020-08-02", "count": 1 }, { "date": "2020-08-04", "count": 3 }, { "date": "2020-08-05", "count": 3 }, { "date": "2020-08-09", "count": 2 }, { "date": "2020-08-10", "count": 3 }, { "date": "2020-08-11", "count": 2 }, { "date": "2020-08-12", "count": 1 }, { "date": "2020-08-13", "count": 2 }, { "date": "2020-08-14", "count": 3 }, { "date": "2020-08-17", "count": 2 }, { "date": "2020-08-18", "count": 1 }, { "date": "2020-08-27", "count": 2 }, { "date": "2020-08-28", "count": 1 }, { "date": "2020-09-02", "count": 1 }, { "date": "2020-09-03", "count": 1 }, { "date": "2020-09-04", "count": 1 }, { "date": "2020-09-06", "count": 1 }, { "date": "2020-09-07", "count": 2 }, { "date": "2020-09-09", "count": 1 }, { "date": "2020-09-10", "count": 1 }, { "date": "2020-09-17", "count": 1 }, { "date": "2020-09-18", "count": 1 }, { "date": "2020-09-20", "count": 1 }, { "date": "2020-09-23", "count": 1 }, { "date": "2020-09-24", "count": 1 }, { "date": "2020-09-25", "count": 1 }, { "date": "2020-09-28", "count": 1 }, { "date": "2020-10-01", "count": 2 }, { "date": "2020-10-02", "count": 1 }, { "date": "2020-10-07", "count": 1 }, { "date": "2020-10-08", "count": 1 }, { "date": "2020-10-12", "count": 1 }, { "date": "2020-10-13", "count": 1 }, { "date": "2020-10-14", "count": 1 }, { "date": "2020-10-16", "count": 1 }, { "date": "2020-10-18", "count": 1 }, { "date": "2020-10-19", "count": 2 }, { "date": "2020-10-20", "count": 3 }, { "date": "2020-10-22", "count": 2 }, { "date": "2020-10-23", "count": 1 }, { "date": "2020-10-28", "count": 1 }, { "date": "2020-10-30", "count": 2 }, { "date": "2020-11-01", "count": 1 }, { "date": "2020-11-05", "count": 1 }, { "date": "2020-11-06", "count": 1 }, { "date": "2020-11-09", "count": 1 }, { "date": "2020-11-10", "count": 2 }, { "date": "2020-11-11", "count": 2 }, { "date": "2020-11-13", "count": 1 }, { "date": "2020-11-15", "count": 1 }, { "date": "2020-11-16", "count": 1 }, { "date": "2020-11-17", "count": 2 }, { "date": "2020-11-18", "count": 1 }, { "date": "2020-11-19", "count": 1 }, { "date": "2020-11-26", "count": 1 }, { "date": "2020-11-27", "count": 1 }, { "date": "2020-11-28", "count": 2 }, { "date": "2020-11-29", "count": 1 }, { "date": "2020-12-02", "count": 2 }, { "date": "2020-12-03", "count": 1 }, { "date": "2020-12-04", "count": 1 }, { "date": "2020-12-07", "count": 2 }, { "date": "2020-12-10", "count": 1 }, { "date": "2020-12-11", "count": 1 }, { "date": "2020-12-14", "count": 2 }, { "date": "2020-12-15", "count": 1 }, { "date": "2020-12-19", "count": 1 }, { "date": "2020-12-23", "count": 3 }, { "date": "2020-12-30", "count": 1 }, { "date": "2020-12-31", "count": 1 }, { "date": "2021-01-04", "count": 1 }, { "date": "2021-01-08", "count": 1 }, { "date": "2021-01-10", "count": 1 }, { "date": "2021-01-12", "count": 1 }, { "date": "2021-01-13", "count": 1 }, { "date": "2021-01-15", "count": 3 }, { "date": "2021-01-16", "count": 1 }, { "date": "2021-01-18", "count": 2 }, { "date": "2021-01-19", "count": 1 }, { "date": "2021-01-21", "count": 1 }, { "date": "2021-01-22", "count": 2 }, { "date": "2021-01-23", "count": 1 }, { "date": "2021-01-24", "count": 1 }, { "date": "2021-01-25", "count": 1 }, { "date": "2021-01-26", "count": 1 }, { "date": "2021-01-27", "count": 1 }, { "date": "2021-01-28", "count": 2 }, { "date": "2021-01-31", "count": 2 }, { "date": "2021-02-01", "count": 2 }, { "date": "2021-02-03", "count": 2 }, { "date": "2021-02-05", "count": 1 }, { "date": "2021-02-07", "count": 1 }, { "date": "2021-02-09", "count": 2 }, { "date": "2021-02-11", "count": 3 }, { "date": "2021-02-12", "count": 2 }, { "date": "2021-02-13", "count": 3 }, { "date": "2021-02-14", "count": 4 }, { "date": "2021-02-15", "count": 2 }, { "date": "2021-02-16", "count": 1 }, { "date": "2021-02-18", "count": 2 }, { "date": "2021-02-20", "count": 1 }, { "date": "2021-02-21", "count": 2 }, { "date": "2021-02-22", "count": 1 }, { "date": "2021-02-24", "count": 2 }, { "date": "2021-02-27", "count": 2 }, { "date": "2021-03-01", "count": 1 }, { "date": "2021-03-02", "count": 2 }, { "date": "2021-03-03", "count": 2 }, { "date": "2021-03-05", "count": 3 }, { "date": "2021-03-06", "count": 1 }, { "date": "2021-03-08", "count": 3 }, { "date": "2021-03-11", "count": 1 }, { "date": "2021-03-14", "count": 1 }, { "date": "2021-03-15", "count": 3 }, { "date": "2021-03-16", "count": 1 }, { "date": "2021-03-17", "count": 3 }, { "date": "2021-03-21", "count": 1 }, { "date": "2021-03-23", "count": 2 }, { "date": "2021-03-24", "count": 2 }, { "date": "2021-03-25", "count": 1 }, { "date": "2021-03-26", "count": 1 }, { "date": "2021-04-01", "count": 1 }, { "date": "2021-04-08", "count": 2 }, { "date": "2021-04-11", "count": 1 }, { "date": "2021-04-13", "count": 1 }, { "date": "2021-04-15", "count": 1 }, { "date": "2021-04-16", "count": 1 }, { "date": "2021-04-17", "count": 1 }, { "date": "2021-04-20", "count": 2 }, { "date": "2021-04-21", "count": 2 }, { "date": "2021-05-04", "count": 1 }, { "date": "2021-05-05", "count": 1 }, { "date": "2021-05-06", "count": 2 }, { "date": "2021-05-09", "count": 1 }, { "date": "2021-05-10", "count": 2 }, { "date": "2021-05-16", "count": 1 }, { "date": "2021-05-17", "count": 1 }, { "date": "2021-05-20", "count": 2 }, { "date": "2021-05-24", "count": 1 }, { "date": "2021-05-27", "count": 1 }, { "date": "2021-05-31", "count": 1 }, { "date": "2021-06-01", "count": 2 }, { "date": "2021-06-05", "count": 2 }, { "date": "2021-06-09", "count": 3 }, { "date": "2021-06-14", "count": 1 }, { "date": "2021-06-15", "count": 1 }, { "date": "2021-06-17", "count": 2 }, { "date": "2021-06-19", "count": 1 }, { "date": "2021-06-21", "count": 1 }, { "date": "2021-06-22", "count": 1 }, { "date": "2021-06-25", "count": 1 }, { "date": "2021-06-27", "count": 1 }, { "date": "2021-06-29", "count": 3 }, { "date": "2021-07-03", "count": 2 }, { "date": "2021-07-06", "count": 1 }, { "date": "2021-07-07", "count": 1 }, { "date": "2021-07-13", "count": 2 }, { "date": "2021-07-14", "count": 1 }, { "date": "2021-07-18", "count": 1 }, { "date": "2021-07-19", "count": 1 }, { "date": "2021-07-21", "count": 1 }, { "date": "2021-07-23", "count": 1 }, { "date": "2021-07-24", "count": 1 }, { "date": "2021-07-26", "count": 1 }, { "date": "2021-07-27", "count": 1 }, { "date": "2021-07-30", "count": 1 }, { "date": "2021-08-03", "count": 1 }, { "date": "2021-08-06", "count": 2 }, { "date": "2021-08-10", "count": 1 }, { "date": "2021-08-11", "count": 4 }, { "date": "2021-08-13", "count": 1 }, { "date": "2021-08-18", "count": 2 }, { "date": "2021-08-19", "count": 1 }, { "date": "2021-08-22", "count": 2 }, { "date": "2021-08-27", "count": 1 }, { "date": "2021-08-29", "count": 2 }, { "date": "2021-09-06", "count": 1 }, { "date": "2021-09-08", "count": 1 }, { "date": "2021-09-16", "count": 1 }, { "date": "2021-09-24", "count": 1 }, { "date": "2021-09-28", "count": 1 }, { "date": "2021-09-29", "count": 1 }, { "date": "2021-10-01", "count": 1 }, { "date": "2021-10-03", "count": 1 }, { "date": "2021-10-05", "count": 1 }, { "date": "2021-10-06", "count": 2 }, { "date": "2021-10-07", "count": 1 }, { "date": "2021-10-09", "count": 1 }, { "date": "2021-10-10", "count": 1 }, { "date": "2021-10-15", "count": 1 }, { "date": "2021-10-18", "count": 2 }, { "date": "2021-10-19", "count": 2 }, { "date": "2021-10-23", "count": 1 }, { "date": "2021-10-25", "count": 1 }, { "date": "2021-10-26", "count": 2 }, { "date": "2021-10-30", "count": 1 }, { "date": "2021-11-02", "count": 2 }, { "date": "2021-11-04", "count": 1 }, { "date": "2021-11-05", "count": 1 }, { "date": "2021-11-07", "count": 1 }, { "date": "2021-11-09", "count": 2 }, { "date": "2021-11-11", "count": 2 }, { "date": "2021-11-15", "count": 1 }, { "date": "2021-11-21", "count": 1 }, { "date": "2021-11-22", "count": 1 }, { "date": "2021-11-25", "count": 1 }, { "date": "2021-11-26", "count": 1 }, { "date": "2021-12-02", "count": 1 }, { "date": "2021-12-03", "count": 1 }, { "date": "2021-12-06", "count": 1 }, { "date": "2021-12-07", "count": 1 }, { "date": "2021-12-09", "count": 1 }, { "date": "2021-12-10", "count": 1 }, { "date": "2021-12-15", "count": 1 }, { "date": "2021-12-16", "count": 1 }, { "date": "2021-12-17", "count": 1 }, { "date": "2021-12-20", "count": 1 }, { "date": "2021-12-21", "count": 2 }, { "date": "2021-12-27", "count": 1 }, { "date": "2021-12-29", "count": 1 }, { "date": "2022-01-03", "count": 2 }, { "date": "2022-01-06", "count": 1 }, { "date": "2022-01-07", "count": 1 }, { "date": "2022-01-10", "count": 1 }, { "date": "2022-01-12", "count": 2 }, { "date": "2022-01-13", "count": 1 }, { "date": "2022-01-15", "count": 1 }, { "date": "2022-01-17", "count": 2 }, { "date": "2022-01-18", "count": 2 }, { "date": "2022-01-20", "count": 2 }, { "date": "2022-01-21", "count": 2 }, { "date": "2022-01-22", "count": 2 }, { "date": "2022-01-24", "count": 1 }, { "date": "2022-01-29", "count": 1 }, { "date": "2022-02-01", "count": 1 }, { "date": "2022-02-04", "count": 1 }, { "date": "2022-02-05", "count": 1 }, { "date": "2022-02-06", "count": 2 }, { "date": "2022-02-07", "count": 1 }, { "date": "2022-02-08", "count": 2 }, { "date": "2022-02-09", "count": 1 }, { "date": "2022-02-11", "count": 2 }, { "date": "2022-02-12", "count": 1 }, { "date": "2022-02-13", "count": 2 }, { "date": "2022-02-15", "count": 1 }, { "date": "2022-02-16", "count": 1 }, { "date": "2022-02-17", "count": 4 }, { "date": "2022-02-18", "count": 1 }, { "date": "2022-02-23", "count": 1 }, { "date": "2022-02-25", "count": 2 }, { "date": "2022-02-26", "count": 1 }, { "date": "2022-02-28", "count": 1 }, { "date": "2022-03-01", "count": 1 }, { "date": "2022-03-02", "count": 1 }, { "date": "2022-03-05", "count": 1 }, { "date": "2022-03-07", "count": 1 }, { "date": "2022-03-08", "count": 2 }, { "date": "2022-03-09", "count": 4 }, { "date": "2022-03-13", "count": 1 }, { "date": "2022-03-14", "count": 1 }, { "date": "2022-03-15", "count": 1 }, { "date": "2022-03-18", "count": 1 }, { "date": "2022-03-20", "count": 1 }, { "date": "2022-03-22", "count": 1 }, { "date": "2022-03-25", "count": 1 }, { "date": "2022-03-26", "count": 2 }, { "date": "2022-03-27", "count": 1 }, { "date": "2022-03-28", "count": 1 }, { "date": "2022-03-29", "count": 1 }, { "date": "2022-03-30", "count": 1 }, { "date": "2022-03-31", "count": 1 }, { "date": "2022-04-01", "count": 1 }, { "date": "2022-04-02", "count": 1 }, { "date": "2022-04-04", "count": 1 }, { "date": "2022-04-06", "count": 1 }, { "date": "2022-04-07", "count": 1 }, { "date": "2022-04-08", "count": 1 }, { "date": "2022-04-09", "count": 1 }, { "date": "2022-04-10", "count": 1 }, { "date": "2022-04-12", "count": 2 }, { "date": "2022-04-14", "count": 3 }, { "date": "2022-04-16", "count": 1 }, { "date": "2022-04-18", "count": 2 }, { "date": "2022-04-19", "count": 1 }, { "date": "2022-04-22", "count": 1 }, { "date": "2022-04-25", "count": 1 }, { "date": "2022-04-27", "count": 1 }, { "date": "2022-04-28", "count": 2 }, { "date": "2022-04-29", "count": 1 }, { "date": "2022-05-01", "count": 1 }, { "date": "2022-05-04", "count": 1 }, { "date": "2022-05-05", "count": 2 }, { "date": "2022-05-07", "count": 1 }, { "date": "2022-05-09", "count": 1 }, { "date": "2022-05-13", "count": 1 }, { "date": "2022-05-14", "count": 1 }, { "date": "2022-05-18", "count": 2 }, { "date": "2022-05-21", "count": 1 }, { "date": "2022-05-23", "count": 2 }, { "date": "2022-05-24", "count": 3 }, { "date": "2022-05-25", "count": 3 }, { "date": "2022-05-27", "count": 2 }, { "date": "2022-05-29", "count": 1 }, { "date": "2022-05-31", "count": 1 }, { "date": "2022-06-01", "count": 2 }, { "date": "2022-06-04", "count": 1 }, { "date": "2022-06-06", "count": 2 }, { "date": "2022-06-09", "count": 1 }, { "date": "2022-06-10", "count": 2 }, { "date": "2022-06-13", "count": 1 }, { "date": "2022-06-15", "count": 1 }, { "date": "2022-06-16", "count": 1 }, { "date": "2022-06-20", "count": 1 }, { "date": "2022-06-21", "count": 2 }, { "date": "2022-06-22", "count": 1 }, { "date": "2022-06-24", "count": 1 }, { "date": "2022-06-25", "count": 1 }, { "date": "2022-06-27", "count": 1 }, { "date": "2022-06-29", "count": 2 }, { "date": "2022-07-05", "count": 1 }, { "date": "2022-07-06", "count": 1 }, { "date": "2022-07-08", "count": 1 }, { "date": "2022-07-10", "count": 1 }, { "date": "2022-07-11", "count": 1 }, { "date": "2022-07-15", "count": 2 }, { "date": "2022-07-16", "count": 1 }, { "date": "2022-07-22", "count": 2 }, { "date": "2022-07-25", "count": 1 }, { "date": "2022-07-26", "count": 1 }, { "date": "2022-07-28", "count": 1 }, { "date": "2022-07-31", "count": 1 }, { "date": "2022-08-03", "count": 1 }, { "date": "2022-08-04", "count": 1 }, { "date": "2022-08-11", "count": 1 }, { "date": "2022-08-12", "count": 1 }, { "date": "2022-08-19", "count": 1 }, { "date": "2022-08-22", "count": 3 }, { "date": "2022-08-23", "count": 1 }, { "date": "2022-08-26", "count": 2 }, { "date": "2022-08-27", "count": 2 }, { "date": "2022-08-30", "count": 2 }, { "date": "2022-08-31", "count": 1 }, { "date": "2022-09-02", "count": 1 }, { "date": "2022-09-04", "count": 2 }, { "date": "2022-09-08", "count": 1 }, { "date": "2022-09-12", "count": 2 }, { "date": "2022-09-13", "count": 1 }, { "date": "2022-09-16", "count": 1 }, { "date": "2022-09-19", "count": 1 }, { "date": "2022-09-25", "count": 1 }, { "date": "2022-09-28", "count": 1 }, { "date": "2022-09-29", "count": 2 }, { "date": "2022-09-30", "count": 1 }, { "date": "2022-10-05", "count": 1 }, { "date": "2022-10-08", "count": 1 }, { "date": "2022-10-09", "count": 1 }, { "date": "2022-10-10", "count": 2 }, { "date": "2022-10-11", "count": 2 }, { "date": "2022-10-12", "count": 1 }, { "date": "2022-10-13", "count": 1 }, { "date": "2022-10-15", "count": 1 }, { "date": "2022-10-18", "count": 1 }, { "date": "2022-10-19", "count": 1 }, { "date": "2022-10-20", "count": 3 }, { "date": "2022-10-21", "count": 1 }, { "date": "2022-10-22", "count": 1 }, { "date": "2022-10-23", "count": 1 }, { "date": "2022-10-26", "count": 1 }, { "date": "2022-10-29", "count": 1 }, { "date": "2022-11-02", "count": 2 }, { "date": "2022-11-04", "count": 1 }, { "date": "2022-11-06", "count": 1 }, { "date": "2022-11-12", "count": 1 }, { "date": "2022-11-14", "count": 1 }, { "date": "2022-11-16", "count": 1 }, { "date": "2022-11-17", "count": 4 }, { "date": "2022-11-18", "count": 1 }, { "date": "2022-11-21", "count": 1 }, { "date": "2022-11-22", "count": 1 }, { "date": "2022-11-25", "count": 2 }, { "date": "2022-11-26", "count": 1 }, { "date": "2022-11-28", "count": 1 }, { "date": "2022-11-29", "count": 1 }, { "date": "2022-12-03", "count": 1 }, { "date": "2022-12-05", "count": 1 }, { "date": "2022-12-12", "count": 1 }, { "date": "2022-12-13", "count": 1 }, { "date": "2022-12-15", "count": 1 }, { "date": "2022-12-16", "count": 1 }, { "date": "2022-12-19", "count": 1 }, { "date": "2022-12-20", "count": 1 }, { "date": "2022-12-24", "count": 1 }, { "date": "2022-12-30", "count": 2 }, { "date": "2023-01-04", "count": 1 }, { "date": "2023-01-05", "count": 1 }, { "date": "2023-01-15", "count": 1 }, { "date": "2023-01-17", "count": 1 }, { "date": "2023-01-21", "count": 2 }, { "date": "2023-01-23", "count": 1 }, { "date": "2023-01-24", "count": 1 }, { "date": "2023-01-25", "count": 1 }, { "date": "2023-01-26", "count": 1 }, { "date": "2023-01-30", "count": 3 }, { "date": "2023-02-02", "count": 1 }, { "date": "2023-02-03", "count": 1 }, { "date": "2023-02-04", "count": 2 }, { "date": "2023-02-06", "count": 2 }, { "date": "2023-02-07", "count": 3 }, { "date": "2023-02-09", "count": 1 }, { "date": "2023-02-13", "count": 2 }, { "date": "2023-02-15", "count": 1 }, { "date": "2023-02-18", "count": 1 }, { "date": "2023-02-20", "count": 1 }, { "date": "2023-02-21", "count": 1 }, { "date": "2023-02-24", "count": 2 }, { "date": "2023-02-25", "count": 1 }, { "date": "2023-02-27", "count": 1 }, { "date": "2023-02-28", "count": 1 }, { "date": "2023-03-02", "count": 1 }, { "date": "2023-03-03", "count": 1 }, { "date": "2023-03-04", "count": 2 }, { "date": "2023-03-10", "count": 1 }, { "date": "2023-03-11", "count": 1 }, { "date": "2023-03-13", "count": 2 }, { "date": "2023-03-16", "count": 1 }, { "date": "2023-03-21", "count": 1 }, { "date": "2023-03-22", "count": 1 }, { "date": "2023-03-23", "count": 2 }, { "date": "2023-03-24", "count": 1 }, { "date": "2023-03-29", "count": 1 }, { "date": "2023-03-30", "count": 2 }, { "date": "2023-04-02", "count": 1 }, { "date": "2023-04-03", "count": 1 }, { "date": "2023-04-04", "count": 1 }, { "date": "2023-04-07", "count": 1 }, { "date": "2023-04-16", "count": 1 }, { "date": "2023-04-20", "count": 2 }, { "date": "2023-04-23", "count": 1 }, { "date": "2023-04-29", "count": 1 }, { "date": "2023-05-01", "count": 1 }, { "date": "2023-05-04", "count": 1 }, { "date": "2023-05-09", "count": 1 }, { "date": "2023-05-10", "count": 1 }, { "date": "2023-05-11", "count": 2 }, { "date": "2023-05-16", "count": 1 }, { "date": "2023-05-19", "count": 1 }, { "date": "2023-05-23", "count": 1 }, { "date": "2023-05-24", "count": 1 }, { "date": "2023-05-26", "count": 1 }, { "date": "2023-05-27", "count": 2 }, { "date": "2023-06-01", "count": 1 }, { "date": "2023-06-03", "count": 1 }, { "date": "2023-06-04", "count": 2 }, { "date": "2023-06-07", "count": 2 }, { "date": "2023-06-08", "count": 1 }, { "date": "2023-06-09", "count": 2 }, { "date": "2023-06-15", "count": 1 }, { "date": "2023-06-17", "count": 1 }, { "date": "2023-06-22", "count": 1 }, { "date": "2023-06-23", "count": 1 }, { "date": "2023-06-26", "count": 1 }, { "date": "2023-06-27", "count": 1 }, { "date": "2023-06-30", "count": 2 }, { "date": "2023-07-03", "count": 1 }, { "date": "2023-07-06", "count": 1 }, { "date": "2023-07-13", "count": 1 }, { "date": "2023-07-14", "count": 1 }, { "date": "2023-07-17", "count": 1 }, { "date": "2023-07-20", "count": 1 }, { "date": "2023-07-23", "count": 2 }, { "date": "2023-07-26", "count": 1 }, { "date": "2023-07-27", "count": 1 }, { "date": "2023-07-28", "count": 1 }, { "date": "2023-08-02", "count": 1 }, { "date": "2023-08-03", "count": 1 }, { "date": "2023-08-10", "count": 2 }, { "date": "2023-08-15", "count": 1 }, { "date": "2023-08-22", "count": 1 }, { "date": "2023-08-23", "count": 1 }, { "date": "2023-08-24", "count": 1 }, { "date": "2023-08-25", "count": 1 }, { "date": "2023-09-01", "count": 1 }, { "date": "2023-09-02", "count": 1 }, { "date": "2023-09-05", "count": 2 }, { "date": "2023-09-06", "count": 1 }, { "date": "2023-09-07", "count": 1 }, { "date": "2023-09-13", "count": 1 }, { "date": "2023-09-15", "count": 1 }, { "date": "2023-09-21", "count": 1 }, { "date": "2023-09-22", "count": 2 }, { "date": "2023-09-23", "count": 2 }, { "date": "2023-09-24", "count": 1 }, { "date": "2023-10-01", "count": 1 }, { "date": "2023-10-02", "count": 1 }, { "date": "2023-10-07", "count": 2 }, { "date": "2023-10-11", "count": 1 }, { "date": "2023-10-12", "count": 1 }, { "date": "2023-10-14", "count": 1 }, { "date": "2023-10-17", "count": 1 }, { "date": "2023-10-18", "count": 1 }, { "date": "2023-10-19", "count": 4 }, { "date": "2023-10-22", "count": 1 }, { "date": "2023-10-24", "count": 1 }, { "date": "2023-10-25", "count": 1 }, { "date": "2023-10-26", "count": 3 }, { "date": "2023-10-29", "count": 2 }, { "date": "2023-10-31", "count": 1 }, { "date": "2023-11-01", "count": 1 }, { "date": "2023-11-06", "count": 2 }, { "date": "2023-11-07", "count": 1 }, { "date": "2023-11-09", "count": 1 }, { "date": "2023-11-11", "count": 1 }, { "date": "2023-11-13", "count": 1 }, { "date": "2023-11-14", "count": 1 }, { "date": "2023-11-15", "count": 1 }, { "date": "2023-11-20", "count": 1 }, { "date": "2023-11-22", "count": 3 }, { "date": "2023-11-23", "count": 1 }, { "date": "2023-11-24", "count": 1 }, { "date": "2023-11-27", "count": 2 }, { "date": "2023-11-28", "count": 1 }, { "date": "2023-12-01", "count": 1 }, { "date": "2023-12-04", "count": 1 }, { "date": "2023-12-05", "count": 1 }, { "date": "2023-12-06", "count": 2 }, { "date": "2023-12-07", "count": 1 }, { "date": "2023-12-08", "count": 1 }, { "date": "2023-12-13", "count": 1 }, { "date": "2023-12-14", "count": 1 }, { "date": "2023-12-17", "count": 1 }, { "date": "2023-12-19", "count": 1 }, { "date": "2023-12-23", "count": 1 }, { "date": "2023-12-27", "count": 1 }, { "date": "2023-12-28", "count": 1 }, { "date": "2024-01-06", "count": 1 }, { "date": "2024-01-15", "count": 1 }, { "date": "2024-01-17", "count": 2 }, { "date": "2024-01-19", "count": 1 }, { "date": "2024-01-22", "count": 1 }, { "date": "2024-01-23", "count": 1 }, { "date": "2024-01-25", "count": 1 }, { "date": "2024-02-04", "count": 1 }, { "date": "2024-02-05", "count": 1 }, { "date": "2024-02-07", "count": 2 }, { "date": "2024-02-09", "count": 1 }, { "date": "2024-02-14", "count": 1 }, { "date": "2024-02-15", "count": 1 }, { "date": "2024-02-20", "count": 1 }, { "date": "2024-02-21", "count": 2 }, { "date": "2024-02-27", "count": 1 }, { "date": "2024-02-28", "count": 1 }, { "date": "2024-03-03", "count": 1 }, { "date": "2024-03-11", "count": 2 }, { "date": "2024-03-13", "count": 1 }, { "date": "2024-03-15", "count": 1 }, { "date": "2024-03-18", "count": 2 }, { "date": "2024-03-20", "count": 1 }, { "date": "2024-03-21", "count": 2 }, { "date": "2024-03-22", "count": 1 }, { "date": "2024-03-25", "count": 1 }, { "date": "2024-04-02", "count": 1 }, { "date": "2024-04-07", "count": 2 }, { "date": "2024-04-09", "count": 1 }, { "date": "2024-04-21", "count": 1 }, { "date": "2024-04-24", "count": 2 }, { "date": "2024-04-28", "count": 1 }, { "date": "2024-05-02", "count": 1 }, { "date": "2024-05-08", "count": 1 }, { "date": "2024-05-12", "count": 1 }, { "date": "2024-05-16", "count": 1 }, { "date": "2024-05-18", "count": 1 }, { "date": "2024-05-20", "count": 1 }, { "date": "2024-05-21", "count": 1 }, { "date": "2024-05-22", "count": 1 }, { "date": "2024-05-25", "count": 1 }, { "date": "2024-05-29", "count": 1 }, { "date": "2024-05-30", "count": 1 }, { "date": "2024-06-03", "count": 1 }, { "date": "2024-06-07", "count": 1 }, { "date": "2024-06-12", "count": 1 }, { "date": "2024-06-15", "count": 1 }, { "date": "2024-06-18", "count": 2 }, { "date": "2024-06-21", "count": 1 }, { "date": "2024-06-30", "count": 2 }, { "date": "2024-07-04", "count": 1 }, { "date": "2024-07-05", "count": 2 }, { "date": "2024-07-07", "count": 1 }, { "date": "2024-07-08", "count": 1 }, { "date": "2024-07-09", "count": 1 }, { "date": "2024-07-22", "count": 1 }, { "date": "2024-07-23", "count": 1 }, { "date": "2024-07-30", "count": 1 }, { "date": "2024-07-31", "count": 1 }, { "date": "2024-08-01", "count": 1 }, { "date": "2024-08-13", "count": 1 }, { "date": "2024-08-16", "count": 1 }, { "date": "2024-08-21", "count": 1 }, { "date": "2024-08-22", "count": 1 }, { "date": "2024-08-29", "count": 1 }, { "date": "2024-09-04", "count": 1 }, { "date": "2024-09-07", "count": 1 }, { "date": "2024-09-10", "count": 2 }, { "date": "2024-09-11", "count": 1 }, { "date": "2024-09-16", "count": 1 }, { "date": "2024-09-17", "count": 1 }, { "date": "2024-09-28", "count": 1 }, { "date": "2024-10-02", "count": 2 }, { "date": "2024-10-10", "count": 2 }, { "date": "2024-10-12", "count": 1 }, { "date": "2024-10-15", "count": 1 }, { "date": "2024-10-17", "count": 1 }, { "date": "2024-10-20", "count": 1 }, { "date": "2024-10-23", "count": 1 }, { "date": "2024-10-29", "count": 1 }, { "date": "2024-10-30", "count": 1 }, { "date": "2024-10-31", "count": 1 }, { "date": "2024-11-02", "count": 1 }, { "date": "2024-11-05", "count": 1 }, { "date": "2024-11-06", "count": 2 }, { "date": "2024-11-16", "count": 1 }, { "date": "2024-11-17", "count": 1 }, { "date": "2024-11-23", "count": 1 }, { "date": "2024-12-11", "count": 1 }, { "date": "2024-12-13", "count": 1 }, { "date": "2024-12-27", "count": 1 }, { "date": "2024-12-30", "count": 1 }, { "date": "2025-01-08", "count": 1 }, { "date": "2025-01-16", "count": 1 }, { "date": "2025-01-22", "count": 1 }, { "date": "2025-01-29", "count": 2 }, { "date": "2025-02-05", "count": 1 }, { "date": "2025-02-06", "count": 1 }, { "date": "2025-02-11", "count": 1 }, { "date": "2025-02-17", "count": 1 }, { "date": "2025-02-18", "count": 1 }, { "date": "2025-02-20", "count": 1 }, { "date": "2025-02-21", "count": 1 }, { "date": "2025-02-22", "count": 1 }, { "date": "2025-02-23", "count": 1 }, { "date": "2025-02-26", "count": 1 }, { "date": "2025-03-02", "count": 1 }, { "date": "2025-03-05", "count": 1 }, { "date": "2025-03-13", "count": 2 }, { "date": "2025-03-28", "count": 1 }, { "date": "2025-04-03", "count": 1 }, { "date": "2025-04-04", "count": 1 }, { "date": "2025-04-08", "count": 1 }, { "date": "2025-04-17", "count": 1 }, { "date": "2025-05-04", "count": 1 }, { "date": "2025-05-05", "count": 1 }, { "date": "2025-05-18", "count": 1 }, { "date": "2025-05-28", "count": 2 }, { "date": "2025-05-29", "count": 2 }, { "date": "2025-05-31", "count": 1 }, { "date": "2025-06-07", "count": 1 }, { "date": "2025-06-09", "count": 1 }, { "date": "2025-06-10", "count": 1 }, { "date": "2025-06-15", "count": 1 }, { "date": "2025-06-17", "count": 1 }, { "date": "2025-07-04", "count": 1 }, { "date": "2025-07-07", "count": 2 }, { "date": "2025-07-08", "count": 1 }, { "date": "2025-07-09", "count": 1 }, { "date": "2025-07-11", "count": 2 }, { "date": "2025-07-15", "count": 1 }, { "date": "2025-07-24", "count": 1 }, { "date": "2025-07-27", "count": 2 }, { "date": "2025-08-03", "count": 1 }, { "date": "2025-08-04", "count": 1 }, { "date": "2025-08-12", "count": 1 }, { "date": "2025-08-17", "count": 1 }, { "date": "2025-08-24", "count": 1 }, { "date": "2025-08-26", "count": 1 }, { "date": "2025-09-05", "count": 1 }, { "date": "2025-09-08", "count": 1 }, { "date": "2025-09-17", "count": 2 }, { "date": "2025-09-21", "count": 1 }, { "date": "2025-09-25", "count": 1 }, { "date": "2025-09-29", "count": 1 }, { "date": "2025-10-02", "count": 1 }, { "date": "2025-10-12", "count": 1 }, { "date": "2025-10-24", "count": 1 }, { "date": "2025-10-26", "count": 1 }, { "date": "2025-10-29", "count": 1 }, { "date": "2025-11-05", "count": 1 }, { "date": "2025-11-19", "count": 1 }, { "date": "2025-11-23", "count": 1 }, { "date": "2025-11-24", "count": 1 }, { "date": "2025-11-28", "count": 1 }, { "date": "2025-12-01", "count": 1 }, { "date": "2025-12-02", "count": 1 }, { "date": "2025-12-04", "count": 1 }, { "date": "2025-12-06", "count": 1 }, { "date": "2025-12-20", "count": 1 }, { "date": "2025-12-25", "count": 1 }, { "date": "2026-01-01", "count": 1 }, { "date": "2026-01-13", "count": 1 }, { "date": "2026-01-19", "count": 1 }, { "date": "2026-01-23", "count": 1 }, { "date": "2026-02-06", "count": 1 }, { "date": "2026-02-25", "count": 1 }, { "date": "2026-03-04", "count": 2 }, { "date": "2026-03-14", "count": 1 }, { "date": "2026-03-20", "count": 1 }, { "date": "2026-03-25", "count": 1 }, { "date": "2026-04-14", "count": 1 }, { "date": "2026-04-19", "count": 1 }, { "date": "2026-04-20", "count": 1 }, { "date": "2026-04-25", "count": 1 }, { "date": "2026-04-30", "count": 1 }, { "date": "2026-05-06", "count": 1 }, { "date": "2026-05-11", "count": 1 }, { "date": "2026-05-23", "count": 1 }, { "date": "2026-05-24", "count": 1 }, { "date": "2026-05-25", "count": 7 }, { "date": "2026-05-26", "count": 1 }, { "date": "2026-05-30", "count": 1 }, { "date": "2026-06-15", "count": 1 }, { "date": "2026-06-21", "count": 1 }, { "date": "2026-06-22", "count": 1 }, { "date": "2026-06-26", "count": 1 }, { "date": "2026-07-02", "count": 1 }, { "date": "2026-07-06", "count": 1 } ], "complete": false, "collected": 1000, "total_stars": 8231 }, "open_issues_and_prs": 37 }, "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": 29222, "source_files_sampled": 99, "oversized_source_files": 0, "agent_instruction_files": [], "agent_instruction_max_bytes": null }, "dependencies": { "manifests": [ "Gemfile" ], "advisories": { "error": null, "scope": "repository_graph", "source": "osv", "findings": [ { "name": "rack-session", "direct": false, "version": "2.1.1", "severity": "critical", "ecosystem": "rubygems", "cvss_score": 9.1, "advisory_ids": [ "GHSA-33qg-7wpp-89cq" ], "fixed_version": "2.1.2", "advisory_count": 1, "oldest_advisory_days": 105 }, { "name": "concurrent-ruby", "direct": false, "version": "1.3.6", "severity": "high", "ecosystem": "rubygems", "cvss_score": 7.5, "advisory_ids": [ "GHSA-6wx8-w4f5-wwcr", "GHSA-h8w8-99g7-qmvj", "GHSA-wv3x-4vxv-whpp" ], "fixed_version": "1.3.7", "advisory_count": 3, "oldest_advisory_days": 32 }, { "name": "erb", "direct": false, "version": "6.0.2", "severity": "high", "ecosystem": "rubygems", "cvss_score": 8.1, "advisory_ids": [ "GHSA-q339-8rmv-2mhv" ], "fixed_version": "6.0.4", "advisory_count": 1, "oldest_advisory_days": 88 }, { "name": "nokogiri", "direct": false, "version": "1.19.2", "severity": "high", "ecosystem": "rubygems", "cvss_score": 7.5, "advisory_ids": [ "GHSA-5prr-v3j2-97mh", "GHSA-5v8h-3h3q-446p", "GHSA-8678-w3jw-xfc2", "GHSA-9cv2-cfxc-v4v2", "GHSA-c4rq-3m3g-8wgx", "GHSA-p67v-3w7g-wjg7", "GHSA-phwj-rprq-35pp", "GHSA-v2fc-qm4h-8hqv", "GHSA-wfpw-mmfh-qq69", "GHSA-wjv4-x9w8-wm3h" ], "fixed_version": "1.19.4", "advisory_count": 10, "oldest_advisory_days": 76 }, { "name": "rack", "direct": false, "version": "3.2.5", "severity": "high", "ecosystem": "rubygems", "cvss_score": 7.5, "advisory_ids": [ "GHSA-7mqq-6cf9-v2qp", "GHSA-8vqr-qjwx-82mw", "GHSA-g2pf-xv49-m2h5", "GHSA-h2jq-g4cq-5ppq", "GHSA-q2ww-5357-x388", "GHSA-q4qf-9j86-f5mh", "GHSA-qfgr-crr9-7r49", "GHSA-qv7j-4883-hwh7", "GHSA-rx22-g9mx-qrhv", "GHSA-v569-hp3g-36wr" ], "fixed_version": "3.2.6", "advisory_count": 13, "oldest_advisory_days": 110 }, { "name": "loofah", "direct": false, "version": "2.25.1", "severity": "moderate", "ecosystem": "rubygems", "cvss_score": 4.7, "advisory_ids": [ "GHSA-5qhf-9phg-95m2", "GHSA-8whx-365g-h9vv", "GHSA-9wjq-cp2p-hrgf" ], "fixed_version": "2.25.2", "advisory_count": 3, "oldest_advisory_days": 0 }, { "name": "rails-html-sanitizer", "direct": false, "version": "1.7.0", "severity": "low", "ecosystem": "rubygems", "cvss_score": 0, "advisory_ids": [ "GHSA-cj75-f6xr-r4g7" ], "fixed_version": "1.7.1", "advisory_count": 1, "oldest_advisory_days": 0 } ], "collected": true, "malicious": [], "truncated": false, "by_severity": { "low": 1, "high": 4, "critical": 1, "moderate": 1 }, "advisory_count": 32, "affected_count": 7, "assessed_count": 49, "malicious_count": 0, "assessed_package": null, "unassessed_count": 6, "direct_affected_count": 0 }, "ecosystems": [ "rubygems" ], "dependencies": [ { "name": "activemodel", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": "~> 8.1.0" }, { "name": "actionpack", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": "~> 8.1.0" }, { "name": "railties", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": "~> 8.1.0" } ], "all_dependencies": { "error": null, "source": "github-sbom", "packages": [ { "name": "actionpack", "direct": true, "version": null, "ecosystem": "rubygems" }, { "name": "actionpack", "direct": true, "version": "8.1.3", "ecosystem": "rubygems" }, { "name": "activemodel", "direct": true, "version": null, "ecosystem": "rubygems" }, { "name": "activemodel", "direct": true, "version": "8.1.3", "ecosystem": "rubygems" }, { "name": "railties", "direct": true, "version": "8.1.3", "ecosystem": "rubygems" }, { "name": "actionview", "direct": false, "version": "8.1.3", "ecosystem": "rubygems" }, { "name": "activesupport", "direct": false, "version": "8.1.3", "ecosystem": "rubygems" }, { "name": "base64", "direct": false, "version": "0.3.0", "ecosystem": "rubygems" }, { "name": "bigdecimal", "direct": false, "version": "4.0.1", "ecosystem": "rubygems" }, { "name": "builder", "direct": false, "version": "3.3.0", "ecosystem": "rubygems" }, { "name": "concurrent-ruby", "direct": false, "version": "1.3.6", "ecosystem": "rubygems" }, { "name": "connection_pool", "direct": false, "version": "3.0.2", "ecosystem": "rubygems" }, { "name": "countries", "direct": false, "version": "8.1.0", "ecosystem": "rubygems" }, { "name": "country_select", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "country_select", "direct": false, "version": "11.0.0", "ecosystem": "rubygems" }, { "name": "crass", "direct": false, "version": "1.0.6", "ecosystem": "rubygems" }, { "name": "date", "direct": false, "version": "3.5.1", "ecosystem": "rubygems" }, { "name": "drb", "direct": false, "version": "2.2.3", "ecosystem": "rubygems" }, { "name": "erb", "direct": false, "version": "6.0.2", "ecosystem": "rubygems" }, { "name": "erubi", "direct": false, "version": "1.13.1", "ecosystem": "rubygems" }, { "name": "i18n", "direct": false, "version": "1.14.8", "ecosystem": "rubygems" }, { "name": "io-console", "direct": false, "version": "0.8.2", "ecosystem": "rubygems" }, { "name": "irb", "direct": false, "version": "1.17.0", "ecosystem": "rubygems" }, { "name": "json", "direct": false, "version": "2.19.3", "ecosystem": "rubygems" }, { "name": "logger", "direct": false, "version": "1.7.0", "ecosystem": "rubygems" }, { "name": "loofah", "direct": false, "version": "2.25.1", "ecosystem": "rubygems" }, { "name": "mini_portile2", "direct": false, "version": "2.8.9", "ecosystem": "rubygems" }, { "name": "minitest", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "minitest", "direct": false, "version": "5.27.0", "ecosystem": "rubygems" }, { "name": "nokogiri", "direct": false, "version": "1.19.2", "ecosystem": "rubygems" }, { "name": "pp", "direct": false, "version": "0.6.3", "ecosystem": "rubygems" }, { "name": "prettyprint", "direct": false, "version": "0.2.0", "ecosystem": "rubygems" }, { "name": "prism", "direct": false, "version": "1.9.0", "ecosystem": "rubygems" }, { "name": "psych", "direct": false, "version": "5.3.1", "ecosystem": "rubygems" }, { "name": "racc", "direct": false, "version": "1.8.1", "ecosystem": "rubygems" }, { "name": "rack", "direct": false, "version": "3.2.5", "ecosystem": "rubygems" }, { "name": "rack-session", "direct": false, "version": "2.1.1", "ecosystem": "rubygems" }, { "name": "rack-test", "direct": false, "version": "2.2.0", "ecosystem": "rubygems" }, { "name": "rackup", "direct": false, "version": "2.3.1", "ecosystem": "rubygems" }, { "name": "rails-dom-testing", "direct": false, "version": "2.3.0", "ecosystem": "rubygems" }, { "name": "rails-html-sanitizer", "direct": false, "version": "1.7.0", "ecosystem": "rubygems" }, { "name": "rake", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "rake", "direct": false, "version": "13.3.1", "ecosystem": "rubygems" }, { "name": "rdoc", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "rdoc", "direct": false, "version": "7.2.0", "ecosystem": "rubygems" }, { "name": "reline", "direct": false, "version": "0.6.3", "ecosystem": "rubygems" }, { "name": "securerandom", "direct": false, "version": "0.4.1", "ecosystem": "rubygems" }, { "name": "stringio", "direct": false, "version": "3.2.0", "ecosystem": "rubygems" }, { "name": "thor", "direct": false, "version": "1.5.0", "ecosystem": "rubygems" }, { "name": "tsort", "direct": false, "version": "0.2.0", "ecosystem": "rubygems" }, { "name": "tzinfo", "direct": false, "version": "2.0.6", "ecosystem": "rubygems" }, { "name": "unaccent", "direct": false, "version": "0.4.0", "ecosystem": "rubygems" }, { "name": "uri", "direct": false, "version": "1.1.1", "ecosystem": "rubygems" }, { "name": "useragent", "direct": false, "version": "0.16.11", "ecosystem": "rubygems" }, { "name": "zeitwerk", "direct": false, "version": "2.7.5", "ecosystem": "rubygems" } ], "collected": true, "truncated": false, "total_count": 55, "direct_count": 5, "indirect_count": 50 } }, "maintainership": { "issues": { "open_prs": 13, "merged_prs": 359, "open_issues": 24, "closed_ratio": 0.981, "closed_issues": 1214, "closed_unmerged_prs": 256 }, "bus_factor": 2, "bot_contributors": 0, "top_contributors": [ { "type": "User", "login": "carlosantoniodasilva", "commits": 497, "avatar_url": "https://avatars.githubusercontent.com/u/26328?v=4" }, { "type": "User", "login": "rafaelfranca", "commits": 446, "avatar_url": "https://avatars.githubusercontent.com/u/47848?v=4" }, { "type": "User", "login": "josevalim", "commits": 227, "avatar_url": "https://avatars.githubusercontent.com/u/9582?v=4" }, { "type": "User", "login": "nashby", "commits": 136, "avatar_url": "https://avatars.githubusercontent.com/u/200500?v=4" }, { "type": "User", "login": "feliperenan", "commits": 104, "avatar_url": "https://avatars.githubusercontent.com/u/27698968?v=4" }, { "type": "User", "login": "lucasmazza", "commits": 65, "avatar_url": "https://avatars.githubusercontent.com/u/80978?v=4" }, { "type": "User", "login": "laurocaetano", "commits": 21, "avatar_url": "https://avatars.githubusercontent.com/u/611891?v=4" }, { "type": "User", "login": "tegon", "commits": 18, "avatar_url": "https://avatars.githubusercontent.com/u/3727827?v=4" }, { "type": "User", "login": "ulissesalmeida", "commits": 15, "avatar_url": "https://avatars.githubusercontent.com/u/867308?v=4" }, { "type": "User", "login": "m5o", "commits": 12, "avatar_url": "https://avatars.githubusercontent.com/u/26371?v=4" } ], "contributors_sampled": 100, "top_contributor_share": 0.275 }, "quality_signals": { "has_ci": true, "has_tests": true, "ci_workflows": [ "test.yml" ], "has_docs_dir": false, "linter_configs": [], "has_editorconfig": false, "has_linter_config": false, "has_precommit_config": false }, "security_signals": { "lockfiles": [ "Gemfile.lock" ], "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": 8, "reason": "4 out of 5 merged PRs checked by a CI test -- score normalized to 8", "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": 1, "reason": "Found 3/25 approved changesets -- score normalized to 1", "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review" }, { "name": "Contributors", "score": 10, "reason": "project has 47 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": 10, "reason": "license file detected", "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license" }, { "name": "Maintained", "score": 0, "reason": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0", "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": 1, "reason": "SAST tool is not run on all commits -- score normalized to 1", "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": 10, "reason": "GitHub workflow tokens follow principle of least privilege", "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions" }, { "name": "Vulnerabilities", "score": 0, "reason": "32 existing vulnerabilities detected", "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities" } ], "commit": "18f38aad0bdeca2ba1815043b94d96fdbbe6a325", "ran_at": "2026-07-22T00:56:59Z", "aggregate_score": 3.6, "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-07-18T20:15:08Z", "oldest_open_prs": [ { "number": 1751, "created_at": "2021-11-26T16:26:28Z", "last_comment_at": "2023-10-27T10:13:34Z", "last_comment_author": "ldonnet" }, { "number": 1759, "created_at": "2022-02-02T21:20:29Z", "last_comment_at": null, "last_comment_author": null }, { "number": 1762, "created_at": "2022-02-20T16:13:44Z", "last_comment_at": "2024-07-06T04:06:14Z", "last_comment_author": "JuanVqz" }, { "number": 1794, "created_at": "2022-11-18T07:11:41Z", "last_comment_at": "2022-11-18T07:46:48Z", "last_comment_author": "martinodonnell" }, { "number": 1796, "created_at": "2022-11-23T19:34:30Z", "last_comment_at": "2024-06-17T18:40:56Z", "last_comment_author": "pas256" }, { "number": 1804, "created_at": "2023-01-17T18:39:01Z", "last_comment_at": null, "last_comment_author": null }, { "number": 1813, "created_at": "2023-03-09T11:18:59Z", "last_comment_at": "2023-03-09T11:37:40Z", "last_comment_author": "Nerian" }, { "number": 1830, "created_at": "2024-02-14T20:27:28Z", "last_comment_at": "2024-12-04T18:42:45Z", "last_comment_author": "csculley" }, { "number": 1852, "created_at": "2024-11-11T22:24:14Z", "last_comment_at": null, "last_comment_author": null }, { "number": 1855, "created_at": "2025-05-14T13:47:11Z", "last_comment_at": null, "last_comment_author": null }, { "number": 1856, "created_at": "2025-11-07T13:34:15Z", "last_comment_at": null, "last_comment_author": null }, { "number": 1861, "created_at": "2026-02-07T13:38:38Z", "last_comment_at": "2026-04-19T12:15:49Z", "last_comment_author": "fa11enangel" }, { "number": 1871, "created_at": "2026-06-28T20:47:58Z", "last_comment_at": null, "last_comment_author": null } ], "last_merged_pr_at": "2026-04-01T23:20:59Z", "ci_last_conclusion": "SUCCESS", "oldest_open_issues": [ { "number": 1180, "created_at": "2014-12-19T09:19:05Z", "last_comment_at": "2014-12-20T15:58:29Z", "last_comment_author": "rafaelfranca" }, { "number": 1358, "created_at": "2016-02-13T14:28:37Z", "last_comment_at": "2017-09-29T18:35:26Z", "last_comment_author": "bcardiff" }, { "number": 1464, "created_at": "2017-02-20T20:38:44Z", "last_comment_at": null, "last_comment_author": null }, { "number": 1632, "created_at": "2019-01-25T09:17:01Z", "last_comment_at": "2023-01-12T21:03:54Z", "last_comment_author": "ldonnet" }, { "number": 1659, "created_at": "2019-05-09T13:59:04Z", "last_comment_at": null, "last_comment_author": null }, { "number": 1668, "created_at": "2019-08-21T14:37:19Z", "last_comment_at": "2023-12-11T22:14:39Z", "last_comment_author": "rhulse" }, { "number": 1716, "created_at": "2020-10-20T15:11:41Z", "last_comment_at": null, "last_comment_author": null }, { "number": 1727, "created_at": "2021-02-16T15:40:33Z", "last_comment_at": "2021-05-23T01:14:21Z", "last_comment_author": "yordis" }, { "number": 1739, "created_at": "2021-05-28T17:25:54Z", "last_comment_at": "2024-02-14T20:38:05Z", "last_comment_author": "jamezilla" }, { "number": 1744, "created_at": "2021-07-19T10:52:36Z", "last_comment_at": null, "last_comment_author": null }, { "number": 1746, "created_at": "2021-08-19T11:52:32Z", "last_comment_at": null, "last_comment_author": null }, { "number": 1757, "created_at": "2022-01-14T17:14:38Z", "last_comment_at": null, "last_comment_author": null }, { "number": 1788, "created_at": "2022-08-17T12:49:27Z", "last_comment_at": "2022-11-18T07:04:03Z", "last_comment_author": "martinodonnell" }, { "number": 1795, "created_at": "2022-11-21T11:48:55Z", "last_comment_at": null, "last_comment_author": null }, { "number": 1798, "created_at": "2022-11-30T15:07:09Z", "last_comment_at": "2023-12-02T15:29:08Z", "last_comment_author": "borama" }, { "number": 1800, "created_at": "2022-12-07T13:00:43Z", "last_comment_at": null, "last_comment_author": null }, { "number": 1807, "created_at": "2023-01-30T11:57:55Z", "last_comment_at": "2025-05-28T18:47:33Z", "last_comment_author": "wrkrb33" }, { "number": 1819, "created_at": "2023-08-20T17:42:12Z", "last_comment_at": "2023-10-12T12:59:37Z", "last_comment_author": "attenzione" }, { "number": 1831, "created_at": "2024-02-23T07:40:00Z", "last_comment_at": "2024-06-17T18:18:30Z", "last_comment_author": "pas256" }, { "number": 1840, "created_at": "2024-04-21T15:55:05Z", "last_comment_at": "2026-04-19T23:39:38Z", "last_comment_author": "55728" } ] } }, "config": { "disabled_metrics": [], "disabled_categories": [], "disabled_components": {} }, "source": { "url": "https://github.com/heartcombo/simple_form", "host": "github.com", "name": "simple_form", "owner": "heartcombo" }, "metrics": { "overall": { "key": "overall", "band": "moderate", "name": "Overall health", "note": null, "notes": [], "value": 63, "inputs": { "security": 49, "vitality": 43, "community": 91, "governance": 71, "engineering": 62 }, "components": [] }, "categories": [ { "key": "vitality", "band": "at_risk", "name": "Vitality", "value": 43, "weight": 0.22, "metrics": [ { "key": "development_activity", "band": "at_risk", "name": "Development activity", "note": null, "notes": [], "value": 31, "inputs": { "commits_last_year": 30, "human_commit_share": 1, "days_since_last_push": 111, "active_weeks_last_year": 11 }, "components": [ { "key": "push_recency", "name": "Push recency", "detail": "last push 111 days ago", "points": 9.9, "status": "partial", "details": [ { "code": "push_recency", "params": { "days": 111 } } ], "max_points": 36 }, { "key": "commit_cadence", "name": "Commit cadence", "detail": "11/52 weeks with commits", "points": 7.6, "status": "partial", "details": [ { "code": "commit_cadence_weeks", "params": { "weeks": 11 } } ], "max_points": 36 }, { "key": "commit_volume", "name": "Commit volume", "detail": "30 commits in the last year", "points": 13.4, "status": "partial", "details": [ { "code": "commits_last_year", "params": { "count": 30 } } ], "max_points": 18 }, { "key": "openssf_scorecard_maintained", "name": "OpenSSF Scorecard: Maintained", "detail": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0", "points": 0, "status": "missed", "details": [], "max_points": 10 } ] }, { "key": "release_discipline", "band": "moderate", "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": 62, "inputs": { "releases_count": 14, "latest_release_tag": "v5.4.1", "releases_from_tags": false, "days_since_latest_release": 197, "mean_days_between_releases": 309.8 }, "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 197 days ago", "points": 16.2, "status": "partial", "details": [ { "code": "release_recency", "params": { "days": 197 } } ], "max_points": 36 }, { "key": "release_cadence", "name": "Release cadence", "detail": "a release every ~309.8 days", "points": 12.6, "status": "partial", "details": [ { "code": "release_cadence", "params": { "gap": 309.8 } } ], "max_points": 27 }, { "key": "openssf_scorecard_signed_releases", "name": "OpenSSF Scorecard: Signed-Releases", "detail": "no releases found", "points": 0, "status": "excluded", "details": [ { "code": "no_data", "params": {} } ], "max_points": 10 } ] }, { "key": "abandonment", "band": "excellent", "name": "Abandonment", "note": null, "notes": [], "value": 100, "inputs": { "cap": null, "state": "maintained", "guards": [], "signals": [], "red_flag": false, "multiplier_pct": 100, "declared_reason": null, "unverified_reason": null, "unanswered_open_prs": null, "unanswered_open_issues": null, "days_since_last_merged_pr": null, "days_since_last_human_commit": 111, "days_since_last_human_commit_is_floor": false }, "components": [ { "key": "project_is_still_maintained", "name": "Project is still maintained", "detail": "last human commit 111 days ago", "points": 100, "status": "met", "details": [ { "code": "abandonment_maintained", "params": { "days": 111 } } ], "max_points": 100 } ] } ], "description": "Is the project alive — is code being written and are releases shipping?" }, { "key": "community", "band": "excellent", "name": "Community & Adoption", "value": 91, "weight": 0.18, "metrics": [ { "key": "popularity", "band": "excellent", "name": "Popularity & adoption", "note": null, "notes": [], "value": 97, "inputs": { "forks": 1298, "stars": 8231, "watchers": 150, "growth_state": "organic", "growth_factor_pct": 100 }, "components": [ { "key": "stars", "name": "Stars", "detail": "8,231 stars", "points": 60, "status": "met", "details": [ { "code": "stars", "params": { "count": 8231 } } ], "max_points": 60 }, { "key": "forks", "name": "Forks", "detail": "1,298 forks", "points": 25, "status": "met", "details": [ { "code": "forks", "params": { "count": 1298 } } ], "max_points": 25 }, { "key": "watchers", "name": "Watchers", "detail": "150 watchers", "points": 12.1, "status": "partial", "details": [ { "code": "watchers", "params": { "count": 150 } } ], "max_points": 15 } ] }, { "key": "community_health", "band": "good", "name": "Community health", "note": null, "notes": [], "value": 78, "inputs": { "has_readme": true, "has_license": true, "has_contributing": true, "has_issue_template": true, "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": "recognized license (MIT)", "points": 22.5, "status": "met", "details": [ { "code": "license_standard", "params": {} }, { "code": "license_spdx", "params": { "spdx": "MIT" } } ], "max_points": 22.5 }, { "key": "contributing_guide", "name": "CONTRIBUTING guide", "detail": null, "points": 18, "status": "met", "details": [], "max_points": 18 }, { "key": "code_of_conduct", "name": "Code of conduct", "detail": null, "points": 0, "status": "missed", "details": [], "max_points": 13.5 }, { "key": "issue_template", "name": "Issue template", "detail": null, "points": 7.2, "status": "met", "details": [], "max_points": 7.2 }, { "key": "pr_template", "name": "PR template", "detail": null, "points": 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": 100, "inputs": { "packages": [ "simple_form" ], "dependents": null, "ecosystems": "rubygems", "total_downloads": 95931058, "monthly_downloads": null }, "components": [ { "key": "total_downloads", "name": "Total downloads", "detail": "95,931,058 downloads all-time across rubygems", "points": 80, "status": "met", "details": [ { "code": "downloads_total", "params": { "count": 95931058, "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": 65, "inputs": { "bus_factor": 2, "contributors_sampled": 100, "top_contributor_share": 0.275 }, "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 28% of commits", "points": 16.3, "status": "partial", "details": [ { "code": "top_contributor_share", "params": { "share": 28 } } ], "max_points": 22.5 }, { "key": "contributor_breadth", "name": "Contributor breadth", "detail": "100 contributors", "points": 13.5, "status": "met", "details": [ { "code": "contributors_sampled", "params": { "count": 100 } } ], "max_points": 13.5 }, { "key": "openssf_scorecard_contributors", "name": "OpenSSF Scorecard: Contributors", "detail": "project has 47 contributing companies or organizations", "points": 10, "status": "met", "details": [], "max_points": 10 } ] }, { "key": "responsiveness", "band": "good", "name": "Issue & PR responsiveness", "note": null, "notes": [], "value": 70, "inputs": { "merged_prs": 359, "open_issues": 24, "closed_issues": 1214, "issue_closed_ratio": 0.981, "closed_unmerged_prs": 256 }, "components": [ { "key": "issue_resolution", "name": "Issue resolution", "detail": "98% of issues closed", "points": 45.9, "status": "partial", "details": [ { "code": "issues_closed_share", "params": { "share": 98 } } ], "max_points": 46.75 }, { "key": "pr_acceptance", "name": "PR acceptance", "detail": "359/615 decided PRs merged", "points": 22.3, "status": "partial", "details": [ { "code": "decided_prs_merged", "params": { "merged": 359, "decided": 615 } } ], "max_points": 38.25 }, { "key": "openssf_scorecard_code_review", "name": "OpenSSF Scorecard: Code-Review", "detail": "Found 3/25 approved changesets -- score normalized to 1", "points": 1.5, "status": "partial", "details": [], "max_points": 15 } ] }, { "key": "stewardship", "band": "moderate", "name": "Ownership & stewardship", "note": null, "notes": [], "value": 65, "inputs": { "followers": 154, "owner_type": "Organization", "is_verified": null, "owner_login": "heartcombo", "public_repos": 8, "account_age_days": 2388 }, "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": "154 followers of heartcombo", "points": 15.7, "status": "partial", "details": [ { "code": "owner_followers", "params": { "count": 154, "login": "heartcombo" } } ], "max_points": 25 }, { "key": "track_record", "name": "Track record", "detail": "8 public repos, account ~6 yr old", "points": 18.9, "status": "partial", "details": [ { "code": "public_repos", "params": { "count": 8 } }, { "code": "account_age_years", "params": { "years": 6 } } ], "max_points": 25 } ] }, { "key": "package_maintenance", "band": "excellent", "name": "Package maintenance", "note": null, "notes": [], "value": 91, "inputs": { "packages": [ "simple_form" ], "ecosystems": "rubygems", "any_deprecated": false, "min_days_since_publish": 197 }, "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 197 days ago", "points": 26, "status": "partial", "details": [ { "code": "publish_recency", "params": { "days": 197 } } ], "max_points": 35 }, { "key": "version_history", "name": "Version history", "detail": "63 published versions", "points": 20, "status": "met", "details": [ { "code": "published_versions", "params": { "count": 63 } } ], "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": 62, "weight": 0.2, "metrics": [ { "key": "engineering_practices", "band": "moderate", "name": "Engineering practices", "note": null, "notes": [], "value": 64, "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": "4 out of 5 merged PRs checked by a CI test -- score normalized to 8", "points": 16, "status": "partial", "details": [], "max_points": 20 } ] }, { "key": "documentation", "band": "moderate", "name": "Documentation", "note": null, "notes": [], "value": 60, "inputs": { "topics": [ "form-builder", "rails-helper", "ruby", "rails", "dsl" ], "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": "5 topics", "points": 10, "status": "met", "details": [ { "code": "topics_count", "params": { "count": 5 } } ], "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": 49, "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.", "notes": [ { "code": "excluded_no_data", "params": { "components": [ "packaging", "signed_releases" ] } }, { "code": "weights_renormalized", "params": {} } ], "value": 36, "inputs": { "source": "openssf_scorecard", "checks_evaluated": 16, "scorecard_version": "v5.5.0", "checks_inconclusive": 2, "scorecard_aggregate": 3.6 }, "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 5 merged PRs checked by a CI test -- score normalized to 8", "points": 2, "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 3/25 approved changesets -- score normalized to 1", "points": 0.8, "status": "partial", "details": [], "max_points": 7.5 }, { "key": "contributors", "name": "Contributors", "detail": "project has 47 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.5, "status": "met", "details": [], "max_points": 2.5 }, { "key": "maintained", "name": "Maintained", "detail": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0", "points": 0, "status": "missed", "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 1", "points": 0.5, "status": "partial", "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": "GitHub workflow tokens follow principle of least privilege", "points": 7.5, "status": "met", "details": [], "max_points": 7.5 }, { "key": "vulnerabilities", "name": "Vulnerabilities", "detail": "32 existing vulnerabilities detected", "points": 0, "status": "missed", "details": [], "max_points": 7.5 } ] }, { "key": "dependency_advisories", "band": "excellent", "name": "Dependency advisories", "note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories, No advisories left outstanding. Remaining weights renormalized. Matched 49 resolved dependencies against OSV; 6 could not be assessed (no resolved version, an unsupported ecosystem, or beyond the reported package list). This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.", "notes": [ { "code": "excluded_no_data", "params": { "components": [ "indirect_dependencies_free_of_known_advisories", "no_advisories_left_outstanding" ] } }, { "code": "weights_renormalized", "params": {} }, { "code": "advisories_scope_repository", "params": { "assessed": 49 } }, { "code": "advisories_unassessed", "params": { "count": 6 } }, { "code": "advisories_repo_graph_caveat", "params": {} }, { "code": "advisories_reachability", "params": {} } ], "value": 100, "inputs": { "source": "osv", "advisories": 32, "affected_packages": 7, "assessed_packages": 49, "unassessed_packages": 6, "affected_by_severity": "critical 1, high 4, moderate 1, low 1", "direct_affected_packages": 0 }, "components": [ { "key": "direct_dependencies_free_of_known_advisories", "name": "Direct dependencies free of known advisories", "detail": "no direct dependency carries a known advisory", "points": 35, "status": "met", "details": [ { "code": "no_direct_advisories", "params": {} } ], "max_points": 35 }, { "key": "indirect_dependencies_free_of_known_advisories", "name": "Indirect dependencies free of known advisories", "detail": "transitive set not separable from development and test dependencies in this scope", "points": 0, "status": "excluded", "details": [ { "code": "advisories_scope_not_separable", "params": {} } ], "max_points": 25 }, { "key": "no_advisories_left_outstanding", "name": "No advisories left outstanding", "detail": "no advisory carries a publication date", "points": 0, "status": "excluded", "details": [ { "code": "advisories_no_publication_date", "params": {} } ], "max_points": 40 } ] }, { "key": "malicious_dependencies", "band": "excellent", "name": "Malicious dependencies", "note": null, "notes": [], "value": 100, "inputs": { "source": "osv", "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored", "packages": [], "red_flag": false, "assessed_packages": 49, "malicious_packages": 0, "direct_malicious_packages": 0, "withdrawn_malicious_packages": 0, "installable_malicious_packages": 0 }, "components": [ { "key": "no_dependency_reported_as_a_malicious_package", "name": "No dependency reported as a malicious package", "detail": "no dependency is reported as a malicious package", "points": 100, "status": "met", "details": [ { "code": "no_malicious_dependencies", "params": {} } ], "max_points": 100 } ] }, { "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": 16 }, "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": "at_risk", "name": "AI Readiness", "value": 34, "weight": 0, "metrics": [ { "key": "ai_agent_context", "band": "critical", "name": "Agent context & guidance", "note": null, "notes": [], "value": 27, "inputs": { "has_llms_txt": false, "legible_history_share": 0.5, "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": "50 of 100 human commits state their intent (structured subject or explanatory body)", "points": 26.7, "status": "partial", "details": [ { "code": "legible_history", "params": { "legible": 50, "sampled": 100 } } ], "max_points": 40 } ] }, { "key": "ai_verify_loop", "band": "at_risk", "name": "Verify loop (build / test / typecheck)", "note": null, "notes": [], "value": 32, "inputs": { "has_nix": false, "has_tests": true, "lockfiles": [ "Gemfile.lock" ], "has_dockerfile": false, "typed_language": false, "bootstrap_files": [], "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": 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": null, "points": 0, "status": "missed", "details": [], "max_points": 11 }, { "key": "reproducible_environment", "name": "Reproducible environment", "detail": "lockfile", "points": 10, "status": "met", "details": [ { "code": "file_list", "params": { "files": "lockfile" } } ], "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": "moderate", "name": "Code legibility for models", "note": null, "notes": [], "value": 55, "inputs": { "primary_language": "Ruby", "largest_source_bytes": 29222, "source_files_sampled": 99, "oversized_source_files": 0 }, "components": [ { "key": "type_checkable_code", "name": "Type-checkable code", "detail": "Ruby without a type-check config", "points": 0, "status": "missed", "details": [ { "code": "no_typecheck_config_language", "params": { "language": "Ruby" } } ], "max_points": 45 }, { "key": "manageable_file_sizes", "name": "Manageable file sizes", "detail": "0/99 source files over 60KB", "points": 55, "status": "met", "details": [ { "code": "oversized_source_files", "params": { "kb": 60, "sampled": 99, "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-22T00:57:20.497622Z", "schema_version": "0.26.0", "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/h/heartcombo/simple_form.svg", "full_name": "heartcombo/simple_form", "license_state": "standard", "license_spdx": "MIT" }, "repoMeta": null, "notFound": false, "related": [ { "id": 27759, "full_name": "chatwoot/chatwoot", "url": "https://github.com/chatwoot/chatwoot", "description": "Open-source live-chat, email support, omni-channel desk. An alternative to Intercom, Zendesk, Salesforce Service Cloud etc. 🔥💬", "ecosystem": "npm", "ecosystems": [ "npm", "rubygems" ], "primary_language": "Ruby", "languages": [ "Ruby", "Vue", "JavaScript" ], "topics": [ "vuejs", "intercom", "zendesk", "rails", "design", "sass", "actioncable", "opensource", "livechat", "javascript", "docker", "docker-image", "heroku", "conversation", "customer-support", "whatsapp", "chat-widget", "dashboard", "ruby" ], "license_spdx": null, "license_state": "custom", "stars": 34574, "forks": 8243, "watchers": 279, "monthly_downloads": null, "latest_score": 86, "latest_band": "excellent", "latest_scanned_at": "2026-07-20T11:57:10.051267Z", "has_high_risk_jurisdiction_exposure": false, "has_malicious_dependency": false, "growth_authenticity": "unverified", "abandonment_state": "unverified", "red_flags": [], "badge_url": "" }, { "id": 273, "full_name": "rails/rails", "url": "https://github.com/rails/rails", "description": "Ruby on Rails", "ecosystem": "npm", "ecosystems": [ "npm", "rubygems" ], "primary_language": "Ruby", "languages": [ "Ruby" ], "topics": [ "rails", "mvc", "html", "activerecord", "activejob", "ruby", "framework", "websockets", "actioncable" ], "license_spdx": "MIT", "license_state": "standard", "stars": 58641, "forks": 22363, "watchers": 2334, "monthly_downloads": 12634223, "latest_score": 86, "latest_band": "excellent", "latest_scanned_at": "2026-07-21T23:15:52.789308Z", "has_high_risk_jurisdiction_exposure": false, "has_malicious_dependency": false, "growth_authenticity": "organic", "abandonment_state": "maintained", "red_flags": [], "badge_url": "" }, { "id": 32156, "full_name": "openfoodfoundation/openfoodnetwork", "url": "https://github.com/openfoodfoundation/openfoodnetwork", "description": "Connect suppliers, distributors and consumers to trade local produce.", "ecosystem": "npm", "ecosystems": [ "npm", "rubygems" ], "primary_language": "Ruby", "languages": [ "Ruby" ], "topics": [ "food", "ruby", "food-hubs", "rails", "farmers", "sustainable-consumption", "nonprofit", "hacktoberfest" ], "license_spdx": "AGPL-3.0", "license_state": "standard", "stars": 1258, "forks": 794, "watchers": 68, "monthly_downloads": null, "latest_score": 85, "latest_band": "excellent", "latest_scanned_at": "2026-07-21T07:29:17.910989Z", "has_high_risk_jurisdiction_exposure": false, "has_malicious_dependency": false, "growth_authenticity": "organic", "abandonment_state": "unverified", "red_flags": [], "badge_url": "" }, { "id": 2193, "full_name": "activeadmin/activeadmin", "url": "https://github.com/activeadmin/activeadmin", "description": "The administration framework for Ruby on Rails applications.", "ecosystem": "npm", "ecosystems": [ "npm", "rubygems" ], "primary_language": "Ruby", "languages": [ "Ruby", "Gherkin" ], "topics": [ "ruby", "activeadmin", "arbre", "rails", "admin-ui", "administration", "administrative" ], "license_spdx": "MIT", "license_state": "standard", "stars": 9705, "forks": 3324, "watchers": 178, "monthly_downloads": 337262, "latest_score": 85, "latest_band": "excellent", "latest_scanned_at": "2026-07-22T01:19:56.119134Z", "has_high_risk_jurisdiction_exposure": false, "has_malicious_dependency": false, "growth_authenticity": "organic", "abandonment_state": "maintained", "red_flags": [], "badge_url": "" }, { "id": 27828, "full_name": "solidusio/solidus", "url": "https://github.com/solidusio/solidus", "description": "🛒 Solidus, the open-source eCommerce framework for industry trailblazers.", "ecosystem": "rubygems", "ecosystems": [ "rubygems" ], "primary_language": "Ruby", "languages": [ "Ruby", "HTML" ], "topics": [ "solidus", "ruby", "rails", "storefront", "ecommerce", "ecommerce-platform", "ecommerce-framework", "hacktoberfest" ], "license_spdx": null, "license_state": "custom", "stars": 5318, "forks": 1397, "watchers": 113, "monthly_downloads": null, "latest_score": 85, "latest_band": "excellent", "latest_scanned_at": "2026-07-20T12:16:01.138242Z", "has_high_risk_jurisdiction_exposure": false, "has_malicious_dependency": false, "growth_authenticity": "unverified", "abandonment_state": "unverified", "red_flags": [], "badge_url": "" }, { "id": 31661, "full_name": "primer/view_components", "url": "https://github.com/primer/view_components", "description": "ViewComponents for the Primer Design System", "ecosystem": "npm", "ecosystems": [ "npm", "rubygems" ], "primary_language": "Ruby", "languages": [ "Ruby", "CSS" ], "topics": [ "viewcomponents", "primer", "ruby", "rails", "design-system", "viewcomponent", "view-components", "components", "library" ], "license_spdx": "MIT", "license_state": "standard", "stars": 579, "forks": 140, "watchers": 9, "monthly_downloads": 136442, "latest_score": 84, "latest_band": "good", "latest_scanned_at": "2026-07-21T05:47:03.298211Z", "has_high_risk_jurisdiction_exposure": false, "has_malicious_dependency": false, "growth_authenticity": "organic", "abandonment_state": "unverified", "red_flags": [], "badge_url": "" } ] } }
Forms made easy for Rails! It's tied to a simple DSL, with no opinion on markup.
heartcombo/simple_form erreicht einen Gesundheitsindex von 63 von 100 und liegt damit im Bereich Mittel. Am stärksten schneidet es bei Community & Adoption (91/100) ab, am schwächsten bei AI Readiness (34/100). Zuletzt vor 111 Tagen aktualisiert. 2 Mitwirkende tragen den Großteil der jüngsten Arbeit.
Metriken werden auf einer Skala von 1–100 in gewichtete Kategorien gruppiert. Der Gesamtwert beginnt als ihr Mittel; sobald öffentliche Evidenz die Richtlinie für Hochrisikojurisdiktionen auslöst, wird die Bewertung angepasst und erhält die Obergrenze 49 (Gefährdet). AI Readiness liegt außerhalb.
Jede Achse ist eine Kategorie. Die Form zählt mehr als der Durchschnitt — ein gesundes Projekt füllt die gesamte Fläche, während ein Profil aus Spitzen und Kratern bedeutet, dass Stärke in einer Dimension Risiken in einer anderen verdeckt.
Dieses Repository wird von einer Organisation getragen — geteilte, rechenschaftspflichtige Trägerschaft, die jeden einzelnen Maintainer überdauern kann.
| Registry | Paket | Version | Downloads / Monat | Versionen | Zuletzt veröffentlicht |
|---|---|---|---|---|---|
| RubyGems | simple_form | 5.4.1 | - | 63 | vor 197 Tagen |
Lebt das Projekt — wird Code geschrieben und werden Releases ausgeliefert?
| 9.9/36 | Push-Aktualität — letzter Push vor 111 Tagen |
| 7.6/36 | Commit-Rhythmus — 11/52 Wochen mit Commits |
| 13.4/18 | Commit-Volumen — 30 Commits im letzten Jahr |
| 0/10 | OpenSSF Scorecard: Maintained — 0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0 |
| commits_last_year | 30 |
| human_commit_share | 1 |
| days_since_last_push | 111 |
| active_weeks_last_year | 11 |
| 27/27 | Liefert Releases aus — 14 Releases veröffentlicht |
| 16.2/36 | Release-Aktualität — letztes Release vor 197 Tagen |
| 12.6/27 | Release-Rhythmus — ein Release etwa alle 309,8 Tage |
| 0/10 | OpenSSF Scorecard: Signed-Releases — keine Daten |
| releases_count | 14 |
| latest_release_tag | v5.4.1 |
| releases_from_tags | nein |
| days_since_latest_release | 197 |
| mean_days_between_releases | 309,8 |
Hat das Projekt Nutzer, Downloads, Aufmerksamkeit und ein einladendes Umfeld für Beitragende?
| 60/60 | Stars — 8.231 Stars |
| 25/25 | Forks — 1.298 Forks |
| 12.1/15 | Watcher — 150 Watcher |
| forks | 1.298 |
| stars | 8.231 |
| watchers | 150 |
| growth_state | organic |
| growth_factor_pct | 100 |
| 22.5/22.5 | README |
| 22.5/22.5 | Lizenz — anerkannte Lizenz (MIT) |
| 18/18 | CONTRIBUTING-Leitfaden |
| 0/13.5 | Verhaltenskodex |
| 7.2/7.2 | Issue-Vorlage |
| 0/6.3 | PR-Vorlage |
| has_readme | ja |
| has_license | ja |
| has_contributing | ja |
| has_issue_template | ja |
| has_code_of_conduct | nein |
| has_pull_request_template | nein |
| 80/80 | Downloads gesamt — 95.931.058 Downloads insgesamt über rubygems |
| 0/20 | Abhängige in der Registry — von diesem Ökosystem nicht ausgewiesen |
| packages | simple_form |
| dependents | — |
| ecosystems | rubygems |
| total_downloads | 95.931.058 |
| monthly_downloads | — |
Überdauert das Projekt die Menschen, die es tragen — Bus-Faktor, Reaktionsfähigkeit, Trägerschaft und Paketpflege?
| 25.2/54 | Bus-Faktor — 2 Beitragende decken die Hälfte aller Commits ab |
| 16.3/22.5 | Commit-Verteilung — wichtigste beitragende Person verfasste 28 % der Commits |
| 13.5/13.5 | Breite der Beitragenden — 100 Beitragende |
| 10/10 | OpenSSF Scorecard: Contributors — project has 47 contributing companies or organizations |
| bus_factor | 2 |
| contributors_sampled | 100 |
| top_contributor_share | 0,275 |
| 45.9/46.8 | Issue-Lösungsquote — 98 % der Issues geschlossen |
| 22.3/38.3 | PR-Annahme — 359/615 entschiedene PRs gemergt |
| 1.5/15 | OpenSSF Scorecard: Code-Review — Found 3/25 approved changesets -- score normalized to 1 |
| merged_prs | 359 |
| open_issues | 24 |
| closed_issues | 1.214 |
| issue_closed_ratio | 0,981 |
| closed_unmerged_prs | 256 |
| 30/30 | Organisatorische Trägerschaft — im Besitz einer Organisation |
| 0/20 | Verifizierte Domain |
| 15.7/25 | Reichweite des Inhabers — 154 Follower von heartcombo |
| 18.9/25 | Kontohistorie — 8 öffentliche Repos, Kontoalter ca. 6 Jahre |
| followers | 154 |
| owner_type | Organization |
| is_verified | — |
| owner_login | heartcombo |
| public_repos | 8 |
| account_age_days | 2.388 |
| 25/25 | Veröffentlicht & auflösbar — 1 Paket(e) auf rubygems |
| 26/35 | Veröffentlichungsaktualität — letzte Veröffentlichung vor 197 Tagen |
| 20/20 | Versionshistorie — 63 veröffentlichte Versionen |
| 20/20 | Nicht veraltet — aktiv, nicht veraltet oder zurückgezogen |
| packages | simple_form |
| ecosystems | rubygems |
| any_deprecated | nein |
| min_days_since_publish | 197 |
Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?
| 24/24 | CI-Workflows — 1 Workflow(s) |
| 24/24 | Tests vorhanden |
| 0/16 | Linter-Konfiguration |
| 0/9.6 | Pre-Commit-Hooks |
| 0/6.4 | .editorconfig |
| 16/20 | OpenSSF Scorecard: CI-Tests — 4 out of 5 merged PRs checked by a CI test -- score normalized to 8 |
| has_ci | ja |
| has_tests | ja |
| has_editorconfig | nein |
| has_linter_config | nein |
| has_precommit_config | nein |
| 30/30 | README |
| 0/25 | Dokumentationsverzeichnis |
| 0/15 | Dokumentations-/Homepage-Site |
| 10/10 | Repository-Beschreibung |
| 10/10 | Topics — 5 Topics |
| 10/10 | Wiki |
| topics | form-builder, rails-helper, ruby, rails, dsl |
| has_wiki | ja |
| homepage | — |
| has_readme | ja |
| has_docs_dir | nein |
| has_description | ja |
Sind die sichtbaren Sicherheits- und Lieferkettenpraktiken belastbar, ohne ungeklärte Exposition gegenüber Hochrisikojurisdiktionen?
| 7.5/7.5 | Binary-Artifacts — no binaries found in the repo |
| 0/7.5 | Branch-Protection — branch protection not enabled on development/release branches |
| 2/2.5 | CI-Tests — 4 out of 5 merged PRs checked by a CI test -- score normalized to 8 |
| 0/2.5 | CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected |
| 0.8/7.5 | Code-Review — Found 3/25 approved changesets -- score normalized to 1 |
| 2.5/2.5 | Contributors — project has 47 contributing companies or organizations |
| 10/10 | Dangerous-Workflow — no dangerous workflow patterns detected |
| 0/7.5 | Dependency-Update-Tool — no update tool detected |
| 0/5 | Fuzzing — project is not fuzzed |
| 2.5/2.5 | Lizenz — license file detected |
| 0/7.5 | Maintained — 0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0 |
| 0/5 | Packaging — keine Daten |
| 0/5 | Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0 |
| 0.5/5 | SAST — SAST tool is not run on all commits -- score normalized to 1 |
| 0/5 | Security-Policy — security policy file not detected |
| 0/7.5 | Signed-Releases — keine Daten |
| 7.5/7.5 | Token-Permissions — GitHub workflow tokens follow principle of least privilege |
| 0/7.5 | Vulnerabilities — 32 existing vulnerabilities detected |
| source | openssf_scorecard |
| checks_evaluated | 16 |
| scorecard_version | v5.5.0 |
| checks_inconclusive | 2 |
| scorecard_aggregate | 3,6 |
| 35/35 | Direkte Abhängigkeiten ohne bekannte Advisories — keine direkte Abhängigkeit trägt ein bekanntes Advisory |
| 0/25 | Indirekte Abhängigkeiten ohne bekannte Advisories — transitive Menge in diesem Bereich nicht von Entwicklungs- und Test-Abhängigkeiten trennbar |
| 0/40 | Keine offenen Advisories — kein Advisory trägt ein Veröffentlichungsdatum |
| source | osv |
| advisories | 32 |
| affected_packages | 7 |
| assessed_packages | 49 |
| unassessed_packages | 6 |
| affected_by_severity | critical 1, high 4, moderate 1, low 1 |
| direct_affected_packages | 0 |
Wie gut ist das Repository dafür ausgestattet, mit KI-Coding-Agenten entwickelt und gepflegt zu werden? Ein unabhängiges, experimentelles Badge — Gewicht 0,0, es wird eigenständig ausgewiesen und verändert den Gesamt-Gesundheitswert nicht.
| 0/45 | Agentenanweisungen — keine CLAUDE.md / AGENTS.md / Editor-Regeln |
| 0/15 | Maschinenlesbare Doku (llms.txt) |
| 26.7/40 | Lesbare Commit-Historie — 50 von 100 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text) |
| has_llms_txt | nein |
| legible_history_share | 0,5 |
| agent_instruction_files | — |
| agent_instruction_max_bytes | — |
| 0/18 | Bootstrap mit einem Befehl |
| 22/22 | Automatisierte Tests |
| 0/11 | Lint-/Format-Konfiguration |
| 0/11 | Statische Typprüfung |
| 10/10 | Reproduzierbare Umgebung — lockfile |
| 0/10 | Belegte Agentenpraxis — keine von Agenten verfassten Commits unter den letzten 100 |
| 0/8 | Automatisierte Wartung — keine automatisierten Abhängigkeits-Updates beobachtet |
| 0/10 | OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0 |
| has_nix | nein |
| has_tests | ja |
| lockfiles | Gemfile.lock |
| has_dockerfile | nein |
| typed_language | nein |
| bootstrap_files | — |
| has_devcontainer | nein |
| has_linter_config | nein |
| typecheck_configs | — |
| agent_commit_share | 0 |
| toolchain_manifests | — |
| dependency_bot_commit_share | 0 |
| 0/45 | Typprüfbarer Code — Ruby ohne Typprüfungs-Konfiguration |
| 55/55 | Handhabbare Dateigrößen — 0/99 Quelldateien über 60 KB |
| primary_language | Ruby |
| largest_source_bytes | 29.222 |
| source_files_sampled | 99 |
| oversized_source_files | 0 |
Wann jeder Stern und Fork hinzugefügt wurde, von GitHub erfasst und nach Tagen gruppiert. Das kumulierte Wachstum steht direkt über den täglichen Zugängen, aus denen es besteht, sodass beide gegeneinander lesbar sind: stetiger organischer Zuwachs sieht ganz anders aus als ein abrupter, kurzlebiger Ausschlag. Wo dieser Unterschied messbar ist, wird er als Wachstumsauthentizität ausgewiesen.
Es wird nur die jüngste Historie angezeigt — dieses Repository überschreitet das Erfassungsfenster, sodass die früheste Historie nicht erfasst wird.
Jeder Punkt umfasst 13 Tage.
Unabhängige, werkzeugneutrale Sicherheitsbewertung durch das quelloffene OpenSSF Scorecard. Jede Prüfung honoriert eine Sicherheits-Praxis, nicht das Werkzeug eines bestimmten Anbieters. Prüfungen, die Scorecard nicht ermitteln konnte, sind mit k. A. markiert und vom Sicherheitswert ausgeschlossen (nie als null gezählt).
| 10 | Binary-Artifacts | no binaries found in the repo |
| 0 | Branch-Protection | branch protection not enabled on development/release branches |
| 8 | CI-Tests | 4 out of 5 merged PRs checked by a CI test -- score normalized to 8 |
| 0 | CII-Best-Practices | no effort to earn an OpenSSF best practices badge detected |
| 1 | Code-Review | Found 3/25 approved changesets -- score normalized to 1 |
| 10 | Contributors | project has 47 contributing companies or organizations |
| 10 | Dangerous-Workflow | no dangerous workflow patterns detected |
| 0 | Dependency-Update-Tool | no update tool detected |
| 0 | Fuzzing | project is not fuzzed |
| 10 | License | license file detected |
| 0 | Maintained | 0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0 |
| k. A. | Packaging | packaging workflow not detected |
| 0 | Pinned-Dependencies | dependency not pinned by hash detected -- score normalized to 0 |
| 1 | SAST | SAST tool is not run on all commits -- score normalized to 1 |
| 0 | Security-Policy | security policy file not detected |
| k. A. | Signed-Releases | no releases found |
| 10 | Token-Permissions | GitHub workflow tokens follow principle of least privilege |
| 0 | Vulnerabilities | 32 existing vulnerabilities detected |
| Registry | Paket | Versionsvorgabe | Manifest |
|---|---|---|---|
| RubyGems | activemodel | ~> 8.1.0 | Gemfile |
| RubyGems | actionpack | ~> 8.1.0 | Gemfile |
| RubyGems | railties | ~> 8.1.0 | Gemfile |
Vollständig aufgelöster Abhängigkeitssatz aus dem GitHub-Abhängigkeitsgraphen: 5 direkte und 50 indirekte (transitive) Pakete. Die transitive Hülle ist vollständig, wenn das Repository eine Lockfile eincheckt.
| Registry | Paket | Version | Beziehung |
|---|---|---|---|
| RubyGems | actionpack | — | direkt |
| RubyGems | actionpack | 8.1.3 | direkt |
| RubyGems | activemodel | — | direkt |
| RubyGems | activemodel | 8.1.3 | direkt |
| RubyGems | railties | 8.1.3 | direkt |
| RubyGems | actionview | 8.1.3 | indirekt |
| RubyGems | activesupport | 8.1.3 | indirekt |
| RubyGems | base64 | 0.3.0 | indirekt |
| RubyGems | bigdecimal | 4.0.1 | indirekt |
| RubyGems | builder | 3.3.0 | indirekt |
| RubyGems | concurrent-ruby | 1.3.6 | indirekt |
| RubyGems | connection_pool | 3.0.2 | indirekt |
| RubyGems | countries | 8.1.0 | indirekt |
| RubyGems | country_select | — | indirekt |
| RubyGems | country_select | 11.0.0 | indirekt |
| RubyGems | crass | 1.0.6 | indirekt |
| RubyGems | date | 3.5.1 | indirekt |
| RubyGems | drb | 2.2.3 | indirekt |
| RubyGems | erb | 6.0.2 | indirekt |
| RubyGems | erubi | 1.13.1 | indirekt |
| RubyGems | i18n | 1.14.8 | indirekt |
| RubyGems | io-console | 0.8.2 | indirekt |
| RubyGems | irb | 1.17.0 | indirekt |
| RubyGems | json | 2.19.3 | indirekt |
| RubyGems | logger | 1.7.0 | indirekt |
| RubyGems | loofah | 2.25.1 | indirekt |
| RubyGems | mini_portile2 | 2.8.9 | indirekt |
| RubyGems | minitest | — | indirekt |
| RubyGems | minitest | 5.27.0 | indirekt |
| RubyGems | nokogiri | 1.19.2 | indirekt |
| RubyGems | pp | 0.6.3 | indirekt |
| RubyGems | prettyprint | 0.2.0 | indirekt |
| RubyGems | prism | 1.9.0 | indirekt |
| RubyGems | psych | 5.3.1 | indirekt |
| RubyGems | racc | 1.8.1 | indirekt |
| RubyGems | rack | 3.2.5 | indirekt |
| RubyGems | rack-session | 2.1.1 | indirekt |
| RubyGems | rack-test | 2.2.0 | indirekt |
| RubyGems | rackup | 2.3.1 | indirekt |
| RubyGems | rails-dom-testing | 2.3.0 | indirekt |
| RubyGems | rails-html-sanitizer | 1.7.0 | indirekt |
| RubyGems | rake | — | indirekt |
| RubyGems | rake | 13.3.1 | indirekt |
| RubyGems | rdoc | — | indirekt |
| RubyGems | rdoc | 7.2.0 | indirekt |
| RubyGems | reline | 0.6.3 | indirekt |
| RubyGems | securerandom | 0.4.1 | indirekt |
| RubyGems | stringio | 3.2.0 | indirekt |
| RubyGems | thor | 1.5.0 | indirekt |
| RubyGems | tsort | 0.2.0 | indirekt |
| RubyGems | tzinfo | 2.0.6 | indirekt |
| RubyGems | unaccent | 0.4.0 | indirekt |
| RubyGems | uri | 1.1.1 | indirekt |
| RubyGems | useragent | 0.16.11 | indirekt |
| RubyGems | zeitwerk | 2.7.5 | indirekt |
Dieses Repository veröffentlicht kein vom Index auflösbares Paket, daher wurde sein eigener Abhängigkeitsgraph bewertet – 49 Pakete, darunter auch Entwicklungs- und Test-Pins, die nie ausgeliefert werden: 7 tragen bekannte Advisories, davon 0 direkte. 6 konnten nicht bewertet werden – keine aufgelöste Version, ein nicht unterstütztes Ökosystem, oder außerhalb der ausgewiesenen Paketliste.
| Paket | Version | Beziehung | Schweregrad | Advisories | Behoben in |
|---|---|---|---|---|---|
| rack-session | 2.1.1 | indirekt | kritisch | 1 | 2.1.2 |
| concurrent-ruby | 1.3.6 | indirekt | hoch | 3 | 1.3.7 |
| erb | 6.0.2 | indirekt | hoch | 1 | 6.0.4 |
| nokogiri | 1.19.2 | indirekt | hoch | 10 | 1.19.4 |
| rack | 3.2.5 | indirekt | hoch | 13 | 3.2.6 |
| loofah | 2.25.1 | indirekt | mittel | 3 | 2.25.2 |
| rails-html-sanitizer | 1.7.0 | indirekt | niedrig | 1 | 1.7.1 |
Ein Advisory bedeutet, dass die im Abhängigkeitsgraphen erfasste Version in den betroffenen Bereich eines Advisories fällt. Erreichbarkeit wird nicht analysiert, und der Graph enthält Entwicklungs- und Test-Pins — ein Fund kann das Werkzeug betreffen und nicht die ausgelieferte Software.
{
"data": {
"repo": {
"topics": [
"form-builder",
"rails-helper",
"ruby",
"rails",
"dsl"
],
"is_fork": false,
"size_kb": 2877,
"has_wiki": true,
"homepage": null,
"languages": {
"HTML": 497,
"Haml": 408,
"Ruby": 385790,
"Slim": 373
},
"pushed_at": "2026-04-01T23:20:59Z",
"created_at": "2009-12-28T14:23:48Z",
"owner_type": "Organization",
"updated_at": "2026-07-06T23:47:24Z",
"description": "Forms made easy for Rails! It's tied to a simple DSL, with no opinion on markup.",
"is_archived": false,
"is_disabled": false,
"license_spdx": "MIT",
"default_branch": "main",
"license_spdx_raw": "MIT",
"primary_language": "Ruby",
"significant_languages": [
"Ruby"
]
},
"owner": {
"blog": null,
"name": null,
"type": "Organization",
"login": "heartcombo",
"company": null,
"location": null,
"followers": 154,
"avatar_url": "https://avatars.githubusercontent.com/u/59584037?v=4",
"created_at": "2020-01-06T22:13:20Z",
"is_verified": null,
"public_repos": 8,
"account_age_days": 2388
},
"license": {
"state": "standard",
"spdx_id": "MIT",
"raw_spdx": "MIT",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "v5.4.1",
"kind": "patch",
"published_at": "2026-01-05T13:07:49Z"
},
{
"tag": "v5.4.0",
"kind": "minor",
"published_at": "2025-10-24T14:51:06Z"
},
{
"tag": "v5.3.0",
"kind": "minor",
"published_at": "2023-10-11T22:05:50Z"
},
{
"tag": "v5.2.0",
"kind": "minor",
"published_at": "2023-01-29T13:25:34Z"
},
{
"tag": "v5.1.0",
"kind": "minor",
"published_at": "2021-02-09T12:16:13Z"
},
{
"tag": "v5.0.2",
"kind": "patch",
"published_at": "2020-02-06T19:00:39Z"
},
{
"tag": "v5.0.1",
"kind": "patch",
"published_at": "2019-10-04T14:44:40Z"
},
{
"tag": "v5.0.0",
"kind": "major",
"published_at": "2019-09-27T20:05:51Z"
},
{
"tag": "v4.1.0",
"kind": "minor",
"published_at": "2018-11-22T22:16:32Z"
},
{
"tag": "v4.0.1",
"kind": "patch",
"published_at": "2018-05-18T22:33:09Z"
},
{
"tag": "v4.0.0",
"kind": "major",
"published_at": "2018-04-11T12:54:04Z"
},
{
"tag": "v3.5.1",
"kind": "patch",
"published_at": "2018-02-15T21:14:09Z"
},
{
"tag": "v3.1.0.rc2",
"kind": "other",
"published_at": "2014-07-08T00:39:49Z"
},
{
"tag": "v3.0.0",
"kind": "major",
"published_at": "2013-09-21T15:10:25Z"
}
],
"recent_commits": [
{
"oid": "18f38aad0bdeca2ba1815043b94d96fdbbe6a325",
"body": "…1864)\n\nSimpleForm will render errors marked as HTML-safe as-is, without\nescaping them, so you can include HTML in model errors and they will be\nrendered just fine.\n\nYou can also pass HTML to the error/full_error components and if they're\nmarked `html_safe` they'll be rendered as-is as well, without\n[…]\n will automatically mark them as safe,\nbut models don't have that, and translation of errors is a Rails\nconcern, not a SimpleForm concern.\n\nCloses https://github.com/heartcombo/simple_form/issues/1863",
"is_bot": false,
"headline": "Document and expand tests about error rendering behavior with HTML (#…",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2026-04-01T23:20:59Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f28f208c2e429a7d094f4594e600b575e9181346",
"body": null,
"is_bot": false,
"headline": "Bundle update",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2026-03-27T12:49:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "55bec8024c3b9e7490e48fd127ae66cc122ff9a9",
"body": null,
"is_bot": false,
"headline": "Bundle update",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2026-03-13T12:57:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "652597396db3f9b667a9b8ada87c2f28d6c93ed0",
"body": null,
"is_bot": false,
"headline": "Configure default permissions as read-only for the workflow",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2026-03-13T12:57:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "24b49c466af00fb0d905265f214cff443945958d",
"body": "Build pushes to the main branch and open PRs, but not pushes to other\nbranches. Allow workflow_dispatch to build them manually if we want to.",
"is_bot": false,
"headline": "Stop building both branch & PR with pushes",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2026-03-13T12:56:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7ed28ad9d7fdafec3c431b9cb5bdf2b6c3a92e0a",
"body": null,
"is_bot": false,
"headline": "Ignore test/** folder for GH default code scanning",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2026-03-13T12:56:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "91c4fe0ccde53292e248743a1de8c4f9ae9229ad",
"body": "No longer want to point to the app if it can go down, let the repo point\nto a deployed app if any exist, and SimpleForm will point to the repo.\n\n[ci skip]",
"is_bot": false,
"headline": "Update bootstrap install readme to point to app repo",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2026-02-13T13:31:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ef36ed0c58b4b11406a8891b0f0ce255447195dc",
"body": "Additionally:\n- Use https where possible\n- Fix 404s to Foundation docs\n- Remove the link to a legacy example application hosted on Heroku",
"is_bot": false,
"headline": "Use svg badge (#1860)",
"author_name": "Geremia Taglialatela",
"author_login": "tagliala",
"committed_at": "2026-02-13T13:28:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2df5c7df85e0ae01d1bd781df9b3689828a15713",
"body": null,
"is_bot": false,
"headline": "Release v5.4.1",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2026-01-05T13:06:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f231160157a20f9b579f5b813f35db7261241c09",
"body": null,
"is_bot": false,
"headline": "Stop updating copyright every year [ci skip]",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2026-01-05T13:02:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "55e66f1db6248890e868f4159e8a0fe61dec2fd2",
"body": "It dropped support to Ruby 3.2 which is expected to be EOL by\n2026-03-31.",
"is_bot": false,
"headline": "Exclude Rails main + Ruby 3.2",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2026-01-05T12:38:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9dce1a071eb876ed756d254186d8ea6a9e3e6725",
"body": "Devise changed their password validations to use a proc for\nminimum/maximum for additional customization, but that apparently broke\nSimpleForm minlength/maxlength logic since it wasn't handling that.\n\nInstead of implementing it custom by checking for the value responding\nto `call` like we do for a c\n[…]\ne` implementation across\nthe board, so other validations like numericality and format apply the\nsame logic to better match Rails behavior.\n\nCloses https://github.com/heartcombo/simple_form/issues/1858",
"is_bot": false,
"headline": "Handle length validator with procs, improve validators support (#1859)",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2026-01-05T12:28:19Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "584127a00bfe027ff5fb779fa11f859045d5ae9f",
"body": "https://www.ruby-lang.org/en/news/2025/12/25/ruby-4-0-0-released/",
"is_bot": false,
"headline": "Test with Ruby 4.0",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2025-12-29T19:13:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c13176ea1ae41ac3fc486f7b569bc16a6102d4d2",
"body": null,
"is_bot": false,
"headline": "Make rdoc a dev dependency on the gemspec",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2025-12-29T19:13:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ef3e121e512b0ab5ed8aadd4ee6a43f5c263e1f9",
"body": "Lock minitest < 6 since v6 has some incompatibilities with released\nversions of Rails that will be fixed in future versions.\n\nThis is something I didn't run into a few other gems, but SimpleForm\ndid, presumabily because it touches additional areas like AV tests.",
"is_bot": false,
"headline": "Bundle update",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2025-12-29T19:13:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "44384d3ca7c77aef1e56d965b22197af62a80c5f",
"body": "Rails just released v7.0.10 which contains the fixes for Ruby 3.4 we\nneeded to get the build green, so no need to point to GH anymore.\n\nhttps://rubyonrails.org/2025/10/29/new-rails-releases-and-end-of-support-announcement\n\nNote that v7.0 has reached EOL for a while now.",
"is_bot": false,
"headline": "Test with the released version of v7.0",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2025-10-29T11:48:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ac606d70f8dccf03db0109222ebf42c647d7c1c8",
"body": null,
"is_bot": false,
"headline": "Add version to changelog (oops!) [ci skip]",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2025-10-24T14:50:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9e7c934f090f37067142801ce588b83e0c61776f",
"body": null,
"is_bot": false,
"headline": "Release v5.4.0",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2025-10-24T14:48:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c497d2fbf1ec9ab23d35eb3de9555a1c26523a6f",
"body": null,
"is_bot": false,
"headline": "Expand changelog [ci skip]",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2025-10-24T14:47:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8b3e5cc89ac1ebb61386555ab0634bb4a02d0c7e",
"body": null,
"is_bot": false,
"headline": "Update to test with Rails v8.1.0 final",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2025-10-24T14:22:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b930f9d2d7b0ae60f2c594b27ea4310f6dc8ec27",
"body": null,
"is_bot": false,
"headline": "Update to test with Rails v8.1.0.rc1",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2025-10-16T13:07:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2f5d481eba855d764380fd325720a369e3429d14",
"body": "Improve test descriptions for disabled select / options on collection\nselect input.",
"is_bot": false,
"headline": "Expand collection select input test with multiple disabled options",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2025-10-09T20:35:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a12f4b75878986e52b784792dec34d4720e027f1",
"body": "Fix typos [ci skip]",
"is_bot": false,
"headline": "Merge pull request #1849 from tagliala/chore/fix-typos",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2025-10-09T20:31:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "74b9c684f9809720d1527b50fe20b2bf57438b94",
"body": "Update Ruby/Rails support\n\n* Add support for Ruby 3.4 and Rails 7.2/8.0/8.1. (no changes required)\n* Drop support for Rails < 7 and Ruby < 2.7.",
"is_bot": false,
"headline": "Merge pull request #1845 from heartcombo/drop-old-rubies",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2025-10-03T17:58:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fee331e8cbca0cc6b84b42232210d6b04160c1ef",
"body": "So it can be properly linked and we don't need to add it to each gemfile.",
"is_bot": false,
"headline": "Make country_select a development dependency on the gemspec",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2025-10-03T17:56:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6f866e0b0a5b7adf2b1aaa097a41f8b1c7632a83",
"body": "They changed to use an `<hr>` element now rather than a disabled option\nwith `-` as separator.\n\nhttps://github.com/countries/country_select/pull/229",
"is_bot": false,
"headline": "Fix country_select tests looking for separator option",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2025-10-03T17:50:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "651f119e6f8369f15fdcd109a3498c547b47b6a1",
"body": null,
"is_bot": false,
"headline": "Remove more extraneous version checks",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2025-10-03T17:37:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8aca05e4b7eda577b987d84a20f2fa9e1e8b84b8",
"body": "* Add support for Ruby 3.4 and Rails 7.2/8.0/8.1.\n* Drop support for Rails < 7 and Ruby < 2.7.",
"is_bot": false,
"headline": "Update Ruby/Rails support",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2025-10-03T15:55:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "de57a91b2ac7c64e2d57abbe23bbe31a3f947885",
"body": null,
"is_bot": false,
"headline": "Merge branch 'main' into drop-old-rubies",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2025-10-03T15:50:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "006cf5de2efe82b06049353b571e126269ef595f",
"body": null,
"is_bot": false,
"headline": "Cleanup readme, update copyright, use new email [ci skip]",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2025-10-03T15:44:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "57f20d6bc6924a8c8f570b15c27d617e82c3de2f",
"body": "Found with `codespell`, plus manual fixes",
"is_bot": false,
"headline": "Fix typos",
"author_name": "Geremia Taglialatela",
"author_login": "tagliala",
"committed_at": "2024-08-22T16:52:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c2c7faf3e532072e1ef511a97d677ae0e7c38957",
"body": "…tes_improperly_casted\n\nFix encrypted attributes improperly casted",
"is_bot": false,
"headline": "Merge pull request #1836 from Michaelvilleneuve/fix_encrypted_attribu…",
"author_name": "Vasiliy Ermolovich",
"author_login": "nashby",
"committed_at": "2024-07-12T13:03:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4c43a75f0b0352913261217b0bfa03e009022a41",
"body": "Add weekday select input.",
"is_bot": false,
"headline": "Merge pull request #1846 from heartcombo/weekday-input",
"author_name": "Vasiliy Ermolovich",
"author_login": "nashby",
"committed_at": "2024-07-12T11:50:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "14b6b2e5fd8cf849508dd816d0239bbc1adeaa0c",
"body": "Closes https://github.com/heartcombo/simple_form/issues/1770",
"is_bot": false,
"headline": "Add weekday input.",
"author_name": "Vasiliy Ermolovich",
"author_login": "nashby",
"committed_at": "2024-07-12T11:45:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "627575cadda2d5df3fb8ef099729a3bdb2c5d2bd",
"body": null,
"is_bot": false,
"headline": "Drop support for Ruby < 2.7 and Rails < 6.0",
"author_name": "Vasiliy Ermolovich",
"author_login": "nashby",
"committed_at": "2024-06-30T10:43:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "246c7977a96d5a04434f7d186f4099f88f45f359",
"body": "…rror.\n\nFollow up of https://github.com/heartcombo/simple_form/pull/1812",
"is_bot": false,
"headline": "Pass form object to human_attribute_name when it's called from full_e…",
"author_name": "Vasiliy Ermolovich",
"author_login": "nashby",
"committed_at": "2024-06-26T08:51:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b8abb1bad18a0d852ebec9558b4f6352570dd02e",
"body": "Pass base object to `human_attribute_name` for labels",
"is_bot": false,
"headline": "Merge pull request #1812 from motine/pass-base-to-i18n",
"author_name": "Vasiliy Ermolovich",
"author_login": "nashby",
"committed_at": "2024-06-25T20:37:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "33b1c546a97a21f87ca9d56148b129b773c67375",
"body": "Improve docs on Non Active Record",
"is_bot": false,
"headline": "Merge pull request #1839 from abinoam/improve_docs_on_non_ar",
"author_name": "Vasiliy Ermolovich",
"author_login": "nashby",
"committed_at": "2024-06-25T18:55:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "62149be7f093ed67cdb23a5a7a4eaaee6946b9b8",
"body": "closes https://github.com/heartcombo/simple_form/pull/1793",
"is_bot": false,
"headline": "Add `rich_text_area` to list of mappings in README",
"author_name": "Vasiliy Ermolovich",
"author_login": "nashby",
"committed_at": "2024-06-24T19:02:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ef9f350e829d3df521a119d53be1ef73b606a00c",
"body": "Integrate `:rich_text_area` with placeholders",
"is_bot": false,
"headline": "Merge pull request #1842 from seanpdoyle/rich-text-area-placeholder",
"author_name": "Vasiliy Ermolovich",
"author_login": "nashby",
"committed_at": "2024-06-24T09:17:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "824d17914794c137782e697ef4c9bbad8527f081",
"body": null,
"is_bot": false,
"headline": "Move changelog to unreleased section [ci skip]",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2024-06-21T13:43:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c439da934e3cde005e83483320f3c12060b27d58",
"body": "The reason is that the fields are already assigned the required attribute which would be used by assistive technology to convey the field requirement",
"is_bot": false,
"headline": "Remove aria-required for required fields in HTML5 (#1823)",
"author_name": "Andrew Duthie",
"author_login": "aduth",
"committed_at": "2024-06-21T13:39:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1217d049778d444b421f3334fd702d7993969233",
"body": "Trix (the rich text editor that's rendered by Action View's form\nbuilder) has supported the `[placeholder]` attribute since at least\nversion [0.9.0][] (and continues to support it in [2.1.1][].\n\nThis commit enables `:placeholder` support in the\n`SimpleForm::Inputs::RichTextAreaInput` class to transf\n[…]\nHTML\nattributes.\n\n[0.9.0]: https://github.com/basecamp/trix/tree/0.9.0?tab=readme-ov-file#creating-an-editor\n[2.1.1]: https://github.com/basecamp/trix/tree/v2.1.1?tab=readme-ov-file#creating-an-editor",
"is_bot": false,
"headline": "Integrate `:rich_text_area` with placeholders",
"author_name": "Sean Doyle",
"author_login": "seanpdoyle",
"committed_at": "2024-06-06T13:27:05Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "d3a594920a14a692836392b5a7c0cd4708e25cb3",
"body": null,
"is_bot": false,
"headline": "Release v5.3.1",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2024-05-24T14:44:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "406847d78e4c38d2315d550f982c447b5d947ee9",
"body": null,
"is_bot": false,
"headline": "Update GH action to checkout v4",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2024-05-24T14:42:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ba02a8b62015359abbed26ce7931116cb5c56c8f",
"body": "The check is slightly different but should work for our purposes here.\n\nUsing `end_with?(mapping)` to keep a similar check doesn't work because\nsome Ruby versions include \"did you mean\", which make the error message\nlook something like this:\n\n NameError: uninitialized constant StringInput\n\n \n[…]\n^^^^^^^^\n Did you mean? StringInputTest\n\nThe regexp check worked because it was matching the end of the line, not\nend of string, with `$`, so it'd match the first line of the error\nmessage always.",
"is_bot": false,
"headline": "Avoid creating multiple regexp objects",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2024-05-24T14:41:26Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ae12516978a07b75bb3f929829170b7f5716f53c",
"body": "This reverts commit b6ae67d28599b3c676b670e23e478063aba14cf6, reversing\nchanges made to 0ef4a58daae41ab091d25ac1dc3fb4ede35743b1.\n\nThis caused custom inputs to not load properly on non-eager load\nenvironments like dev/test, because those constants may not have been\ndefined yet.\n\nThe previous code would try to constantize them and force-load the\nlazily-loaded files/constants, the new code breaks that behavior, so\nwe're reverting.\n\nCloses #1824, see for more info.",
"is_bot": false,
"headline": "Revert \"Merge pull request #1810 from meanphil/mappings-slow-exception\"",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2024-05-14T21:37:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4387c28361c38561fd6a7fec91be1f34950e2182",
"body": null,
"is_bot": false,
"headline": "Improve docs on Non Active Record",
"author_name": "Abinoam P. Marques Jr",
"author_login": "abinoam",
"committed_at": "2024-04-14T23:58:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bad4ce04c4a9cc6e54b148620045ee8a4ba652db",
"body": null,
"is_bot": false,
"headline": "Bump year [ci skip]",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2024-04-09T19:57:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5103d7d1c68f8c169c8d159a40742edd27eeea85",
"body": "Rails main changed `object` to be `false` instead of `nil`, causing the\nspecific check we were doing for `object.nil?` to fail, and the custom\nerrors were not displaying for forms without an object. Our test suite\ncaught that, and the fix is to simply not check specifically for `nil?`,\nbut just whet\n[…]\nity, probably not something worth\nchanging the framework for, but one worth mentioning.\n\nSource is likely to be:\n- https://github.com/rails/rails/pull/49943\n- https://github.com/rails/rails/pull/50931",
"is_bot": false,
"headline": "Fix error component without object on Rails main to display properly",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2024-04-09T19:33:45Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "416894aab486fd7bf51e6e24738795fb439165f9",
"body": null,
"is_bot": false,
"headline": "No need to `send` anymore, `include` is public",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2024-04-09T19:30:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "24c5cd46cc4e9855bc8978b703b6cb63536ad60a",
"body": "Exclude previous Ruby versions from running against Rails main, since it\nonly supports Ruby 3.1+ now.",
"is_bot": false,
"headline": "Add support to Ruby 3.3 (no changes required)",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2024-04-09T18:12:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ae5fd7cb876086674e1b82f63ac0e6850b5fb276",
"body": "Note that we need to keep Nokogiri on v1.15.6 and Bundler on v2.4.22 due\nto Ruby 2.7 compatibility for now.\n\nWe also need to lock country_select on v8.x since v9.x will load\ncountries v6, which does not support Ruby 2.7 anymore either.\n\n(soon we'll have to drop it too apparently!)",
"is_bot": false,
"headline": "Run tests with latest gems, specifically country_select v9.0.0",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2024-04-09T18:12:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3a2fa07ecc1d33daf5ae0e8812eb982d8fc822aa",
"body": null,
"is_bot": false,
"headline": "Fix encrypted attributes improperly casted",
"author_name": "Michaël Villeneuve",
"author_login": "Michaelvilleneuve",
"committed_at": "2024-03-07T10:39:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8f77f598b32ed11b0d56c44481607a6e911bcecb",
"body": null,
"is_bot": false,
"headline": "Release v5.3.0",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2023-10-11T22:05:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bf1013ac46987adf3163db523f403861ca3f9bf2",
"body": "Rails 7.1",
"is_bot": false,
"headline": "Merge pull request #1821 from heartcombo/ca/rails-71",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2023-10-11T11:15:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1c27ae66e4f4a1b718d5ba70da68a30cce287d56",
"body": null,
"is_bot": false,
"headline": "Update changelog with Rails 7.1 mention [ci skip]",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2023-10-10T22:49:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "80915d5c263b49c961c32cc3e6e7b859a031d44b",
"body": "Rails 7.1 is deprecating the `ActiveSupport::Deprecation.instance` usage\nin favor of defining library-specific deprecators, this implements one\nfor SimpleForm going forward.",
"is_bot": false,
"headline": "Add a custom deprecator to SimpleForm",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2023-10-10T22:47:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9a76a4ed5de15f5668a2cd8c85efc58e99520b33",
"body": null,
"is_bot": false,
"headline": "Test with Rails 7.1 by default, create new Gemfile for 7.0",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2023-10-10T21:54:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b9ba1ceeb59fd0ed7de4289db1380b52f36745e6",
"body": "Update MiniTest => Minitest constant reference.\n\n`rails-dom-testing` changed the `NO_STRIP` constant around, update the\ncode that references it via `ActionDispatch::Assertions` (because it was\nincluded there) to point to the lib directly, making it more explicit.",
"is_bot": false,
"headline": "Update dependencies and fix tests with the latest",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2023-10-10T21:50:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1d9890e82af1b3d32c030f9ebb6b181eafe7f859",
"body": null,
"is_bot": false,
"headline": "pass base object to human_attribute_name in labels",
"author_name": "Tom Rothe",
"author_login": "motine",
"committed_at": "2023-03-01T08:02:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "921ce9c3fc100e1737125ba1b5a2037c03f2de1b",
"body": null,
"is_bot": false,
"headline": "Remove extraneous explicit return",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2023-02-20T14:37:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f46628bd5c23cc32bc77fb57f2c9ea2ee9e3f6a5",
"body": null,
"is_bot": false,
"headline": "Add changelog entry for #1810 [ci skip]",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2023-02-20T14:37:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b6ae67d28599b3c676b670e23e478063aba14cf6",
"body": "Speed up nested #simple_fields_for usage by a considerable amount\r\n\r\nCloses #1725 \r\nCloses #1791 \r\nCloses #1790",
"is_bot": false,
"headline": "Merge pull request #1810 from meanphil/mappings-slow-exception",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2023-02-20T14:31:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ff3903fe9346199e39538a39ea4e5a5694e31541",
"body": "Exceptions are slow due to generating backtraces - and then when other\ndebugging gems (such as did_you mean, which are included with\nRuby and Rails these days) get involved it resulted in excessive Object\nallocation.",
"is_bot": false,
"headline": "Speed up nested #simple_fields_for usage by a considerable amount",
"author_name": "Phil Murray",
"author_login": "meanphil",
"committed_at": "2023-02-20T02:24:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0ef4a58daae41ab091d25ac1dc3fb4ede35743b1",
"body": null,
"is_bot": false,
"headline": "Update copyright year [ci skip]",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2023-02-16T12:10:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "159b70aea62443aeb0e32382de3095bcb571ee0e",
"body": null,
"is_bot": false,
"headline": "Add changelog for #1809 [ci skip]",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2023-02-04T12:39:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "573ee5eeb700fb321ca08054659e56edf0970d8c",
"body": "Remove test files from the gem package",
"is_bot": false,
"headline": "Merge pull request #1809 from orien/reduce-gem-contents",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2023-02-04T12:37:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ecf5239303af7fc281509f4d58253bd6c8e49521",
"body": "There are several files in the gem package that aren't useful for\ndownstream projects. Removing these reduces the gem package size from\n83K to 50K!",
"is_bot": false,
"headline": "Remove test files from the gem package",
"author_name": "Orien Madgwick",
"author_login": "orien",
"committed_at": "2023-02-04T01:22:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "08fb6ea095a0db5823c672d991609418a700308f",
"body": "It's not working right now, and we haven't used it in like forever\nto drive anything.\n\n[ci skip]",
"is_bot": false,
"headline": "Remove CodeClimate badge",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2023-02-03T14:49:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d17d97f32c3b0020cfc080344bffb29bac49d091",
"body": "Ref: #1808 [ci skip]",
"is_bot": false,
"headline": "Point to `main` branch instead of old `master`",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2023-01-30T16:44:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "485175830ce36a9b5b431f3ad16730a2a5211c7b",
"body": null,
"is_bot": false,
"headline": "Release v5.2.0",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2023-01-29T13:23:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ad1bb2ef24fc1a90459e7c4c18821edb38c57c2d",
"body": "This combination should work fine. Also reorganize the exclusion list of\nbuilds a bit.",
"is_bot": false,
"headline": "Run the build with Ruby 3.2 + Rails 6.1, update changelog",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2023-01-16T20:25:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "edf540f3d14d4999d33ba69bda452da417e2cc15",
"body": null,
"is_bot": false,
"headline": "Bundle update",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2023-01-16T20:10:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "341e36c087d78e0d5dbf768652e54cc42663f055",
"body": "Adds Ruby 3.2 to the CI matrix",
"is_bot": false,
"headline": "Merge pull request #1802 from petergoldstein/feature/add_ruby_3_2_to_ci",
"author_name": "Vasiliy Ermolovich",
"author_login": "nashby",
"committed_at": "2022-12-30T08:02:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9b879ccb84c3a7d6d4224046fd94f6ef72203c7d",
"body": null,
"is_bot": false,
"headline": "Adds Ruby 3.2 to the CI matrix. Updates checkout action version.",
"author_name": "Peter Goldstein",
"author_login": "petergoldstein",
"committed_at": "2022-12-29T21:20:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7790db2ea26c94a6c1a473a91d1001655de7b585",
"body": "Split country and timezone inputs to fix deprecated way of passing priority countries to country input.",
"is_bot": false,
"headline": "Merge pull request #1782 from heartcombo/country-timezone-split",
"author_name": "Vasiliy Ermolovich",
"author_login": "nashby",
"committed_at": "2022-12-29T21:13:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b472e19b5d344405e224d7ec6264a2d4793c54e1",
"body": "See https://github.com/rails/rails/commit/4e8e82829182cc2c1dc07997acc210bc0656eda4",
"is_bot": false,
"headline": "ActionView::OutputBuffer doesn't have #replace method anymore.",
"author_name": "Vasiliy Ermolovich",
"author_login": "nashby",
"committed_at": "2022-09-24T08:19:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2b77e9cb000cf9c2aec2b7c67247f52384f3cb08",
"body": null,
"is_bot": false,
"headline": "Specify main branch for Rails edge.",
"author_name": "Vasiliy Ermolovich",
"author_login": "nashby",
"committed_at": "2022-09-24T08:18:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f38c6a1d3acca8e3b5bd650fd92a6466d468eb71",
"body": "…iority countries to country input.\n\nIt still uses SimpleForm's PriorityInput for backward compatibility.",
"is_bot": false,
"headline": "Split country and timezone inputs to fix deprecated way of passing pr…",
"author_name": "Vasiliy Ermolovich",
"author_login": "nashby",
"committed_at": "2022-09-23T15:53:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "31fe25504771bd6cd425b585a4e0ed652fba4521",
"body": "Fix broken Rubydoc links in README.md",
"is_bot": false,
"headline": "Merge pull request #1785 from Mir0ff944/mi-readme-rubydoc-url-fix",
"author_name": "Vasiliy Ermolovich",
"author_login": "nashby",
"committed_at": "2022-07-18T14:15:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "95a8dba2bf1d1692a04d8b44ee034c95bef1840f",
"body": "Use the correct default branch on Rubydoc links.",
"is_bot": false,
"headline": "Fix broken Rubydoc links in README.md",
"author_name": "Miroslav Ivanov",
"author_login": "Mir0ff944",
"committed_at": "2022-07-16T23:52:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8b8cea1dbd85be82876c612a020a1522b7c9941f",
"body": null,
"is_bot": false,
"headline": "Update CHANGELOG.md",
"author_name": "Vasiliy Ermolovich",
"author_login": "nashby",
"committed_at": "2022-07-13T17:36:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "486ff139b6d74f4a7672717022e980bd0357eb97",
"body": "Honor `include_hidden` on inline boolean inputs",
"is_bot": false,
"headline": "Merge pull request #1772 from yboulkaid/main",
"author_name": "Vasiliy Ermolovich",
"author_login": "nashby",
"committed_at": "2022-07-13T17:33:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cf743e7e834dcfe39a3e9485ee44b86b4868d98b",
"body": "Revise unchecked docs",
"is_bot": false,
"headline": "Merge pull request #1784 from paulcc/revise-unchecked-docs",
"author_name": "Vasiliy Ermolovich",
"author_login": "nashby",
"committed_at": "2022-07-12T18:51:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4338d45c2dd259226456efe0082370b75b7f011c",
"body": null,
"is_bot": false,
"headline": "Add clarification re. hidden field and give example of include_hidden:",
"author_name": "Paul Callaghan",
"author_login": "paulcc",
"committed_at": "2022-07-12T11:20:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c3060bd8f8675f543371a910d9451aefa4ab5961",
"body": "…ission of hidden field",
"is_bot": false,
"headline": "Use strings in checked/unchecked examples, to avoid confusion with om…",
"author_name": "Paul Callaghan",
"author_login": "paulcc",
"committed_at": "2022-07-12T11:20:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "39787221d97fd21bb372c7cb7822d25e787c4e8f",
"body": "…p-method-proc\n\nAllow proc as group_method for grouped collection select",
"is_bot": false,
"headline": "Merge pull request #1775 from cgunther/grouped-collection-select-grou…",
"author_name": "Vasiliy Ermolovich",
"author_login": "nashby",
"committed_at": "2022-07-08T16:05:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "adea6b557c9879daa4c0639dd6f873f872f8e173",
"body": "Since Rails v5.2, the group method could be a callable object.",
"is_bot": false,
"headline": "Allow proc as group_method for grouped collection select",
"author_name": "Chris Gunther",
"author_login": "cgunther",
"committed_at": "2022-06-09T15:43:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "27e510280897b005011600f83597b9849ccc2a6b",
"body": null,
"is_bot": false,
"headline": "Honor `include_hidden` on inline boolean inputs",
"author_name": "Youssef Boulkaid",
"author_login": "yboulkaid",
"committed_at": "2022-05-10T18:55:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "23205201a935c7e52c39549756e2ec2e2ec47793",
"body": null,
"is_bot": false,
"headline": "Merge pull request #1771 from sajadtorkamani/patch-1",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2022-04-23T11:41:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ee134f87b5c76ddcacaa9c2b36131eeb1d42c90d",
"body": null,
"is_bot": false,
"headline": "Fix anchor link to Bootstrap",
"author_name": "Sajad Torkamani",
"author_login": "sajadtorkamani",
"committed_at": "2022-04-23T10:56:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "60f73d2424a6c53beea77b0779d910768d4fb055",
"body": "Only call where if needed",
"is_bot": false,
"headline": "Merge pull request #1765 from asgerb/where-patch",
"author_name": "Vasiliy Ermolovich",
"author_login": "nashby",
"committed_at": "2022-03-31T14:56:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e2e4dd30d27c30aa1dc17966763e4beac6cb39cc",
"body": null,
"is_bot": false,
"headline": "Only call `where` if needed",
"author_name": "asgerb",
"author_login": "asgerb",
"committed_at": "2022-03-11T10:08:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "159f4015973c5f57b05253308bbaedc238dbbe07",
"body": "Update bootstrap initializer banner",
"is_bot": false,
"headline": "Merge pull request #1764 from m5o/bootstrap-banner-info",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2022-03-09T17:09:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e277227123f6c51ce0c7337346a70a601839a804",
"body": "* remove a misleading sentence\n * `Please do not make direct changes to this file!`\n* 💭 prep & discussion:\n * https://github.com/heartcombo/simple_form-bootstrap/pull/359\n\nfixes #1756\n\n/cc @carlosantoniodasilva @collimarco",
"is_bot": false,
"headline": "Update bootstrap initializer banner",
"author_name": "m5o",
"author_login": "m5o",
"committed_at": "2022-03-09T17:06:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9159ee109a858dca23bca6d7c013a5216ff402c3",
"body": null,
"is_bot": false,
"headline": "Update CHANGELOG.md",
"author_name": "Vasiliy Ermolovich",
"author_login": "nashby",
"committed_at": "2022-03-07T12:48:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1535f3236773757bc1702d6cdb0f08a565f81e9f",
"body": "Update install generator for Bootstrap 5",
"is_bot": false,
"headline": "Merge pull request #1738 from mhw/bootstrap-5",
"author_name": "Vasiliy Ermolovich",
"author_login": "nashby",
"committed_at": "2022-03-07T12:46:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3238067743729ae294850693ecdb0fd6475940d4",
"body": null,
"is_bot": false,
"headline": "Add changelog entry for #1703 [ci skip]",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2022-02-25T17:37:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8c45bf1a0ce7dcb0bb380f8a13c858ca58c6c5d6",
"body": "* Rails and Ruby versions follow the most recent to oldest, except for\n Rails main, so we can keep the Gemfile the first one.\n* Excluding specific matrix combinations based on the Gemfile first,\n Ruby version next, and keep the same order (most recent -> oldest)\n* Quote all Ruby versions to keep t\n[…]\n0' version to avoid the float issue where it'd use the latest\n 3.x instead.\n* Test Rails 6.1 with Ruby 3.1, as Rails test suite supports it.\n\nAlso update Changelog with the 3.1 Ruby support addition.",
"is_bot": false,
"headline": "Reorganize test matrix & use latest bundler",
"author_name": "Carlos Antonio da Silva",
"author_login": "carlosantoniodasilva",
"committed_at": "2022-02-25T16:40:55Z",
"body_truncated": true,
"is_coding_agent": false
}
],
"releases_count": 14,
"commits_last_year": 30,
"latest_release_at": "2026-01-05T13:07:49Z",
"latest_release_tag": "v5.4.1",
"releases_from_tags": false,
"days_since_last_push": 111,
"active_weeks_last_year": 11,
"days_since_latest_release": 197,
"mean_days_between_releases": 309.8
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": true,
"health_percentage": 50,
"has_issue_template": true,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"ecosystem": {
"packages": [
{
"name": "simple_form",
"exists": true,
"license": "MIT",
"keywords": [],
"ecosystem": "rubygems",
"matches_repo": true,
"registry_url": "https://rubygems.org/gems/simple_form",
"is_deprecated": false,
"latest_version": "5.4.1",
"repository_url": "https://github.com/heartcombo/simple_form",
"versions_count": 63,
"total_downloads": 95931058,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": null,
"first_published_at": "2009-11-09T16:13:30.227000Z",
"latest_published_at": "2026-01-05T13:07:06.117000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 197
}
]
},
"popularity": {
"forks": 1298,
"stars": 8231,
"watchers": 150,
"fork_history": {
"days": [
{
"date": "2012-12-27",
"count": 1
},
{
"date": "2012-12-28",
"count": 2
},
{
"date": "2013-01-03",
"count": 1
},
{
"date": "2013-01-14",
"count": 1
},
{
"date": "2013-01-17",
"count": 2
},
{
"date": "2013-01-24",
"count": 1
},
{
"date": "2013-01-26",
"count": 2
},
{
"date": "2013-01-28",
"count": 1
},
{
"date": "2013-01-29",
"count": 1
},
{
"date": "2013-02-05",
"count": 1
},
{
"date": "2013-02-12",
"count": 1
},
{
"date": "2013-02-26",
"count": 3
},
{
"date": "2013-03-01",
"count": 1
},
{
"date": "2013-03-04",
"count": 1
},
{
"date": "2013-03-06",
"count": 2
},
{
"date": "2013-03-07",
"count": 1
},
{
"date": "2013-03-09",
"count": 1
},
{
"date": "2013-03-11",
"count": 1
},
{
"date": "2013-03-12",
"count": 2
},
{
"date": "2013-03-16",
"count": 1
},
{
"date": "2013-03-17",
"count": 1
},
{
"date": "2013-03-18",
"count": 1
},
{
"date": "2013-03-19",
"count": 3
},
{
"date": "2013-03-20",
"count": 2
},
{
"date": "2013-03-21",
"count": 2
},
{
"date": "2013-03-23",
"count": 1
},
{
"date": "2013-03-27",
"count": 2
},
{
"date": "2013-03-29",
"count": 1
},
{
"date": "2013-04-04",
"count": 1
},
{
"date": "2013-04-07",
"count": 1
},
{
"date": "2013-04-08",
"count": 1
},
{
"date": "2013-04-09",
"count": 1
},
{
"date": "2013-04-12",
"count": 1
},
{
"date": "2013-04-13",
"count": 1
},
{
"date": "2013-04-17",
"count": 1
},
{
"date": "2013-04-18",
"count": 1
},
{
"date": "2013-04-23",
"count": 1
},
{
"date": "2013-04-24",
"count": 1
},
{
"date": "2013-04-29",
"count": 1
},
{
"date": "2013-05-01",
"count": 1
},
{
"date": "2013-05-02",
"count": 1
},
{
"date": "2013-05-03",
"count": 2
},
{
"date": "2013-05-05",
"count": 1
},
{
"date": "2013-05-17",
"count": 2
},
{
"date": "2013-05-21",
"count": 1
},
{
"date": "2013-05-31",
"count": 3
},
{
"date": "2013-06-02",
"count": 1
},
{
"date": "2013-06-04",
"count": 1
},
{
"date": "2013-06-05",
"count": 2
},
{
"date": "2013-06-12",
"count": 1
},
{
"date": "2013-06-13",
"count": 1
},
{
"date": "2013-06-15",
"count": 1
},
{
"date": "2013-06-17",
"count": 1
},
{
"date": "2013-06-18",
"count": 1
},
{
"date": "2013-06-19",
"count": 1
},
{
"date": "2013-06-20",
"count": 2
},
{
"date": "2013-06-25",
"count": 2
},
{
"date": "2013-06-26",
"count": 1
},
{
"date": "2013-06-27",
"count": 1
},
{
"date": "2013-06-28",
"count": 1
},
{
"date": "2013-07-03",
"count": 1
},
{
"date": "2013-07-05",
"count": 1
},
{
"date": "2013-07-10",
"count": 1
},
{
"date": "2013-07-15",
"count": 1
},
{
"date": "2013-07-16",
"count": 1
},
{
"date": "2013-07-18",
"count": 1
},
{
"date": "2013-07-19",
"count": 1
},
{
"date": "2013-07-22",
"count": 2
},
{
"date": "2013-07-26",
"count": 2
},
{
"date": "2013-07-29",
"count": 3
},
{
"date": "2013-07-30",
"count": 1
},
{
"date": "2013-07-31",
"count": 2
},
{
"date": "2013-08-07",
"count": 1
},
{
"date": "2013-08-09",
"count": 2
},
{
"date": "2013-08-12",
"count": 1
},
{
"date": "2013-08-15",
"count": 1
},
{
"date": "2013-08-18",
"count": 1
},
{
"date": "2013-08-20",
"count": 1
},
{
"date": "2013-08-21",
"count": 3
},
{
"date": "2013-08-22",
"count": 2
},
{
"date": "2013-08-24",
"count": 1
},
{
"date": "2013-08-26",
"count": 2
},
{
"date": "2013-08-28",
"count": 1
},
{
"date": "2013-09-01",
"count": 1
},
{
"date": "2013-09-04",
"count": 1
},
{
"date": "2013-09-05",
"count": 1
},
{
"date": "2013-09-06",
"count": 2
},
{
"date": "2013-09-10",
"count": 1
},
{
"date": "2013-09-11",
"count": 1
},
{
"date": "2013-09-12",
"count": 2
},
{
"date": "2013-09-16",
"count": 2
},
{
"date": "2013-09-19",
"count": 1
},
{
"date": "2013-09-24",
"count": 2
},
{
"date": "2013-09-27",
"count": 1
},
{
"date": "2013-09-28",
"count": 1
},
{
"date": "2013-09-30",
"count": 2
},
{
"date": "2013-10-01",
"count": 1
},
{
"date": "2013-10-03",
"count": 1
},
{
"date": "2013-10-04",
"count": 1
},
{
"date": "2013-10-07",
"count": 3
},
{
"date": "2013-10-08",
"count": 1
},
{
"date": "2013-10-16",
"count": 1
},
{
"date": "2013-10-17",
"count": 3
},
{
"date": "2013-10-18",
"count": 1
},
{
"date": "2013-10-22",
"count": 1
},
{
"date": "2013-10-25",
"count": 1
},
{
"date": "2013-10-28",
"count": 2
},
{
"date": "2013-10-30",
"count": 1
},
{
"date": "2013-11-05",
"count": 2
},
{
"date": "2013-11-06",
"count": 1
},
{
"date": "2013-11-08",
"count": 3
},
{
"date": "2013-11-09",
"count": 1
},
{
"date": "2013-11-11",
"count": 1
},
{
"date": "2013-11-12",
"count": 2
},
{
"date": "2013-11-15",
"count": 1
},
{
"date": "2013-11-21",
"count": 1
},
{
"date": "2013-11-25",
"count": 1
},
{
"date": "2013-11-26",
"count": 2
},
{
"date": "2013-11-28",
"count": 1
},
{
"date": "2013-12-03",
"count": 1
},
{
"date": "2013-12-04",
"count": 1
},
{
"date": "2013-12-06",
"count": 2
},
{
"date": "2013-12-11",
"count": 2
},
{
"date": "2013-12-12",
"count": 1
},
{
"date": "2013-12-29",
"count": 1
},
{
"date": "2013-12-31",
"count": 1
},
{
"date": "2014-01-07",
"count": 1
},
{
"date": "2014-01-09",
"count": 1
},
{
"date": "2014-01-10",
"count": 2
},
{
"date": "2014-01-11",
"count": 1
},
{
"date": "2014-01-12",
"count": 1
},
{
"date": "2014-01-14",
"count": 1
},
{
"date": "2014-01-16",
"count": 1
},
{
"date": "2014-01-19",
"count": 2
},
{
"date": "2014-01-20",
"count": 2
},
{
"date": "2014-01-21",
"count": 1
},
{
"date": "2014-01-26",
"count": 3
},
{
"date": "2014-01-28",
"count": 1
},
{
"date": "2014-02-02",
"count": 1
},
{
"date": "2014-02-04",
"count": 1
},
{
"date": "2014-02-05",
"count": 1
},
{
"date": "2014-02-09",
"count": 1
},
{
"date": "2014-02-12",
"count": 2
},
{
"date": "2014-02-13",
"count": 1
},
{
"date": "2014-02-14",
"count": 1
},
{
"date": "2014-02-16",
"count": 1
},
{
"date": "2014-02-19",
"count": 1
},
{
"date": "2014-02-21",
"count": 1
},
{
"date": "2014-02-25",
"count": 1
},
{
"date": "2014-02-28",
"count": 1
},
{
"date": "2014-03-05",
"count": 1
},
{
"date": "2014-03-06",
"count": 1
},
{
"date": "2014-03-08",
"count": 1
},
{
"date": "2014-03-11",
"count": 1
},
{
"date": "2014-03-14",
"count": 1
},
{
"date": "2014-03-17",
"count": 2
},
{
"date": "2014-03-20",
"count": 2
},
{
"date": "2014-03-21",
"count": 2
},
{
"date": "2014-03-25",
"count": 1
},
{
"date": "2014-03-26",
"count": 1
},
{
"date": "2014-03-30",
"count": 1
},
{
"date": "2014-04-01",
"count": 1
},
{
"date": "2014-04-03",
"count": 2
},
{
"date": "2014-04-08",
"count": 3
},
{
"date": "2014-04-09",
"count": 1
},
{
"date": "2014-04-11",
"count": 1
},
{
"date": "2014-04-12",
"count": 1
},
{
"date": "2014-04-13",
"count": 1
},
{
"date": "2014-04-14",
"count": 1
},
{
"date": "2014-04-17",
"count": 2
},
{
"date": "2014-04-22",
"count": 2
},
{
"date": "2014-04-23",
"count": 2
},
{
"date": "2014-04-24",
"count": 1
},
{
"date": "2014-04-28",
"count": 1
},
{
"date": "2014-04-29",
"count": 2
},
{
"date": "2014-05-04",
"count": 2
},
{
"date": "2014-05-07",
"count": 1
},
{
"date": "2014-05-14",
"count": 1
},
{
"date": "2014-05-16",
"count": 2
},
{
"date": "2014-05-19",
"count": 2
},
{
"date": "2014-05-20",
"count": 1
},
{
"date": "2014-05-22",
"count": 1
},
{
"date": "2014-05-25",
"count": 1
},
{
"date": "2014-05-26",
"count": 1
},
{
"date": "2014-05-29",
"count": 1
},
{
"date": "2014-06-01",
"count": 1
},
{
"date": "2014-06-05",
"count": 1
},
{
"date": "2014-06-06",
"count": 1
},
{
"date": "2014-06-08",
"count": 1
},
{
"date": "2014-06-10",
"count": 1
},
{
"date": "2014-06-19",
"count": 2
},
{
"date": "2014-06-21",
"count": 1
},
{
"date": "2014-06-26",
"count": 1
},
{
"date": "2014-06-29",
"count": 1
},
{
"date": "2014-06-30",
"count": 1
},
{
"date": "2014-07-01",
"count": 1
},
{
"date": "2014-07-02",
"count": 1
},
{
"date": "2014-07-09",
"count": 1
},
{
"date": "2014-07-15",
"count": 2
},
{
"date": "2014-07-16",
"count": 1
},
{
"date": "2014-07-17",
"count": 1
},
{
"date": "2014-07-18",
"count": 1
},
{
"date": "2014-07-19",
"count": 1
},
{
"date": "2014-07-21",
"count": 2
},
{
"date": "2014-07-23",
"count": 2
},
{
"date": "2014-07-24",
"count": 1
},
{
"date": "2014-07-29",
"count": 1
},
{
"date": "2014-07-31",
"count": 1
},
{
"date": "2014-08-01",
"count": 1
},
{
"date": "2014-08-12",
"count": 2
},
{
"date": "2014-08-13",
"count": 2
},
{
"date": "2014-08-15",
"count": 1
},
{
"date": "2014-08-19",
"count": 1
},
{
"date": "2014-08-21",
"count": 2
},
{
"date": "2014-08-24",
"count": 1
},
{
"date": "2014-08-25",
"count": 1
},
{
"date": "2014-08-26",
"count": 1
},
{
"date": "2014-09-03",
"count": 1
},
{
"date": "2014-09-04",
"count": 1
},
{
"date": "2014-09-05",
"count": 2
},
{
"date": "2014-09-09",
"count": 3
},
{
"date": "2014-09-21",
"count": 1
},
{
"date": "2014-09-23",
"count": 1
},
{
"date": "2014-09-24",
"count": 1
},
{
"date": "2014-09-25",
"count": 1
},
{
"date": "2014-09-29",
"count": 2
},
{
"date": "2014-10-04",
"count": 1
},
{
"date": "2014-10-08",
"count": 1
},
{
"date": "2014-10-10",
"count": 1
},
{
"date": "2014-10-11",
"count": 1
},
{
"date": "2014-10-16",
"count": 1
},
{
"date": "2014-10-17",
"count": 3
},
{
"date": "2014-10-19",
"count": 1
},
{
"date": "2014-10-22",
"count": 1
},
{
"date": "2014-10-24",
"count": 1
},
{
"date": "2014-10-27",
"count": 1
},
{
"date": "2014-10-29",
"count": 1
},
{
"date": "2014-11-01",
"count": 1
},
{
"date": "2014-11-05",
"count": 1
},
{
"date": "2014-11-08",
"count": 1
},
{
"date": "2014-11-10",
"count": 1
},
{
"date": "2014-11-19",
"count": 1
},
{
"date": "2014-11-22",
"count": 1
},
{
"date": "2014-11-23",
"count": 1
},
{
"date": "2014-11-24",
"count": 1
},
{
"date": "2014-11-28",
"count": 1
},
{
"date": "2014-12-02",
"count": 1
},
{
"date": "2014-12-03",
"count": 1
},
{
"date": "2014-12-04",
"count": 2
},
{
"date": "2014-12-08",
"count": 1
},
{
"date": "2014-12-13",
"count": 1
},
{
"date": "2014-12-19",
"count": 1
},
{
"date": "2014-12-21",
"count": 1
},
{
"date": "2014-12-28",
"count": 1
},
{
"date": "2015-01-07",
"count": 1
},
{
"date": "2015-01-08",
"count": 1
},
{
"date": "2015-01-11",
"count": 1
},
{
"date": "2015-01-12",
"count": 2
},
{
"date": "2015-01-19",
"count": 1
},
{
"date": "2015-01-21",
"count": 1
},
{
"date": "2015-01-25",
"count": 1
},
{
"date": "2015-01-26",
"count": 1
},
{
"date": "2015-01-27",
"count": 3
},
{
"date": "2015-02-03",
"count": 1
},
{
"date": "2015-02-04",
"count": 2
},
{
"date": "2015-02-10",
"count": 2
},
{
"date": "2015-02-11",
"count": 2
},
{
"date": "2015-02-13",
"count": 2
},
{
"date": "2015-02-14",
"count": 1
},
{
"date": "2015-02-16",
"count": 1
},
{
"date": "2015-02-19",
"count": 2
},
{
"date": "2015-02-21",
"count": 1
},
{
"date": "2015-02-26",
"count": 1
},
{
"date": "2015-03-03",
"count": 1
},
{
"date": "2015-03-05",
"count": 1
},
{
"date": "2015-03-19",
"count": 1
},
{
"date": "2015-03-20",
"count": 1
},
{
"date": "2015-03-21",
"count": 2
},
{
"date": "2015-03-25",
"count": 1
},
{
"date": "2015-04-05",
"count": 1
},
{
"date": "2015-04-09",
"count": 2
},
{
"date": "2015-04-11",
"count": 2
},
{
"date": "2015-04-14",
"count": 1
},
{
"date": "2015-04-16",
"count": 1
},
{
"date": "2015-04-24",
"count": 1
},
{
"date": "2015-04-27",
"count": 1
},
{
"date": "2015-04-29",
"count": 1
},
{
"date": "2015-04-30",
"count": 1
},
{
"date": "2015-05-07",
"count": 1
},
{
"date": "2015-05-11",
"count": 1
},
{
"date": "2015-05-14",
"count": 1
},
{
"date": "2015-05-21",
"count": 1
},
{
"date": "2015-05-23",
"count": 1
},
{
"date": "2015-05-25",
"count": 1
},
{
"date": "2015-05-26",
"count": 3
},
{
"date": "2015-05-29",
"count": 1
},
{
"date": "2015-06-12",
"count": 1
},
{
"date": "2015-06-13",
"count": 1
},
{
"date": "2015-06-18",
"count": 1
},
{
"date": "2015-06-26",
"count": 1
},
{
"date": "2015-06-28",
"count": 2
},
{
"date": "2015-07-03",
"count": 1
},
{
"date": "2015-07-04",
"count": 1
},
{
"date": "2015-07-06",
"count": 2
},
{
"date": "2015-07-09",
"count": 1
},
{
"date": "2015-07-14",
"count": 2
},
{
"date": "2015-07-16",
"count": 1
},
{
"date": "2015-07-17",
"count": 1
},
{
"date": "2015-07-23",
"count": 1
},
{
"date": "2015-07-24",
"count": 1
},
{
"date": "2015-07-28",
"count": 1
},
{
"date": "2015-07-29",
"count": 1
},
{
"date": "2015-07-31",
"count": 1
},
{
"date": "2015-08-01",
"count": 1
},
{
"date": "2015-08-02",
"count": 1
},
{
"date": "2015-08-04",
"count": 1
},
{
"date": "2015-08-09",
"count": 1
},
{
"date": "2015-08-11",
"count": 1
},
{
"date": "2015-08-12",
"count": 1
},
{
"date": "2015-08-15",
"count": 1
},
{
"date": "2015-08-22",
"count": 1
},
{
"date": "2015-08-24",
"count": 1
},
{
"date": "2015-08-25",
"count": 1
},
{
"date": "2015-08-29",
"count": 1
},
{
"date": "2015-08-30",
"count": 2
},
{
"date": "2015-09-01",
"count": 1
},
{
"date": "2015-09-04",
"count": 1
},
{
"date": "2015-09-06",
"count": 1
},
{
"date": "2015-09-10",
"count": 1
},
{
"date": "2015-09-15",
"count": 1
},
{
"date": "2015-09-17",
"count": 1
},
{
"date": "2015-09-21",
"count": 1
},
{
"date": "2015-09-23",
"count": 1
},
{
"date": "2015-09-30",
"count": 1
},
{
"date": "2015-10-16",
"count": 1
},
{
"date": "2015-10-17",
"count": 1
},
{
"date": "2015-10-20",
"count": 1
},
{
"date": "2015-10-23",
"count": 2
},
{
"date": "2015-11-04",
"count": 1
},
{
"date": "2015-11-07",
"count": 1
},
{
"date": "2015-11-10",
"count": 1
},
{
"date": "2015-11-15",
"count": 1
},
{
"date": "2015-11-16",
"count": 2
},
{
"date": "2015-11-17",
"count": 1
},
{
"date": "2015-11-18",
"count": 1
},
{
"date": "2015-11-19",
"count": 1
},
{
"date": "2015-11-22",
"count": 1
},
{
"date": "2015-11-26",
"count": 2
},
{
"date": "2015-11-28",
"count": 1
},
{
"date": "2015-11-30",
"count": 1
},
{
"date": "2015-12-02",
"count": 1
},
{
"date": "2015-12-07",
"count": 1
},
{
"date": "2015-12-08",
"count": 1
},
{
"date": "2015-12-18",
"count": 1
},
{
"date": "2015-12-19",
"count": 1
},
{
"date": "2015-12-22",
"count": 1
},
{
"date": "2015-12-23",
"count": 3
},
{
"date": "2015-12-24",
"count": 1
},
{
"date": "2015-12-27",
"count": 1
},
{
"date": "2015-12-30",
"count": 1
},
{
"date": "2016-01-03",
"count": 1
},
{
"date": "2016-01-06",
"count": 1
},
{
"date": "2016-01-11",
"count": 1
},
{
"date": "2016-01-12",
"count": 1
},
{
"date": "2016-01-25",
"count": 1
},
{
"date": "2016-02-01",
"count": 1
},
{
"date": "2016-02-02",
"count": 1
},
{
"date": "2016-02-14",
"count": 1
},
{
"date": "2016-02-17",
"count": 1
},
{
"date": "2016-02-20",
"count": 1
},
{
"date": "2016-02-22",
"count": 1
},
{
"date": "2016-02-23",
"count": 1
},
{
"date": "2016-02-27",
"count": 1
},
{
"date": "2016-02-29",
"count": 1
},
{
"date": "2016-03-06",
"count": 1
},
{
"date": "2016-03-07",
"count": 2
},
{
"date": "2016-03-08",
"count": 1
},
{
"date": "2016-03-09",
"count": 1
},
{
"date": "2016-03-10",
"count": 2
},
{
"date": "2016-03-14",
"count": 1
},
{
"date": "2016-03-21",
"count": 1
},
{
"date": "2016-03-24",
"count": 1
},
{
"date": "2016-03-31",
"count": 1
},
{
"date": "2016-04-01",
"count": 1
},
{
"date": "2016-04-11",
"count": 2
},
{
"date": "2016-04-13",
"count": 1
},
{
"date": "2016-04-15",
"count": 1
},
{
"date": "2016-04-19",
"count": 1
},
{
"date": "2016-04-21",
"count": 3
},
{
"date": "2016-04-22",
"count": 1
},
{
"date": "2016-04-23",
"count": 1
},
{
"date": "2016-04-24",
"count": 1
},
{
"date": "2016-04-28",
"count": 1
},
{
"date": "2016-05-02",
"count": 1
},
{
"date": "2016-05-10",
"count": 1
},
{
"date": "2016-05-13",
"count": 1
},
{
"date": "2016-05-26",
"count": 1
},
{
"date": "2016-06-02",
"count": 1
},
{
"date": "2016-06-03",
"count": 1
},
{
"date": "2016-06-06",
"count": 1
},
{
"date": "2016-06-08",
"count": 1
},
{
"date": "2016-06-10",
"count": 1
},
{
"date": "2016-06-21",
"count": 2
},
{
"date": "2016-06-23",
"count": 1
},
{
"date": "2016-06-24",
"count": 1
},
{
"date": "2016-06-28",
"count": 1
},
{
"date": "2016-07-01",
"count": 1
},
{
"date": "2016-07-04",
"count": 2
},
{
"date": "2016-07-07",
"count": 1
},
{
"date": "2016-07-11",
"count": 1
},
{
"date": "2016-07-13",
"count": 1
},
{
"date": "2016-07-20",
"count": 1
},
{
"date": "2016-07-21",
"count": 1
},
{
"date": "2016-07-24",
"count": 1
},
{
"date": "2016-07-27",
"count": 1
},
{
"date": "2016-07-28",
"count": 1
},
{
"date": "2016-07-29",
"count": 2
},
{
"date": "2016-08-03",
"count": 1
},
{
"date": "2016-08-05",
"count": 1
},
{
"date": "2016-08-06",
"count": 1
},
{
"date": "2016-08-08",
"count": 1
},
{
"date": "2016-08-10",
"count": 1
},
{
"date": "2016-08-17",
"count": 1
},
{
"date": "2016-08-18",
"count": 1
},
{
"date": "2016-08-22",
"count": 1
},
{
"date": "2016-08-25",
"count": 1
},
{
"date": "2016-08-26",
"count": 1
},
{
"date": "2016-08-29",
"count": 1
},
{
"date": "2016-08-31",
"count": 1
},
{
"date": "2016-09-01",
"count": 1
},
{
"date": "2016-09-03",
"count": 1
},
{
"date": "2016-09-06",
"count": 1
},
{
"date": "2016-09-07",
"count": 1
},
{
"date": "2016-09-12",
"count": 1
},
{
"date": "2016-09-17",
"count": 1
},
{
"date": "2016-09-18",
"count": 1
},
{
"date": "2016-09-22",
"count": 2
},
{
"date": "2016-10-05",
"count": 1
},
{
"date": "2016-10-10",
"count": 1
},
{
"date": "2016-10-18",
"count": 1
},
{
"date": "2016-10-21",
"count": 1
},
{
"date": "2016-10-27",
"count": 1
},
{
"date": "2016-10-29",
"count": 1
},
{
"date": "2016-10-31",
"count": 1
},
{
"date": "2016-11-24",
"count": 1
},
{
"date": "2016-11-25",
"count": 1
},
{
"date": "2016-11-28",
"count": 1
},
{
"date": "2016-11-29",
"count": 1
},
{
"date": "2016-12-05",
"count": 1
},
{
"date": "2016-12-06",
"count": 1
},
{
"date": "2016-12-07",
"count": 1
},
{
"date": "2016-12-08",
"count": 2
},
{
"date": "2016-12-19",
"count": 1
},
{
"date": "2016-12-20",
"count": 1
},
{
"date": "2016-12-29",
"count": 1
},
{
"date": "2016-12-30",
"count": 1
},
{
"date": "2017-01-05",
"count": 1
},
{
"date": "2017-01-10",
"count": 1
},
{
"date": "2017-01-17",
"count": 1
},
{
"date": "2017-01-19",
"count": 2
},
{
"date": "2017-01-21",
"count": 1
},
{
"date": "2017-01-26",
"count": 1
},
{
"date": "2017-02-02",
"count": 1
},
{
"date": "2017-02-04",
"count": 2
},
{
"date": "2017-02-09",
"count": 1
},
{
"date": "2017-02-19",
"count": 1
},
{
"date": "2017-02-21",
"count": 1
},
{
"date": "2017-02-28",
"count": 1
},
{
"date": "2017-03-08",
"count": 1
},
{
"date": "2017-03-09",
"count": 1
},
{
"date": "2017-03-14",
"count": 1
},
{
"date": "2017-03-19",
"count": 1
},
{
"date": "2017-03-24",
"count": 1
},
{
"date": "2017-03-25",
"count": 1
},
{
"date": "2017-03-26",
"count": 1
},
{
"date": "2017-03-28",
"count": 1
},
{
"date": "2017-03-29",
"count": 1
},
{
"date": "2017-04-04",
"count": 1
},
{
"date": "2017-04-11",
"count": 2
},
{
"date": "2017-04-13",
"count": 1
},
{
"date": "2017-04-16",
"count": 1
},
{
"date": "2017-04-22",
"count": 1
},
{
"date": "2017-04-23",
"count": 1
},
{
"date": "2017-04-24",
"count": 1
},
{
"date": "2017-04-25",
"count": 1
},
{
"date": "2017-04-27",
"count": 3
},
{
"date": "2017-04-28",
"count": 8
},
{
"date": "2017-04-29",
"count": 1
},
{
"date": "2017-04-30",
"count": 2
},
{
"date": "2017-05-01",
"count": 1
},
{
"date": "2017-05-02",
"count": 4
},
{
"date": "2017-05-03",
"count": 1
},
{
"date": "2017-05-05",
"count": 1
},
{
"date": "2017-05-10",
"count": 1
},
{
"date": "2017-05-16",
"count": 1
},
{
"date": "2017-05-17",
"count": 3
},
{
"date": "2017-05-20",
"count": 1
},
{
"date": "2017-05-25",
"count": 1
},
{
"date": "2017-05-26",
"count": 1
},
{
"date": "2017-05-27",
"count": 1
},
{
"date": "2017-06-11",
"count": 1
},
{
"date": "2017-06-13",
"count": 1
},
{
"date": "2017-06-16",
"count": 1
},
{
"date": "2017-06-19",
"count": 2
},
{
"date": "2017-07-04",
"count": 1
},
{
"date": "2017-07-07",
"count": 4
},
{
"date": "2017-07-10",
"count": 1
},
{
"date": "2017-07-15",
"count": 1
},
{
"date": "2017-07-20",
"count": 1
},
{
"date": "2017-07-22",
"count": 1
},
{
"date": "2017-08-03",
"count": 1
},
{
"date": "2017-08-06",
"count": 1
},
{
"date": "2017-08-08",
"count": 1
},
{
"date": "2017-08-24",
"count": 1
},
{
"date": "2017-08-25",
"count": 1
},
{
"date": "2017-09-04",
"count": 2
},
{
"date": "2017-09-06",
"count": 1
},
{
"date": "2017-09-12",
"count": 1
},
{
"date": "2017-09-14",
"count": 1
},
{
"date": "2017-09-15",
"count": 1
},
{
"date": "2017-09-18",
"count": 1
},
{
"date": "2017-09-28",
"count": 1
},
{
"date": "2017-10-04",
"count": 1
},
{
"date": "2017-10-17",
"count": 1
},
{
"date": "2017-10-24",
"count": 1
},
{
"date": "2017-11-02",
"count": 1
},
{
"date": "2017-11-07",
"count": 1
},
{
"date": "2017-11-09",
"count": 1
},
{
"date": "2017-11-10",
"count": 1
},
{
"date": "2017-11-13",
"count": 1
},
{
"date": "2017-11-17",
"count": 1
},
{
"date": "2017-11-19",
"count": 1
},
{
"date": "2017-11-27",
"count": 1
},
{
"date": "2017-12-02",
"count": 1
},
{
"date": "2017-12-11",
"count": 1
},
{
"date": "2017-12-13",
"count": 4
},
{
"date": "2017-12-15",
"count": 1
},
{
"date": "2017-12-18",
"count": 1
},
{
"date": "2018-01-05",
"count": 1
},
{
"date": "2018-01-11",
"count": 1
},
{
"date": "2018-01-15",
"count": 1
},
{
"date": "2018-01-19",
"count": 1
},
{
"date": "2018-01-23",
"count": 1
},
{
"date": "2018-01-24",
"count": 1
},
{
"date": "2018-01-25",
"count": 1
},
{
"date": "2018-01-28",
"count": 1
},
{
"date": "2018-02-01",
"count": 1
},
{
"date": "2018-02-03",
"count": 1
},
{
"date": "2018-02-04",
"count": 1
},
{
"date": "2018-02-05",
"count": 2
},
{
"date": "2018-02-07",
"count": 1
},
{
"date": "2018-02-14",
"count": 1
},
{
"date": "2018-02-15",
"count": 1
},
{
"date": "2018-02-18",
"count": 1
},
{
"date": "2018-02-20",
"count": 1
},
{
"date": "2018-02-25",
"count": 1
},
{
"date": "2018-02-28",
"count": 1
},
{
"date": "2018-03-02",
"count": 1
},
{
"date": "2018-03-08",
"count": 1
},
{
"date": "2018-03-16",
"count": 1
},
{
"date": "2018-03-17",
"count": 1
},
{
"date": "2018-03-21",
"count": 2
},
{
"date": "2018-03-23",
"count": 2
},
{
"date": "2018-03-25",
"count": 1
},
{
"date": "2018-03-26",
"count": 1
},
{
"date": "2018-03-29",
"count": 2
},
{
"date": "2018-03-30",
"count": 1
},
{
"date": "2018-04-10",
"count": 1
},
{
"date": "2018-04-11",
"count": 2
},
{
"date": "2018-05-07",
"count": 1
},
{
"date": "2018-05-10",
"count": 1
},
{
"date": "2018-05-11",
"count": 1
},
{
"date": "2018-05-13",
"count": 2
},
{
"date": "2018-05-17",
"count": 1
},
{
"date": "2018-05-21",
"count": 1
},
{
"date": "2018-05-24",
"count": 1
},
{
"date": "2018-05-28",
"count": 1
},
{
"date": "2018-06-07",
"count": 1
},
{
"date": "2018-06-12",
"count": 1
},
{
"date": "2018-06-13",
"count": 1
},
{
"date": "2018-06-19",
"count": 1
},
{
"date": "2018-07-05",
"count": 1
},
{
"date": "2018-07-23",
"count": 1
},
{
"date": "2018-07-26",
"count": 1
},
{
"date": "2018-07-27",
"count": 1
},
{
"date": "2018-07-30",
"count": 1
},
{
"date": "2018-08-01",
"count": 1
},
{
"date": "2018-08-02",
"count": 1
},
{
"date": "2018-08-14",
"count": 1
},
{
"date": "2018-08-16",
"count": 1
},
{
"date": "2018-08-19",
"count": 1
},
{
"date": "2018-08-29",
"count": 1
},
{
"date": "2018-08-30",
"count": 1
},
{
"date": "2018-09-10",
"count": 1
},
{
"date": "2018-10-11",
"count": 1
},
{
"date": "2018-10-16",
"count": 1
},
{
"date": "2018-10-18",
"count": 1
},
{
"date": "2018-10-30",
"count": 1
},
{
"date": "2018-11-09",
"count": 1
},
{
"date": "2018-11-14",
"count": 1
},
{
"date": "2018-11-19",
"count": 1
},
{
"date": "2018-11-23",
"count": 1
},
{
"date": "2018-11-30",
"count": 1
},
{
"date": "2018-12-04",
"count": 1
},
{
"date": "2018-12-12",
"count": 1
},
{
"date": "2018-12-17",
"count": 1
},
{
"date": "2018-12-21",
"count": 1
},
{
"date": "2018-12-31",
"count": 1
},
{
"date": "2019-01-07",
"count": 1
},
{
"date": "2019-01-18",
"count": 1
},
{
"date": "2019-01-31",
"count": 1
},
{
"date": "2019-02-04",
"count": 1
},
{
"date": "2019-02-11",
"count": 2
},
{
"date": "2019-02-13",
"count": 1
},
{
"date": "2019-02-16",
"count": 1
},
{
"date": "2019-02-21",
"count": 2
},
{
"date": "2019-02-26",
"count": 1
},
{
"date": "2019-03-06",
"count": 1
},
{
"date": "2019-03-11",
"count": 1
},
{
"date": "2019-03-14",
"count": 1
},
{
"date": "2019-03-22",
"count": 1
},
{
"date": "2019-03-23",
"count": 1
},
{
"date": "2019-03-28",
"count": 1
},
{
"date": "2019-04-02",
"count": 1
},
{
"date": "2019-04-04",
"count": 1
},
{
"date": "2019-04-20",
"count": 1
},
{
"date": "2019-04-23",
"count": 1
},
{
"date": "2019-04-24",
"count": 1
},
{
"date": "2019-05-13",
"count": 1
},
{
"date": "2019-05-14",
"count": 1
},
{
"date": "2019-05-15",
"count": 1
},
{
"date": "2019-05-17",
"count": 1
},
{
"date": "2019-05-21",
"count": 1
},
{
"date": "2019-05-22",
"count": 2
},
{
"date": "2019-05-25",
"count": 1
},
{
"date": "2019-05-27",
"count": 1
},
{
"date": "2019-05-29",
"count": 1
},
{
"date": "2019-05-30",
"count": 1
},
{
"date": "2019-06-05",
"count": 1
},
{
"date": "2019-06-10",
"count": 1
},
{
"date": "2019-06-12",
"count": 1
},
{
"date": "2019-06-13",
"count": 1
},
{
"date": "2019-06-17",
"count": 1
},
{
"date": "2019-06-22",
"count": 1
},
{
"date": "2019-06-25",
"count": 1
},
{
"date": "2019-06-30",
"count": 1
},
{
"date": "2019-07-04",
"count": 1
},
{
"date": "2019-07-06",
"count": 1
},
{
"date": "2019-07-14",
"count": 1
},
{
"date": "2019-07-20",
"count": 1
},
{
"date": "2019-07-25",
"count": 1
},
{
"date": "2019-08-02",
"count": 1
},
{
"date": "2019-08-20",
"count": 1
},
{
"date": "2019-08-28",
"count": 1
},
{
"date": "2019-09-01",
"count": 1
},
{
"date": "2019-09-08",
"count": 1
},
{
"date": "2019-09-24",
"count": 1
},
{
"date": "2019-09-25",
"count": 1
},
{
"date": "2019-09-27",
"count": 1
},
{
"date": "2019-09-30",
"count": 1
},
{
"date": "2019-10-01",
"count": 1
},
{
"date": "2019-10-02",
"count": 2
},
{
"date": "2019-10-10",
"count": 1
},
{
"date": "2019-10-14",
"count": 1
},
{
"date": "2019-10-17",
"count": 2
},
{
"date": "2019-10-28",
"count": 1
},
{
"date": "2019-10-30",
"count": 3
},
{
"date": "2019-10-31",
"count": 1
},
{
"date": "2019-11-08",
"count": 1
},
{
"date": "2019-11-22",
"count": 1
},
{
"date": "2019-11-29",
"count": 1
},
{
"date": "2019-12-03",
"count": 1
},
{
"date": "2019-12-16",
"count": 1
},
{
"date": "2019-12-19",
"count": 1
},
{
"date": "2019-12-23",
"count": 2
},
{
"date": "2019-12-27",
"count": 2
},
{
"date": "2020-01-08",
"count": 1
},
{
"date": "2020-01-10",
"count": 1
},
{
"date": "2020-01-22",
"count": 1
},
{
"date": "2020-01-27",
"count": 1
},
{
"date": "2020-01-30",
"count": 1
},
{
"date": "2020-02-04",
"count": 1
},
{
"date": "2020-02-06",
"count": 1
},
{
"date": "2020-02-10",
"count": 1
},
{
"date": "2020-02-12",
"count": 1
},
{
"date": "2020-02-15",
"count": 1
},
{
"date": "2020-02-22",
"count": 1
},
{
"date": "2020-02-29",
"count": 1
},
{
"date": "2020-03-05",
"count": 1
},
{
"date": "2020-03-14",
"count": 1
},
{
"date": "2020-05-01",
"count": 1
},
{
"date": "2020-05-18",
"count": 2
},
{
"date": "2020-05-23",
"count": 1
},
{
"date": "2020-05-25",
"count": 1
},
{
"date": "2020-05-30",
"count": 1
},
{
"date": "2020-06-03",
"count": 1
},
{
"date": "2020-06-04",
"count": 1
},
{
"date": "2020-06-14",
"count": 1
},
{
"date": "2020-06-16",
"count": 1
},
{
"date": "2020-06-18",
"count": 1
},
{
"date": "2020-06-23",
"count": 1
},
{
"date": "2020-06-25",
"count": 1
},
{
"date": "2020-07-01",
"count": 1
},
{
"date": "2020-07-09",
"count": 1
},
{
"date": "2020-07-14",
"count": 1
},
{
"date": "2020-07-31",
"count": 1
},
{
"date": "2020-08-03",
"count": 1
},
{
"date": "2020-08-04",
"count": 1
},
{
"date": "2020-08-19",
"count": 1
},
{
"date": "2020-09-11",
"count": 1
},
{
"date": "2020-09-23",
"count": 1
},
{
"date": "2020-09-30",
"count": 1
},
{
"date": "2020-11-02",
"count": 1
},
{
"date": "2020-11-26",
"count": 1
},
{
"date": "2020-12-09",
"count": 1
},
{
"date": "2020-12-18",
"count": 1
},
{
"date": "2020-12-27",
"count": 1
},
{
"date": "2021-01-04",
"count": 1
},
{
"date": "2021-01-05",
"count": 1
},
{
"date": "2021-01-07",
"count": 1
},
{
"date": "2021-01-08",
"count": 1
},
{
"date": "2021-01-18",
"count": 1
},
{
"date": "2021-01-20",
"count": 1
},
{
"date": "2021-01-28",
"count": 1
},
{
"date": "2021-01-31",
"count": 1
},
{
"date": "2021-03-04",
"count": 1
},
{
"date": "2021-03-09",
"count": 1
},
{
"date": "2021-03-24",
"count": 1
},
{
"date": "2021-04-01",
"count": 1
},
{
"date": "2021-04-13",
"count": 2
},
{
"date": "2021-04-16",
"count": 1
},
{
"date": "2021-05-20",
"count": 1
},
{
"date": "2021-05-21",
"count": 1
},
{
"date": "2021-05-29",
"count": 1
},
{
"date": "2021-06-05",
"count": 1
},
{
"date": "2021-06-17",
"count": 2
},
{
"date": "2021-07-08",
"count": 1
},
{
"date": "2021-07-11",
"count": 1
},
{
"date": "2021-08-02",
"count": 1
},
{
"date": "2021-08-04",
"count": 1
},
{
"date": "2021-09-08",
"count": 1
},
{
"date": "2021-09-14",
"count": 1
},
{
"date": "2021-09-20",
"count": 1
},
{
"date": "2021-10-22",
"count": 2
},
{
"date": "2021-11-02",
"count": 1
},
{
"date": "2021-11-11",
"count": 1
},
{
"date": "2021-11-29",
"count": 1
},
{
"date": "2021-12-02",
"count": 1
},
{
"date": "2022-01-14",
"count": 1
},
{
"date": "2022-02-02",
"count": 1
},
{
"date": "2022-02-06",
"count": 1
},
{
"date": "2022-02-19",
"count": 1
},
{
"date": "2022-02-22",
"count": 2
},
{
"date": "2022-03-04",
"count": 1
},
{
"date": "2022-03-11",
"count": 1
},
{
"date": "2022-03-16",
"count": 1
},
{
"date": "2022-04-11",
"count": 1
},
{
"date": "2022-04-13",
"count": 1
},
{
"date": "2022-04-17",
"count": 1
},
{
"date": "2022-04-27",
"count": 1
},
{
"date": "2022-05-02",
"count": 1
},
{
"date": "2022-05-10",
"count": 1
},
{
"date": "2022-06-09",
"count": 1
},
{
"date": "2022-06-14",
"count": 1
},
{
"date": "2022-06-27",
"count": 1
},
{
"date": "2022-07-08",
"count": 1
},
{
"date": "2022-07-12",
"count": 1
},
{
"date": "2022-07-16",
"count": 1
},
{
"date": "2022-08-21",
"count": 1
},
{
"date": "2022-08-30",
"count": 2
},
{
"date": "2022-09-01",
"count": 1
},
{
"date": "2022-09-19",
"count": 1
},
{
"date": "2022-09-23",
"count": 1
},
{
"date": "2022-09-27",
"count": 1
},
{
"date": "2022-10-13",
"count": 1
},
{
"date": "2022-10-20",
"count": 2
},
{
"date": "2022-11-18",
"count": 1
},
{
"date": "2022-11-23",
"count": 1
},
{
"date": "2022-11-30",
"count": 1
},
{
"date": "2023-01-17",
"count": 2
},
{
"date": "2023-02-08",
"count": 1
},
{
"date": "2023-02-12",
"count": 2
},
{
"date": "2023-02-20",
"count": 1
},
{
"date": "2023-03-01",
"count": 1
},
{
"date": "2023-03-03",
"count": 1
},
{
"date": "2023-03-09",
"count": 1
},
{
"date": "2023-03-29",
"count": 1
},
{
"date": "2023-04-03",
"count": 1
},
{
"date": "2023-04-05",
"count": 1
},
{
"date": "2023-04-26",
"count": 1
},
{
"date": "2023-05-07",
"count": 1
},
{
"date": "2023-07-24",
"count": 1
},
{
"date": "2023-08-04",
"count": 1
},
{
"date": "2023-08-08",
"count": 1
},
{
"date": "2023-09-15",
"count": 1
},
{
"date": "2023-10-16",
"count": 1
},
{
"date": "2023-11-08",
"count": 1
},
{
"date": "2023-11-17",
"count": 1
},
{
"date": "2023-11-30",
"count": 1
},
{
"date": "2023-12-09",
"count": 2
},
{
"date": "2023-12-11",
"count": 1
},
{
"date": "2024-01-26",
"count": 1
},
{
"date": "2024-01-27",
"count": 1
},
{
"date": "2024-02-04",
"count": 1
},
{
"date": "2024-02-14",
"count": 1
},
{
"date": "2024-02-19",
"count": 1
},
{
"date": "2024-03-05",
"count": 2
},
{
"date": "2024-03-07",
"count": 1
},
{
"date": "2024-04-11",
"count": 1
},
{
"date": "2024-05-09",
"count": 1
},
{
"date": "2024-06-06",
"count": 1
},
{
"date": "2024-06-12",
"count": 1
},
{
"date": "2024-07-18",
"count": 1
},
{
"date": "2024-08-22",
"count": 1
},
{
"date": "2024-09-29",
"count": 1
},
{
"date": "2024-10-09",
"count": 1
},
{
"date": "2024-10-23",
"count": 1
},
{
"date": "2024-11-11",
"count": 1
},
{
"date": "2025-01-23",
"count": 1
},
{
"date": "2025-02-15",
"count": 1
},
{
"date": "2025-03-06",
"count": 1
},
{
"date": "2025-04-07",
"count": 1
},
{
"date": "2025-05-14",
"count": 1
},
{
"date": "2025-07-02",
"count": 1
},
{
"date": "2025-09-04",
"count": 1
},
{
"date": "2025-09-09",
"count": 1
},
{
"date": "2025-10-29",
"count": 1
},
{
"date": "2025-11-07",
"count": 1
},
{
"date": "2025-11-27",
"count": 1
},
{
"date": "2025-12-04",
"count": 1
},
{
"date": "2026-02-07",
"count": 1
},
{
"date": "2026-03-29",
"count": 1
},
{
"date": "2026-04-16",
"count": 1
},
{
"date": "2026-06-28",
"count": 1
},
{
"date": "2026-07-19",
"count": 3
}
],
"complete": false,
"collected": 1000,
"total_forks": 1298
},
"star_history": {
"days": [
{
"date": "2020-05-27",
"count": 3
},
{
"date": "2020-05-28",
"count": 1
},
{
"date": "2020-05-29",
"count": 1
},
{
"date": "2020-05-30",
"count": 2
},
{
"date": "2020-06-01",
"count": 2
},
{
"date": "2020-06-02",
"count": 2
},
{
"date": "2020-06-03",
"count": 2
},
{
"date": "2020-06-04",
"count": 3
},
{
"date": "2020-06-09",
"count": 2
},
{
"date": "2020-06-10",
"count": 1
},
{
"date": "2020-06-16",
"count": 1
},
{
"date": "2020-06-20",
"count": 1
},
{
"date": "2020-06-23",
"count": 2
},
{
"date": "2020-06-24",
"count": 4
},
{
"date": "2020-06-25",
"count": 2
},
{
"date": "2020-06-30",
"count": 1
},
{
"date": "2020-07-01",
"count": 1
},
{
"date": "2020-07-02",
"count": 1
},
{
"date": "2020-07-04",
"count": 1
},
{
"date": "2020-07-05",
"count": 1
},
{
"date": "2020-07-08",
"count": 3
},
{
"date": "2020-07-10",
"count": 3
},
{
"date": "2020-07-11",
"count": 1
},
{
"date": "2020-07-12",
"count": 1
},
{
"date": "2020-07-16",
"count": 2
},
{
"date": "2020-07-17",
"count": 2
},
{
"date": "2020-07-18",
"count": 1
},
{
"date": "2020-07-21",
"count": 1
},
{
"date": "2020-07-22",
"count": 1
},
{
"date": "2020-07-23",
"count": 3
},
{
"date": "2020-07-24",
"count": 4
},
{
"date": "2020-07-27",
"count": 1
},
{
"date": "2020-07-29",
"count": 1
},
{
"date": "2020-07-30",
"count": 1
},
{
"date": "2020-08-02",
"count": 1
},
{
"date": "2020-08-04",
"count": 3
},
{
"date": "2020-08-05",
"count": 3
},
{
"date": "2020-08-09",
"count": 2
},
{
"date": "2020-08-10",
"count": 3
},
{
"date": "2020-08-11",
"count": 2
},
{
"date": "2020-08-12",
"count": 1
},
{
"date": "2020-08-13",
"count": 2
},
{
"date": "2020-08-14",
"count": 3
},
{
"date": "2020-08-17",
"count": 2
},
{
"date": "2020-08-18",
"count": 1
},
{
"date": "2020-08-27",
"count": 2
},
{
"date": "2020-08-28",
"count": 1
},
{
"date": "2020-09-02",
"count": 1
},
{
"date": "2020-09-03",
"count": 1
},
{
"date": "2020-09-04",
"count": 1
},
{
"date": "2020-09-06",
"count": 1
},
{
"date": "2020-09-07",
"count": 2
},
{
"date": "2020-09-09",
"count": 1
},
{
"date": "2020-09-10",
"count": 1
},
{
"date": "2020-09-17",
"count": 1
},
{
"date": "2020-09-18",
"count": 1
},
{
"date": "2020-09-20",
"count": 1
},
{
"date": "2020-09-23",
"count": 1
},
{
"date": "2020-09-24",
"count": 1
},
{
"date": "2020-09-25",
"count": 1
},
{
"date": "2020-09-28",
"count": 1
},
{
"date": "2020-10-01",
"count": 2
},
{
"date": "2020-10-02",
"count": 1
},
{
"date": "2020-10-07",
"count": 1
},
{
"date": "2020-10-08",
"count": 1
},
{
"date": "2020-10-12",
"count": 1
},
{
"date": "2020-10-13",
"count": 1
},
{
"date": "2020-10-14",
"count": 1
},
{
"date": "2020-10-16",
"count": 1
},
{
"date": "2020-10-18",
"count": 1
},
{
"date": "2020-10-19",
"count": 2
},
{
"date": "2020-10-20",
"count": 3
},
{
"date": "2020-10-22",
"count": 2
},
{
"date": "2020-10-23",
"count": 1
},
{
"date": "2020-10-28",
"count": 1
},
{
"date": "2020-10-30",
"count": 2
},
{
"date": "2020-11-01",
"count": 1
},
{
"date": "2020-11-05",
"count": 1
},
{
"date": "2020-11-06",
"count": 1
},
{
"date": "2020-11-09",
"count": 1
},
{
"date": "2020-11-10",
"count": 2
},
{
"date": "2020-11-11",
"count": 2
},
{
"date": "2020-11-13",
"count": 1
},
{
"date": "2020-11-15",
"count": 1
},
{
"date": "2020-11-16",
"count": 1
},
{
"date": "2020-11-17",
"count": 2
},
{
"date": "2020-11-18",
"count": 1
},
{
"date": "2020-11-19",
"count": 1
},
{
"date": "2020-11-26",
"count": 1
},
{
"date": "2020-11-27",
"count": 1
},
{
"date": "2020-11-28",
"count": 2
},
{
"date": "2020-11-29",
"count": 1
},
{
"date": "2020-12-02",
"count": 2
},
{
"date": "2020-12-03",
"count": 1
},
{
"date": "2020-12-04",
"count": 1
},
{
"date": "2020-12-07",
"count": 2
},
{
"date": "2020-12-10",
"count": 1
},
{
"date": "2020-12-11",
"count": 1
},
{
"date": "2020-12-14",
"count": 2
},
{
"date": "2020-12-15",
"count": 1
},
{
"date": "2020-12-19",
"count": 1
},
{
"date": "2020-12-23",
"count": 3
},
{
"date": "2020-12-30",
"count": 1
},
{
"date": "2020-12-31",
"count": 1
},
{
"date": "2021-01-04",
"count": 1
},
{
"date": "2021-01-08",
"count": 1
},
{
"date": "2021-01-10",
"count": 1
},
{
"date": "2021-01-12",
"count": 1
},
{
"date": "2021-01-13",
"count": 1
},
{
"date": "2021-01-15",
"count": 3
},
{
"date": "2021-01-16",
"count": 1
},
{
"date": "2021-01-18",
"count": 2
},
{
"date": "2021-01-19",
"count": 1
},
{
"date": "2021-01-21",
"count": 1
},
{
"date": "2021-01-22",
"count": 2
},
{
"date": "2021-01-23",
"count": 1
},
{
"date": "2021-01-24",
"count": 1
},
{
"date": "2021-01-25",
"count": 1
},
{
"date": "2021-01-26",
"count": 1
},
{
"date": "2021-01-27",
"count": 1
},
{
"date": "2021-01-28",
"count": 2
},
{
"date": "2021-01-31",
"count": 2
},
{
"date": "2021-02-01",
"count": 2
},
{
"date": "2021-02-03",
"count": 2
},
{
"date": "2021-02-05",
"count": 1
},
{
"date": "2021-02-07",
"count": 1
},
{
"date": "2021-02-09",
"count": 2
},
{
"date": "2021-02-11",
"count": 3
},
{
"date": "2021-02-12",
"count": 2
},
{
"date": "2021-02-13",
"count": 3
},
{
"date": "2021-02-14",
"count": 4
},
{
"date": "2021-02-15",
"count": 2
},
{
"date": "2021-02-16",
"count": 1
},
{
"date": "2021-02-18",
"count": 2
},
{
"date": "2021-02-20",
"count": 1
},
{
"date": "2021-02-21",
"count": 2
},
{
"date": "2021-02-22",
"count": 1
},
{
"date": "2021-02-24",
"count": 2
},
{
"date": "2021-02-27",
"count": 2
},
{
"date": "2021-03-01",
"count": 1
},
{
"date": "2021-03-02",
"count": 2
},
{
"date": "2021-03-03",
"count": 2
},
{
"date": "2021-03-05",
"count": 3
},
{
"date": "2021-03-06",
"count": 1
},
{
"date": "2021-03-08",
"count": 3
},
{
"date": "2021-03-11",
"count": 1
},
{
"date": "2021-03-14",
"count": 1
},
{
"date": "2021-03-15",
"count": 3
},
{
"date": "2021-03-16",
"count": 1
},
{
"date": "2021-03-17",
"count": 3
},
{
"date": "2021-03-21",
"count": 1
},
{
"date": "2021-03-23",
"count": 2
},
{
"date": "2021-03-24",
"count": 2
},
{
"date": "2021-03-25",
"count": 1
},
{
"date": "2021-03-26",
"count": 1
},
{
"date": "2021-04-01",
"count": 1
},
{
"date": "2021-04-08",
"count": 2
},
{
"date": "2021-04-11",
"count": 1
},
{
"date": "2021-04-13",
"count": 1
},
{
"date": "2021-04-15",
"count": 1
},
{
"date": "2021-04-16",
"count": 1
},
{
"date": "2021-04-17",
"count": 1
},
{
"date": "2021-04-20",
"count": 2
},
{
"date": "2021-04-21",
"count": 2
},
{
"date": "2021-05-04",
"count": 1
},
{
"date": "2021-05-05",
"count": 1
},
{
"date": "2021-05-06",
"count": 2
},
{
"date": "2021-05-09",
"count": 1
},
{
"date": "2021-05-10",
"count": 2
},
{
"date": "2021-05-16",
"count": 1
},
{
"date": "2021-05-17",
"count": 1
},
{
"date": "2021-05-20",
"count": 2
},
{
"date": "2021-05-24",
"count": 1
},
{
"date": "2021-05-27",
"count": 1
},
{
"date": "2021-05-31",
"count": 1
},
{
"date": "2021-06-01",
"count": 2
},
{
"date": "2021-06-05",
"count": 2
},
{
"date": "2021-06-09",
"count": 3
},
{
"date": "2021-06-14",
"count": 1
},
{
"date": "2021-06-15",
"count": 1
},
{
"date": "2021-06-17",
"count": 2
},
{
"date": "2021-06-19",
"count": 1
},
{
"date": "2021-06-21",
"count": 1
},
{
"date": "2021-06-22",
"count": 1
},
{
"date": "2021-06-25",
"count": 1
},
{
"date": "2021-06-27",
"count": 1
},
{
"date": "2021-06-29",
"count": 3
},
{
"date": "2021-07-03",
"count": 2
},
{
"date": "2021-07-06",
"count": 1
},
{
"date": "2021-07-07",
"count": 1
},
{
"date": "2021-07-13",
"count": 2
},
{
"date": "2021-07-14",
"count": 1
},
{
"date": "2021-07-18",
"count": 1
},
{
"date": "2021-07-19",
"count": 1
},
{
"date": "2021-07-21",
"count": 1
},
{
"date": "2021-07-23",
"count": 1
},
{
"date": "2021-07-24",
"count": 1
},
{
"date": "2021-07-26",
"count": 1
},
{
"date": "2021-07-27",
"count": 1
},
{
"date": "2021-07-30",
"count": 1
},
{
"date": "2021-08-03",
"count": 1
},
{
"date": "2021-08-06",
"count": 2
},
{
"date": "2021-08-10",
"count": 1
},
{
"date": "2021-08-11",
"count": 4
},
{
"date": "2021-08-13",
"count": 1
},
{
"date": "2021-08-18",
"count": 2
},
{
"date": "2021-08-19",
"count": 1
},
{
"date": "2021-08-22",
"count": 2
},
{
"date": "2021-08-27",
"count": 1
},
{
"date": "2021-08-29",
"count": 2
},
{
"date": "2021-09-06",
"count": 1
},
{
"date": "2021-09-08",
"count": 1
},
{
"date": "2021-09-16",
"count": 1
},
{
"date": "2021-09-24",
"count": 1
},
{
"date": "2021-09-28",
"count": 1
},
{
"date": "2021-09-29",
"count": 1
},
{
"date": "2021-10-01",
"count": 1
},
{
"date": "2021-10-03",
"count": 1
},
{
"date": "2021-10-05",
"count": 1
},
{
"date": "2021-10-06",
"count": 2
},
{
"date": "2021-10-07",
"count": 1
},
{
"date": "2021-10-09",
"count": 1
},
{
"date": "2021-10-10",
"count": 1
},
{
"date": "2021-10-15",
"count": 1
},
{
"date": "2021-10-18",
"count": 2
},
{
"date": "2021-10-19",
"count": 2
},
{
"date": "2021-10-23",
"count": 1
},
{
"date": "2021-10-25",
"count": 1
},
{
"date": "2021-10-26",
"count": 2
},
{
"date": "2021-10-30",
"count": 1
},
{
"date": "2021-11-02",
"count": 2
},
{
"date": "2021-11-04",
"count": 1
},
{
"date": "2021-11-05",
"count": 1
},
{
"date": "2021-11-07",
"count": 1
},
{
"date": "2021-11-09",
"count": 2
},
{
"date": "2021-11-11",
"count": 2
},
{
"date": "2021-11-15",
"count": 1
},
{
"date": "2021-11-21",
"count": 1
},
{
"date": "2021-11-22",
"count": 1
},
{
"date": "2021-11-25",
"count": 1
},
{
"date": "2021-11-26",
"count": 1
},
{
"date": "2021-12-02",
"count": 1
},
{
"date": "2021-12-03",
"count": 1
},
{
"date": "2021-12-06",
"count": 1
},
{
"date": "2021-12-07",
"count": 1
},
{
"date": "2021-12-09",
"count": 1
},
{
"date": "2021-12-10",
"count": 1
},
{
"date": "2021-12-15",
"count": 1
},
{
"date": "2021-12-16",
"count": 1
},
{
"date": "2021-12-17",
"count": 1
},
{
"date": "2021-12-20",
"count": 1
},
{
"date": "2021-12-21",
"count": 2
},
{
"date": "2021-12-27",
"count": 1
},
{
"date": "2021-12-29",
"count": 1
},
{
"date": "2022-01-03",
"count": 2
},
{
"date": "2022-01-06",
"count": 1
},
{
"date": "2022-01-07",
"count": 1
},
{
"date": "2022-01-10",
"count": 1
},
{
"date": "2022-01-12",
"count": 2
},
{
"date": "2022-01-13",
"count": 1
},
{
"date": "2022-01-15",
"count": 1
},
{
"date": "2022-01-17",
"count": 2
},
{
"date": "2022-01-18",
"count": 2
},
{
"date": "2022-01-20",
"count": 2
},
{
"date": "2022-01-21",
"count": 2
},
{
"date": "2022-01-22",
"count": 2
},
{
"date": "2022-01-24",
"count": 1
},
{
"date": "2022-01-29",
"count": 1
},
{
"date": "2022-02-01",
"count": 1
},
{
"date": "2022-02-04",
"count": 1
},
{
"date": "2022-02-05",
"count": 1
},
{
"date": "2022-02-06",
"count": 2
},
{
"date": "2022-02-07",
"count": 1
},
{
"date": "2022-02-08",
"count": 2
},
{
"date": "2022-02-09",
"count": 1
},
{
"date": "2022-02-11",
"count": 2
},
{
"date": "2022-02-12",
"count": 1
},
{
"date": "2022-02-13",
"count": 2
},
{
"date": "2022-02-15",
"count": 1
},
{
"date": "2022-02-16",
"count": 1
},
{
"date": "2022-02-17",
"count": 4
},
{
"date": "2022-02-18",
"count": 1
},
{
"date": "2022-02-23",
"count": 1
},
{
"date": "2022-02-25",
"count": 2
},
{
"date": "2022-02-26",
"count": 1
},
{
"date": "2022-02-28",
"count": 1
},
{
"date": "2022-03-01",
"count": 1
},
{
"date": "2022-03-02",
"count": 1
},
{
"date": "2022-03-05",
"count": 1
},
{
"date": "2022-03-07",
"count": 1
},
{
"date": "2022-03-08",
"count": 2
},
{
"date": "2022-03-09",
"count": 4
},
{
"date": "2022-03-13",
"count": 1
},
{
"date": "2022-03-14",
"count": 1
},
{
"date": "2022-03-15",
"count": 1
},
{
"date": "2022-03-18",
"count": 1
},
{
"date": "2022-03-20",
"count": 1
},
{
"date": "2022-03-22",
"count": 1
},
{
"date": "2022-03-25",
"count": 1
},
{
"date": "2022-03-26",
"count": 2
},
{
"date": "2022-03-27",
"count": 1
},
{
"date": "2022-03-28",
"count": 1
},
{
"date": "2022-03-29",
"count": 1
},
{
"date": "2022-03-30",
"count": 1
},
{
"date": "2022-03-31",
"count": 1
},
{
"date": "2022-04-01",
"count": 1
},
{
"date": "2022-04-02",
"count": 1
},
{
"date": "2022-04-04",
"count": 1
},
{
"date": "2022-04-06",
"count": 1
},
{
"date": "2022-04-07",
"count": 1
},
{
"date": "2022-04-08",
"count": 1
},
{
"date": "2022-04-09",
"count": 1
},
{
"date": "2022-04-10",
"count": 1
},
{
"date": "2022-04-12",
"count": 2
},
{
"date": "2022-04-14",
"count": 3
},
{
"date": "2022-04-16",
"count": 1
},
{
"date": "2022-04-18",
"count": 2
},
{
"date": "2022-04-19",
"count": 1
},
{
"date": "2022-04-22",
"count": 1
},
{
"date": "2022-04-25",
"count": 1
},
{
"date": "2022-04-27",
"count": 1
},
{
"date": "2022-04-28",
"count": 2
},
{
"date": "2022-04-29",
"count": 1
},
{
"date": "2022-05-01",
"count": 1
},
{
"date": "2022-05-04",
"count": 1
},
{
"date": "2022-05-05",
"count": 2
},
{
"date": "2022-05-07",
"count": 1
},
{
"date": "2022-05-09",
"count": 1
},
{
"date": "2022-05-13",
"count": 1
},
{
"date": "2022-05-14",
"count": 1
},
{
"date": "2022-05-18",
"count": 2
},
{
"date": "2022-05-21",
"count": 1
},
{
"date": "2022-05-23",
"count": 2
},
{
"date": "2022-05-24",
"count": 3
},
{
"date": "2022-05-25",
"count": 3
},
{
"date": "2022-05-27",
"count": 2
},
{
"date": "2022-05-29",
"count": 1
},
{
"date": "2022-05-31",
"count": 1
},
{
"date": "2022-06-01",
"count": 2
},
{
"date": "2022-06-04",
"count": 1
},
{
"date": "2022-06-06",
"count": 2
},
{
"date": "2022-06-09",
"count": 1
},
{
"date": "2022-06-10",
"count": 2
},
{
"date": "2022-06-13",
"count": 1
},
{
"date": "2022-06-15",
"count": 1
},
{
"date": "2022-06-16",
"count": 1
},
{
"date": "2022-06-20",
"count": 1
},
{
"date": "2022-06-21",
"count": 2
},
{
"date": "2022-06-22",
"count": 1
},
{
"date": "2022-06-24",
"count": 1
},
{
"date": "2022-06-25",
"count": 1
},
{
"date": "2022-06-27",
"count": 1
},
{
"date": "2022-06-29",
"count": 2
},
{
"date": "2022-07-05",
"count": 1
},
{
"date": "2022-07-06",
"count": 1
},
{
"date": "2022-07-08",
"count": 1
},
{
"date": "2022-07-10",
"count": 1
},
{
"date": "2022-07-11",
"count": 1
},
{
"date": "2022-07-15",
"count": 2
},
{
"date": "2022-07-16",
"count": 1
},
{
"date": "2022-07-22",
"count": 2
},
{
"date": "2022-07-25",
"count": 1
},
{
"date": "2022-07-26",
"count": 1
},
{
"date": "2022-07-28",
"count": 1
},
{
"date": "2022-07-31",
"count": 1
},
{
"date": "2022-08-03",
"count": 1
},
{
"date": "2022-08-04",
"count": 1
},
{
"date": "2022-08-11",
"count": 1
},
{
"date": "2022-08-12",
"count": 1
},
{
"date": "2022-08-19",
"count": 1
},
{
"date": "2022-08-22",
"count": 3
},
{
"date": "2022-08-23",
"count": 1
},
{
"date": "2022-08-26",
"count": 2
},
{
"date": "2022-08-27",
"count": 2
},
{
"date": "2022-08-30",
"count": 2
},
{
"date": "2022-08-31",
"count": 1
},
{
"date": "2022-09-02",
"count": 1
},
{
"date": "2022-09-04",
"count": 2
},
{
"date": "2022-09-08",
"count": 1
},
{
"date": "2022-09-12",
"count": 2
},
{
"date": "2022-09-13",
"count": 1
},
{
"date": "2022-09-16",
"count": 1
},
{
"date": "2022-09-19",
"count": 1
},
{
"date": "2022-09-25",
"count": 1
},
{
"date": "2022-09-28",
"count": 1
},
{
"date": "2022-09-29",
"count": 2
},
{
"date": "2022-09-30",
"count": 1
},
{
"date": "2022-10-05",
"count": 1
},
{
"date": "2022-10-08",
"count": 1
},
{
"date": "2022-10-09",
"count": 1
},
{
"date": "2022-10-10",
"count": 2
},
{
"date": "2022-10-11",
"count": 2
},
{
"date": "2022-10-12",
"count": 1
},
{
"date": "2022-10-13",
"count": 1
},
{
"date": "2022-10-15",
"count": 1
},
{
"date": "2022-10-18",
"count": 1
},
{
"date": "2022-10-19",
"count": 1
},
{
"date": "2022-10-20",
"count": 3
},
{
"date": "2022-10-21",
"count": 1
},
{
"date": "2022-10-22",
"count": 1
},
{
"date": "2022-10-23",
"count": 1
},
{
"date": "2022-10-26",
"count": 1
},
{
"date": "2022-10-29",
"count": 1
},
{
"date": "2022-11-02",
"count": 2
},
{
"date": "2022-11-04",
"count": 1
},
{
"date": "2022-11-06",
"count": 1
},
{
"date": "2022-11-12",
"count": 1
},
{
"date": "2022-11-14",
"count": 1
},
{
"date": "2022-11-16",
"count": 1
},
{
"date": "2022-11-17",
"count": 4
},
{
"date": "2022-11-18",
"count": 1
},
{
"date": "2022-11-21",
"count": 1
},
{
"date": "2022-11-22",
"count": 1
},
{
"date": "2022-11-25",
"count": 2
},
{
"date": "2022-11-26",
"count": 1
},
{
"date": "2022-11-28",
"count": 1
},
{
"date": "2022-11-29",
"count": 1
},
{
"date": "2022-12-03",
"count": 1
},
{
"date": "2022-12-05",
"count": 1
},
{
"date": "2022-12-12",
"count": 1
},
{
"date": "2022-12-13",
"count": 1
},
{
"date": "2022-12-15",
"count": 1
},
{
"date": "2022-12-16",
"count": 1
},
{
"date": "2022-12-19",
"count": 1
},
{
"date": "2022-12-20",
"count": 1
},
{
"date": "2022-12-24",
"count": 1
},
{
"date": "2022-12-30",
"count": 2
},
{
"date": "2023-01-04",
"count": 1
},
{
"date": "2023-01-05",
"count": 1
},
{
"date": "2023-01-15",
"count": 1
},
{
"date": "2023-01-17",
"count": 1
},
{
"date": "2023-01-21",
"count": 2
},
{
"date": "2023-01-23",
"count": 1
},
{
"date": "2023-01-24",
"count": 1
},
{
"date": "2023-01-25",
"count": 1
},
{
"date": "2023-01-26",
"count": 1
},
{
"date": "2023-01-30",
"count": 3
},
{
"date": "2023-02-02",
"count": 1
},
{
"date": "2023-02-03",
"count": 1
},
{
"date": "2023-02-04",
"count": 2
},
{
"date": "2023-02-06",
"count": 2
},
{
"date": "2023-02-07",
"count": 3
},
{
"date": "2023-02-09",
"count": 1
},
{
"date": "2023-02-13",
"count": 2
},
{
"date": "2023-02-15",
"count": 1
},
{
"date": "2023-02-18",
"count": 1
},
{
"date": "2023-02-20",
"count": 1
},
{
"date": "2023-02-21",
"count": 1
},
{
"date": "2023-02-24",
"count": 2
},
{
"date": "2023-02-25",
"count": 1
},
{
"date": "2023-02-27",
"count": 1
},
{
"date": "2023-02-28",
"count": 1
},
{
"date": "2023-03-02",
"count": 1
},
{
"date": "2023-03-03",
"count": 1
},
{
"date": "2023-03-04",
"count": 2
},
{
"date": "2023-03-10",
"count": 1
},
{
"date": "2023-03-11",
"count": 1
},
{
"date": "2023-03-13",
"count": 2
},
{
"date": "2023-03-16",
"count": 1
},
{
"date": "2023-03-21",
"count": 1
},
{
"date": "2023-03-22",
"count": 1
},
{
"date": "2023-03-23",
"count": 2
},
{
"date": "2023-03-24",
"count": 1
},
{
"date": "2023-03-29",
"count": 1
},
{
"date": "2023-03-30",
"count": 2
},
{
"date": "2023-04-02",
"count": 1
},
{
"date": "2023-04-03",
"count": 1
},
{
"date": "2023-04-04",
"count": 1
},
{
"date": "2023-04-07",
"count": 1
},
{
"date": "2023-04-16",
"count": 1
},
{
"date": "2023-04-20",
"count": 2
},
{
"date": "2023-04-23",
"count": 1
},
{
"date": "2023-04-29",
"count": 1
},
{
"date": "2023-05-01",
"count": 1
},
{
"date": "2023-05-04",
"count": 1
},
{
"date": "2023-05-09",
"count": 1
},
{
"date": "2023-05-10",
"count": 1
},
{
"date": "2023-05-11",
"count": 2
},
{
"date": "2023-05-16",
"count": 1
},
{
"date": "2023-05-19",
"count": 1
},
{
"date": "2023-05-23",
"count": 1
},
{
"date": "2023-05-24",
"count": 1
},
{
"date": "2023-05-26",
"count": 1
},
{
"date": "2023-05-27",
"count": 2
},
{
"date": "2023-06-01",
"count": 1
},
{
"date": "2023-06-03",
"count": 1
},
{
"date": "2023-06-04",
"count": 2
},
{
"date": "2023-06-07",
"count": 2
},
{
"date": "2023-06-08",
"count": 1
},
{
"date": "2023-06-09",
"count": 2
},
{
"date": "2023-06-15",
"count": 1
},
{
"date": "2023-06-17",
"count": 1
},
{
"date": "2023-06-22",
"count": 1
},
{
"date": "2023-06-23",
"count": 1
},
{
"date": "2023-06-26",
"count": 1
},
{
"date": "2023-06-27",
"count": 1
},
{
"date": "2023-06-30",
"count": 2
},
{
"date": "2023-07-03",
"count": 1
},
{
"date": "2023-07-06",
"count": 1
},
{
"date": "2023-07-13",
"count": 1
},
{
"date": "2023-07-14",
"count": 1
},
{
"date": "2023-07-17",
"count": 1
},
{
"date": "2023-07-20",
"count": 1
},
{
"date": "2023-07-23",
"count": 2
},
{
"date": "2023-07-26",
"count": 1
},
{
"date": "2023-07-27",
"count": 1
},
{
"date": "2023-07-28",
"count": 1
},
{
"date": "2023-08-02",
"count": 1
},
{
"date": "2023-08-03",
"count": 1
},
{
"date": "2023-08-10",
"count": 2
},
{
"date": "2023-08-15",
"count": 1
},
{
"date": "2023-08-22",
"count": 1
},
{
"date": "2023-08-23",
"count": 1
},
{
"date": "2023-08-24",
"count": 1
},
{
"date": "2023-08-25",
"count": 1
},
{
"date": "2023-09-01",
"count": 1
},
{
"date": "2023-09-02",
"count": 1
},
{
"date": "2023-09-05",
"count": 2
},
{
"date": "2023-09-06",
"count": 1
},
{
"date": "2023-09-07",
"count": 1
},
{
"date": "2023-09-13",
"count": 1
},
{
"date": "2023-09-15",
"count": 1
},
{
"date": "2023-09-21",
"count": 1
},
{
"date": "2023-09-22",
"count": 2
},
{
"date": "2023-09-23",
"count": 2
},
{
"date": "2023-09-24",
"count": 1
},
{
"date": "2023-10-01",
"count": 1
},
{
"date": "2023-10-02",
"count": 1
},
{
"date": "2023-10-07",
"count": 2
},
{
"date": "2023-10-11",
"count": 1
},
{
"date": "2023-10-12",
"count": 1
},
{
"date": "2023-10-14",
"count": 1
},
{
"date": "2023-10-17",
"count": 1
},
{
"date": "2023-10-18",
"count": 1
},
{
"date": "2023-10-19",
"count": 4
},
{
"date": "2023-10-22",
"count": 1
},
{
"date": "2023-10-24",
"count": 1
},
{
"date": "2023-10-25",
"count": 1
},
{
"date": "2023-10-26",
"count": 3
},
{
"date": "2023-10-29",
"count": 2
},
{
"date": "2023-10-31",
"count": 1
},
{
"date": "2023-11-01",
"count": 1
},
{
"date": "2023-11-06",
"count": 2
},
{
"date": "2023-11-07",
"count": 1
},
{
"date": "2023-11-09",
"count": 1
},
{
"date": "2023-11-11",
"count": 1
},
{
"date": "2023-11-13",
"count": 1
},
{
"date": "2023-11-14",
"count": 1
},
{
"date": "2023-11-15",
"count": 1
},
{
"date": "2023-11-20",
"count": 1
},
{
"date": "2023-11-22",
"count": 3
},
{
"date": "2023-11-23",
"count": 1
},
{
"date": "2023-11-24",
"count": 1
},
{
"date": "2023-11-27",
"count": 2
},
{
"date": "2023-11-28",
"count": 1
},
{
"date": "2023-12-01",
"count": 1
},
{
"date": "2023-12-04",
"count": 1
},
{
"date": "2023-12-05",
"count": 1
},
{
"date": "2023-12-06",
"count": 2
},
{
"date": "2023-12-07",
"count": 1
},
{
"date": "2023-12-08",
"count": 1
},
{
"date": "2023-12-13",
"count": 1
},
{
"date": "2023-12-14",
"count": 1
},
{
"date": "2023-12-17",
"count": 1
},
{
"date": "2023-12-19",
"count": 1
},
{
"date": "2023-12-23",
"count": 1
},
{
"date": "2023-12-27",
"count": 1
},
{
"date": "2023-12-28",
"count": 1
},
{
"date": "2024-01-06",
"count": 1
},
{
"date": "2024-01-15",
"count": 1
},
{
"date": "2024-01-17",
"count": 2
},
{
"date": "2024-01-19",
"count": 1
},
{
"date": "2024-01-22",
"count": 1
},
{
"date": "2024-01-23",
"count": 1
},
{
"date": "2024-01-25",
"count": 1
},
{
"date": "2024-02-04",
"count": 1
},
{
"date": "2024-02-05",
"count": 1
},
{
"date": "2024-02-07",
"count": 2
},
{
"date": "2024-02-09",
"count": 1
},
{
"date": "2024-02-14",
"count": 1
},
{
"date": "2024-02-15",
"count": 1
},
{
"date": "2024-02-20",
"count": 1
},
{
"date": "2024-02-21",
"count": 2
},
{
"date": "2024-02-27",
"count": 1
},
{
"date": "2024-02-28",
"count": 1
},
{
"date": "2024-03-03",
"count": 1
},
{
"date": "2024-03-11",
"count": 2
},
{
"date": "2024-03-13",
"count": 1
},
{
"date": "2024-03-15",
"count": 1
},
{
"date": "2024-03-18",
"count": 2
},
{
"date": "2024-03-20",
"count": 1
},
{
"date": "2024-03-21",
"count": 2
},
{
"date": "2024-03-22",
"count": 1
},
{
"date": "2024-03-25",
"count": 1
},
{
"date": "2024-04-02",
"count": 1
},
{
"date": "2024-04-07",
"count": 2
},
{
"date": "2024-04-09",
"count": 1
},
{
"date": "2024-04-21",
"count": 1
},
{
"date": "2024-04-24",
"count": 2
},
{
"date": "2024-04-28",
"count": 1
},
{
"date": "2024-05-02",
"count": 1
},
{
"date": "2024-05-08",
"count": 1
},
{
"date": "2024-05-12",
"count": 1
},
{
"date": "2024-05-16",
"count": 1
},
{
"date": "2024-05-18",
"count": 1
},
{
"date": "2024-05-20",
"count": 1
},
{
"date": "2024-05-21",
"count": 1
},
{
"date": "2024-05-22",
"count": 1
},
{
"date": "2024-05-25",
"count": 1
},
{
"date": "2024-05-29",
"count": 1
},
{
"date": "2024-05-30",
"count": 1
},
{
"date": "2024-06-03",
"count": 1
},
{
"date": "2024-06-07",
"count": 1
},
{
"date": "2024-06-12",
"count": 1
},
{
"date": "2024-06-15",
"count": 1
},
{
"date": "2024-06-18",
"count": 2
},
{
"date": "2024-06-21",
"count": 1
},
{
"date": "2024-06-30",
"count": 2
},
{
"date": "2024-07-04",
"count": 1
},
{
"date": "2024-07-05",
"count": 2
},
{
"date": "2024-07-07",
"count": 1
},
{
"date": "2024-07-08",
"count": 1
},
{
"date": "2024-07-09",
"count": 1
},
{
"date": "2024-07-22",
"count": 1
},
{
"date": "2024-07-23",
"count": 1
},
{
"date": "2024-07-30",
"count": 1
},
{
"date": "2024-07-31",
"count": 1
},
{
"date": "2024-08-01",
"count": 1
},
{
"date": "2024-08-13",
"count": 1
},
{
"date": "2024-08-16",
"count": 1
},
{
"date": "2024-08-21",
"count": 1
},
{
"date": "2024-08-22",
"count": 1
},
{
"date": "2024-08-29",
"count": 1
},
{
"date": "2024-09-04",
"count": 1
},
{
"date": "2024-09-07",
"count": 1
},
{
"date": "2024-09-10",
"count": 2
},
{
"date": "2024-09-11",
"count": 1
},
{
"date": "2024-09-16",
"count": 1
},
{
"date": "2024-09-17",
"count": 1
},
{
"date": "2024-09-28",
"count": 1
},
{
"date": "2024-10-02",
"count": 2
},
{
"date": "2024-10-10",
"count": 2
},
{
"date": "2024-10-12",
"count": 1
},
{
"date": "2024-10-15",
"count": 1
},
{
"date": "2024-10-17",
"count": 1
},
{
"date": "2024-10-20",
"count": 1
},
{
"date": "2024-10-23",
"count": 1
},
{
"date": "2024-10-29",
"count": 1
},
{
"date": "2024-10-30",
"count": 1
},
{
"date": "2024-10-31",
"count": 1
},
{
"date": "2024-11-02",
"count": 1
},
{
"date": "2024-11-05",
"count": 1
},
{
"date": "2024-11-06",
"count": 2
},
{
"date": "2024-11-16",
"count": 1
},
{
"date": "2024-11-17",
"count": 1
},
{
"date": "2024-11-23",
"count": 1
},
{
"date": "2024-12-11",
"count": 1
},
{
"date": "2024-12-13",
"count": 1
},
{
"date": "2024-12-27",
"count": 1
},
{
"date": "2024-12-30",
"count": 1
},
{
"date": "2025-01-08",
"count": 1
},
{
"date": "2025-01-16",
"count": 1
},
{
"date": "2025-01-22",
"count": 1
},
{
"date": "2025-01-29",
"count": 2
},
{
"date": "2025-02-05",
"count": 1
},
{
"date": "2025-02-06",
"count": 1
},
{
"date": "2025-02-11",
"count": 1
},
{
"date": "2025-02-17",
"count": 1
},
{
"date": "2025-02-18",
"count": 1
},
{
"date": "2025-02-20",
"count": 1
},
{
"date": "2025-02-21",
"count": 1
},
{
"date": "2025-02-22",
"count": 1
},
{
"date": "2025-02-23",
"count": 1
},
{
"date": "2025-02-26",
"count": 1
},
{
"date": "2025-03-02",
"count": 1
},
{
"date": "2025-03-05",
"count": 1
},
{
"date": "2025-03-13",
"count": 2
},
{
"date": "2025-03-28",
"count": 1
},
{
"date": "2025-04-03",
"count": 1
},
{
"date": "2025-04-04",
"count": 1
},
{
"date": "2025-04-08",
"count": 1
},
{
"date": "2025-04-17",
"count": 1
},
{
"date": "2025-05-04",
"count": 1
},
{
"date": "2025-05-05",
"count": 1
},
{
"date": "2025-05-18",
"count": 1
},
{
"date": "2025-05-28",
"count": 2
},
{
"date": "2025-05-29",
"count": 2
},
{
"date": "2025-05-31",
"count": 1
},
{
"date": "2025-06-07",
"count": 1
},
{
"date": "2025-06-09",
"count": 1
},
{
"date": "2025-06-10",
"count": 1
},
{
"date": "2025-06-15",
"count": 1
},
{
"date": "2025-06-17",
"count": 1
},
{
"date": "2025-07-04",
"count": 1
},
{
"date": "2025-07-07",
"count": 2
},
{
"date": "2025-07-08",
"count": 1
},
{
"date": "2025-07-09",
"count": 1
},
{
"date": "2025-07-11",
"count": 2
},
{
"date": "2025-07-15",
"count": 1
},
{
"date": "2025-07-24",
"count": 1
},
{
"date": "2025-07-27",
"count": 2
},
{
"date": "2025-08-03",
"count": 1
},
{
"date": "2025-08-04",
"count": 1
},
{
"date": "2025-08-12",
"count": 1
},
{
"date": "2025-08-17",
"count": 1
},
{
"date": "2025-08-24",
"count": 1
},
{
"date": "2025-08-26",
"count": 1
},
{
"date": "2025-09-05",
"count": 1
},
{
"date": "2025-09-08",
"count": 1
},
{
"date": "2025-09-17",
"count": 2
},
{
"date": "2025-09-21",
"count": 1
},
{
"date": "2025-09-25",
"count": 1
},
{
"date": "2025-09-29",
"count": 1
},
{
"date": "2025-10-02",
"count": 1
},
{
"date": "2025-10-12",
"count": 1
},
{
"date": "2025-10-24",
"count": 1
},
{
"date": "2025-10-26",
"count": 1
},
{
"date": "2025-10-29",
"count": 1
},
{
"date": "2025-11-05",
"count": 1
},
{
"date": "2025-11-19",
"count": 1
},
{
"date": "2025-11-23",
"count": 1
},
{
"date": "2025-11-24",
"count": 1
},
{
"date": "2025-11-28",
"count": 1
},
{
"date": "2025-12-01",
"count": 1
},
{
"date": "2025-12-02",
"count": 1
},
{
"date": "2025-12-04",
"count": 1
},
{
"date": "2025-12-06",
"count": 1
},
{
"date": "2025-12-20",
"count": 1
},
{
"date": "2025-12-25",
"count": 1
},
{
"date": "2026-01-01",
"count": 1
},
{
"date": "2026-01-13",
"count": 1
},
{
"date": "2026-01-19",
"count": 1
},
{
"date": "2026-01-23",
"count": 1
},
{
"date": "2026-02-06",
"count": 1
},
{
"date": "2026-02-25",
"count": 1
},
{
"date": "2026-03-04",
"count": 2
},
{
"date": "2026-03-14",
"count": 1
},
{
"date": "2026-03-20",
"count": 1
},
{
"date": "2026-03-25",
"count": 1
},
{
"date": "2026-04-14",
"count": 1
},
{
"date": "2026-04-19",
"count": 1
},
{
"date": "2026-04-20",
"count": 1
},
{
"date": "2026-04-25",
"count": 1
},
{
"date": "2026-04-30",
"count": 1
},
{
"date": "2026-05-06",
"count": 1
},
{
"date": "2026-05-11",
"count": 1
},
{
"date": "2026-05-23",
"count": 1
},
{
"date": "2026-05-24",
"count": 1
},
{
"date": "2026-05-25",
"count": 7
},
{
"date": "2026-05-26",
"count": 1
},
{
"date": "2026-05-30",
"count": 1
},
{
"date": "2026-06-15",
"count": 1
},
{
"date": "2026-06-21",
"count": 1
},
{
"date": "2026-06-22",
"count": 1
},
{
"date": "2026-06-26",
"count": 1
},
{
"date": "2026-07-02",
"count": 1
},
{
"date": "2026-07-06",
"count": 1
}
],
"complete": false,
"collected": 1000,
"total_stars": 8231
},
"open_issues_and_prs": 37
},
"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": 29222,
"source_files_sampled": 99,
"oversized_source_files": 0,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"dependencies": {
"manifests": [
"Gemfile"
],
"advisories": {
"error": null,
"scope": "repository_graph",
"source": "osv",
"findings": [
{
"name": "rack-session",
"direct": false,
"version": "2.1.1",
"severity": "critical",
"ecosystem": "rubygems",
"cvss_score": 9.1,
"advisory_ids": [
"GHSA-33qg-7wpp-89cq"
],
"fixed_version": "2.1.2",
"advisory_count": 1,
"oldest_advisory_days": 105
},
{
"name": "concurrent-ruby",
"direct": false,
"version": "1.3.6",
"severity": "high",
"ecosystem": "rubygems",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-6wx8-w4f5-wwcr",
"GHSA-h8w8-99g7-qmvj",
"GHSA-wv3x-4vxv-whpp"
],
"fixed_version": "1.3.7",
"advisory_count": 3,
"oldest_advisory_days": 32
},
{
"name": "erb",
"direct": false,
"version": "6.0.2",
"severity": "high",
"ecosystem": "rubygems",
"cvss_score": 8.1,
"advisory_ids": [
"GHSA-q339-8rmv-2mhv"
],
"fixed_version": "6.0.4",
"advisory_count": 1,
"oldest_advisory_days": 88
},
{
"name": "nokogiri",
"direct": false,
"version": "1.19.2",
"severity": "high",
"ecosystem": "rubygems",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-5prr-v3j2-97mh",
"GHSA-5v8h-3h3q-446p",
"GHSA-8678-w3jw-xfc2",
"GHSA-9cv2-cfxc-v4v2",
"GHSA-c4rq-3m3g-8wgx",
"GHSA-p67v-3w7g-wjg7",
"GHSA-phwj-rprq-35pp",
"GHSA-v2fc-qm4h-8hqv",
"GHSA-wfpw-mmfh-qq69",
"GHSA-wjv4-x9w8-wm3h"
],
"fixed_version": "1.19.4",
"advisory_count": 10,
"oldest_advisory_days": 76
},
{
"name": "rack",
"direct": false,
"version": "3.2.5",
"severity": "high",
"ecosystem": "rubygems",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-7mqq-6cf9-v2qp",
"GHSA-8vqr-qjwx-82mw",
"GHSA-g2pf-xv49-m2h5",
"GHSA-h2jq-g4cq-5ppq",
"GHSA-q2ww-5357-x388",
"GHSA-q4qf-9j86-f5mh",
"GHSA-qfgr-crr9-7r49",
"GHSA-qv7j-4883-hwh7",
"GHSA-rx22-g9mx-qrhv",
"GHSA-v569-hp3g-36wr"
],
"fixed_version": "3.2.6",
"advisory_count": 13,
"oldest_advisory_days": 110
},
{
"name": "loofah",
"direct": false,
"version": "2.25.1",
"severity": "moderate",
"ecosystem": "rubygems",
"cvss_score": 4.7,
"advisory_ids": [
"GHSA-5qhf-9phg-95m2",
"GHSA-8whx-365g-h9vv",
"GHSA-9wjq-cp2p-hrgf"
],
"fixed_version": "2.25.2",
"advisory_count": 3,
"oldest_advisory_days": 0
},
{
"name": "rails-html-sanitizer",
"direct": false,
"version": "1.7.0",
"severity": "low",
"ecosystem": "rubygems",
"cvss_score": 0,
"advisory_ids": [
"GHSA-cj75-f6xr-r4g7"
],
"fixed_version": "1.7.1",
"advisory_count": 1,
"oldest_advisory_days": 0
}
],
"collected": true,
"malicious": [],
"truncated": false,
"by_severity": {
"low": 1,
"high": 4,
"critical": 1,
"moderate": 1
},
"advisory_count": 32,
"affected_count": 7,
"assessed_count": 49,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 6,
"direct_affected_count": 0
},
"ecosystems": [
"rubygems"
],
"dependencies": [
{
"name": "activemodel",
"manifest": "Gemfile",
"ecosystem": "rubygems",
"version_constraint": "~> 8.1.0"
},
{
"name": "actionpack",
"manifest": "Gemfile",
"ecosystem": "rubygems",
"version_constraint": "~> 8.1.0"
},
{
"name": "railties",
"manifest": "Gemfile",
"ecosystem": "rubygems",
"version_constraint": "~> 8.1.0"
}
],
"all_dependencies": {
"error": null,
"source": "github-sbom",
"packages": [
{
"name": "actionpack",
"direct": true,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "actionpack",
"direct": true,
"version": "8.1.3",
"ecosystem": "rubygems"
},
{
"name": "activemodel",
"direct": true,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "activemodel",
"direct": true,
"version": "8.1.3",
"ecosystem": "rubygems"
},
{
"name": "railties",
"direct": true,
"version": "8.1.3",
"ecosystem": "rubygems"
},
{
"name": "actionview",
"direct": false,
"version": "8.1.3",
"ecosystem": "rubygems"
},
{
"name": "activesupport",
"direct": false,
"version": "8.1.3",
"ecosystem": "rubygems"
},
{
"name": "base64",
"direct": false,
"version": "0.3.0",
"ecosystem": "rubygems"
},
{
"name": "bigdecimal",
"direct": false,
"version": "4.0.1",
"ecosystem": "rubygems"
},
{
"name": "builder",
"direct": false,
"version": "3.3.0",
"ecosystem": "rubygems"
},
{
"name": "concurrent-ruby",
"direct": false,
"version": "1.3.6",
"ecosystem": "rubygems"
},
{
"name": "connection_pool",
"direct": false,
"version": "3.0.2",
"ecosystem": "rubygems"
},
{
"name": "countries",
"direct": false,
"version": "8.1.0",
"ecosystem": "rubygems"
},
{
"name": "country_select",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "country_select",
"direct": false,
"version": "11.0.0",
"ecosystem": "rubygems"
},
{
"name": "crass",
"direct": false,
"version": "1.0.6",
"ecosystem": "rubygems"
},
{
"name": "date",
"direct": false,
"version": "3.5.1",
"ecosystem": "rubygems"
},
{
"name": "drb",
"direct": false,
"version": "2.2.3",
"ecosystem": "rubygems"
},
{
"name": "erb",
"direct": false,
"version": "6.0.2",
"ecosystem": "rubygems"
},
{
"name": "erubi",
"direct": false,
"version": "1.13.1",
"ecosystem": "rubygems"
},
{
"name": "i18n",
"direct": false,
"version": "1.14.8",
"ecosystem": "rubygems"
},
{
"name": "io-console",
"direct": false,
"version": "0.8.2",
"ecosystem": "rubygems"
},
{
"name": "irb",
"direct": false,
"version": "1.17.0",
"ecosystem": "rubygems"
},
{
"name": "json",
"direct": false,
"version": "2.19.3",
"ecosystem": "rubygems"
},
{
"name": "logger",
"direct": false,
"version": "1.7.0",
"ecosystem": "rubygems"
},
{
"name": "loofah",
"direct": false,
"version": "2.25.1",
"ecosystem": "rubygems"
},
{
"name": "mini_portile2",
"direct": false,
"version": "2.8.9",
"ecosystem": "rubygems"
},
{
"name": "minitest",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "minitest",
"direct": false,
"version": "5.27.0",
"ecosystem": "rubygems"
},
{
"name": "nokogiri",
"direct": false,
"version": "1.19.2",
"ecosystem": "rubygems"
},
{
"name": "pp",
"direct": false,
"version": "0.6.3",
"ecosystem": "rubygems"
},
{
"name": "prettyprint",
"direct": false,
"version": "0.2.0",
"ecosystem": "rubygems"
},
{
"name": "prism",
"direct": false,
"version": "1.9.0",
"ecosystem": "rubygems"
},
{
"name": "psych",
"direct": false,
"version": "5.3.1",
"ecosystem": "rubygems"
},
{
"name": "racc",
"direct": false,
"version": "1.8.1",
"ecosystem": "rubygems"
},
{
"name": "rack",
"direct": false,
"version": "3.2.5",
"ecosystem": "rubygems"
},
{
"name": "rack-session",
"direct": false,
"version": "2.1.1",
"ecosystem": "rubygems"
},
{
"name": "rack-test",
"direct": false,
"version": "2.2.0",
"ecosystem": "rubygems"
},
{
"name": "rackup",
"direct": false,
"version": "2.3.1",
"ecosystem": "rubygems"
},
{
"name": "rails-dom-testing",
"direct": false,
"version": "2.3.0",
"ecosystem": "rubygems"
},
{
"name": "rails-html-sanitizer",
"direct": false,
"version": "1.7.0",
"ecosystem": "rubygems"
},
{
"name": "rake",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "rake",
"direct": false,
"version": "13.3.1",
"ecosystem": "rubygems"
},
{
"name": "rdoc",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "rdoc",
"direct": false,
"version": "7.2.0",
"ecosystem": "rubygems"
},
{
"name": "reline",
"direct": false,
"version": "0.6.3",
"ecosystem": "rubygems"
},
{
"name": "securerandom",
"direct": false,
"version": "0.4.1",
"ecosystem": "rubygems"
},
{
"name": "stringio",
"direct": false,
"version": "3.2.0",
"ecosystem": "rubygems"
},
{
"name": "thor",
"direct": false,
"version": "1.5.0",
"ecosystem": "rubygems"
},
{
"name": "tsort",
"direct": false,
"version": "0.2.0",
"ecosystem": "rubygems"
},
{
"name": "tzinfo",
"direct": false,
"version": "2.0.6",
"ecosystem": "rubygems"
},
{
"name": "unaccent",
"direct": false,
"version": "0.4.0",
"ecosystem": "rubygems"
},
{
"name": "uri",
"direct": false,
"version": "1.1.1",
"ecosystem": "rubygems"
},
{
"name": "useragent",
"direct": false,
"version": "0.16.11",
"ecosystem": "rubygems"
},
{
"name": "zeitwerk",
"direct": false,
"version": "2.7.5",
"ecosystem": "rubygems"
}
],
"collected": true,
"truncated": false,
"total_count": 55,
"direct_count": 5,
"indirect_count": 50
}
},
"maintainership": {
"issues": {
"open_prs": 13,
"merged_prs": 359,
"open_issues": 24,
"closed_ratio": 0.981,
"closed_issues": 1214,
"closed_unmerged_prs": 256
},
"bus_factor": 2,
"bot_contributors": 0,
"top_contributors": [
{
"type": "User",
"login": "carlosantoniodasilva",
"commits": 497,
"avatar_url": "https://avatars.githubusercontent.com/u/26328?v=4"
},
{
"type": "User",
"login": "rafaelfranca",
"commits": 446,
"avatar_url": "https://avatars.githubusercontent.com/u/47848?v=4"
},
{
"type": "User",
"login": "josevalim",
"commits": 227,
"avatar_url": "https://avatars.githubusercontent.com/u/9582?v=4"
},
{
"type": "User",
"login": "nashby",
"commits": 136,
"avatar_url": "https://avatars.githubusercontent.com/u/200500?v=4"
},
{
"type": "User",
"login": "feliperenan",
"commits": 104,
"avatar_url": "https://avatars.githubusercontent.com/u/27698968?v=4"
},
{
"type": "User",
"login": "lucasmazza",
"commits": 65,
"avatar_url": "https://avatars.githubusercontent.com/u/80978?v=4"
},
{
"type": "User",
"login": "laurocaetano",
"commits": 21,
"avatar_url": "https://avatars.githubusercontent.com/u/611891?v=4"
},
{
"type": "User",
"login": "tegon",
"commits": 18,
"avatar_url": "https://avatars.githubusercontent.com/u/3727827?v=4"
},
{
"type": "User",
"login": "ulissesalmeida",
"commits": 15,
"avatar_url": "https://avatars.githubusercontent.com/u/867308?v=4"
},
{
"type": "User",
"login": "m5o",
"commits": 12,
"avatar_url": "https://avatars.githubusercontent.com/u/26371?v=4"
}
],
"contributors_sampled": 100,
"top_contributor_share": 0.275
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"test.yml"
],
"has_docs_dir": false,
"linter_configs": [],
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"Gemfile.lock"
],
"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": 8,
"reason": "4 out of 5 merged PRs checked by a CI test -- score normalized to 8",
"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": 1,
"reason": "Found 3/25 approved changesets -- score normalized to 1",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 10,
"reason": "project has 47 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": 10,
"reason": "license file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 0,
"reason": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
"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": 1,
"reason": "SAST tool is not run on all commits -- score normalized to 1",
"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": 10,
"reason": "GitHub workflow tokens follow principle of least privilege",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 0,
"reason": "32 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "18f38aad0bdeca2ba1815043b94d96fdbbe6a325",
"ran_at": "2026-07-22T00:56:59Z",
"aggregate_score": 3.6,
"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-07-18T20:15:08Z",
"oldest_open_prs": [
{
"number": 1751,
"created_at": "2021-11-26T16:26:28Z",
"last_comment_at": "2023-10-27T10:13:34Z",
"last_comment_author": "ldonnet"
},
{
"number": 1759,
"created_at": "2022-02-02T21:20:29Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 1762,
"created_at": "2022-02-20T16:13:44Z",
"last_comment_at": "2024-07-06T04:06:14Z",
"last_comment_author": "JuanVqz"
},
{
"number": 1794,
"created_at": "2022-11-18T07:11:41Z",
"last_comment_at": "2022-11-18T07:46:48Z",
"last_comment_author": "martinodonnell"
},
{
"number": 1796,
"created_at": "2022-11-23T19:34:30Z",
"last_comment_at": "2024-06-17T18:40:56Z",
"last_comment_author": "pas256"
},
{
"number": 1804,
"created_at": "2023-01-17T18:39:01Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 1813,
"created_at": "2023-03-09T11:18:59Z",
"last_comment_at": "2023-03-09T11:37:40Z",
"last_comment_author": "Nerian"
},
{
"number": 1830,
"created_at": "2024-02-14T20:27:28Z",
"last_comment_at": "2024-12-04T18:42:45Z",
"last_comment_author": "csculley"
},
{
"number": 1852,
"created_at": "2024-11-11T22:24:14Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 1855,
"created_at": "2025-05-14T13:47:11Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 1856,
"created_at": "2025-11-07T13:34:15Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 1861,
"created_at": "2026-02-07T13:38:38Z",
"last_comment_at": "2026-04-19T12:15:49Z",
"last_comment_author": "fa11enangel"
},
{
"number": 1871,
"created_at": "2026-06-28T20:47:58Z",
"last_comment_at": null,
"last_comment_author": null
}
],
"last_merged_pr_at": "2026-04-01T23:20:59Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": [
{
"number": 1180,
"created_at": "2014-12-19T09:19:05Z",
"last_comment_at": "2014-12-20T15:58:29Z",
"last_comment_author": "rafaelfranca"
},
{
"number": 1358,
"created_at": "2016-02-13T14:28:37Z",
"last_comment_at": "2017-09-29T18:35:26Z",
"last_comment_author": "bcardiff"
},
{
"number": 1464,
"created_at": "2017-02-20T20:38:44Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 1632,
"created_at": "2019-01-25T09:17:01Z",
"last_comment_at": "2023-01-12T21:03:54Z",
"last_comment_author": "ldonnet"
},
{
"number": 1659,
"created_at": "2019-05-09T13:59:04Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 1668,
"created_at": "2019-08-21T14:37:19Z",
"last_comment_at": "2023-12-11T22:14:39Z",
"last_comment_author": "rhulse"
},
{
"number": 1716,
"created_at": "2020-10-20T15:11:41Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 1727,
"created_at": "2021-02-16T15:40:33Z",
"last_comment_at": "2021-05-23T01:14:21Z",
"last_comment_author": "yordis"
},
{
"number": 1739,
"created_at": "2021-05-28T17:25:54Z",
"last_comment_at": "2024-02-14T20:38:05Z",
"last_comment_author": "jamezilla"
},
{
"number": 1744,
"created_at": "2021-07-19T10:52:36Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 1746,
"created_at": "2021-08-19T11:52:32Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 1757,
"created_at": "2022-01-14T17:14:38Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 1788,
"created_at": "2022-08-17T12:49:27Z",
"last_comment_at": "2022-11-18T07:04:03Z",
"last_comment_author": "martinodonnell"
},
{
"number": 1795,
"created_at": "2022-11-21T11:48:55Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 1798,
"created_at": "2022-11-30T15:07:09Z",
"last_comment_at": "2023-12-02T15:29:08Z",
"last_comment_author": "borama"
},
{
"number": 1800,
"created_at": "2022-12-07T13:00:43Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 1807,
"created_at": "2023-01-30T11:57:55Z",
"last_comment_at": "2025-05-28T18:47:33Z",
"last_comment_author": "wrkrb33"
},
{
"number": 1819,
"created_at": "2023-08-20T17:42:12Z",
"last_comment_at": "2023-10-12T12:59:37Z",
"last_comment_author": "attenzione"
},
{
"number": 1831,
"created_at": "2024-02-23T07:40:00Z",
"last_comment_at": "2024-06-17T18:18:30Z",
"last_comment_author": "pas256"
},
{
"number": 1840,
"created_at": "2024-04-21T15:55:05Z",
"last_comment_at": "2026-04-19T23:39:38Z",
"last_comment_author": "55728"
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/heartcombo/simple_form",
"host": "github.com",
"name": "simple_form",
"owner": "heartcombo"
},
"metrics": {
"overall": {
"key": "overall",
"band": "moderate",
"name": "Overall health",
"note": null,
"notes": [],
"value": 63,
"inputs": {
"security": 49,
"vitality": 43,
"community": 91,
"governance": 71,
"engineering": 62
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "at_risk",
"name": "Vitality",
"value": 43,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "at_risk",
"name": "Development activity",
"note": null,
"notes": [],
"value": 31,
"inputs": {
"commits_last_year": 30,
"human_commit_share": 1,
"days_since_last_push": 111,
"active_weeks_last_year": 11
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 111 days ago",
"points": 9.9,
"status": "partial",
"details": [
{
"code": "push_recency",
"params": {
"days": 111
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "11/52 weeks with commits",
"points": 7.6,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 11
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "30 commits in the last year",
"points": 13.4,
"status": "partial",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 30
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "moderate",
"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": 62,
"inputs": {
"releases_count": 14,
"latest_release_tag": "v5.4.1",
"releases_from_tags": false,
"days_since_latest_release": 197,
"mean_days_between_releases": 309.8
},
"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 197 days ago",
"points": 16.2,
"status": "partial",
"details": [
{
"code": "release_recency",
"params": {
"days": 197
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~309.8 days",
"points": 12.6,
"status": "partial",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 309.8
}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 10
}
]
},
{
"key": "abandonment",
"band": "excellent",
"name": "Abandonment",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"cap": null,
"state": "maintained",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": null,
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": 111,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "last human commit 111 days ago",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_maintained",
"params": {
"days": 111
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "excellent",
"name": "Community & Adoption",
"value": 91,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "excellent",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 97,
"inputs": {
"forks": 1298,
"stars": 8231,
"watchers": 150,
"growth_state": "organic",
"growth_factor_pct": 100
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "8,231 stars",
"points": 60,
"status": "met",
"details": [
{
"code": "stars",
"params": {
"count": 8231
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "1,298 forks",
"points": 25,
"status": "met",
"details": [
{
"code": "forks",
"params": {
"count": 1298
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "150 watchers",
"points": 12.1,
"status": "partial",
"details": [
{
"code": "watchers",
"params": {
"count": 150
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "good",
"name": "Community health",
"note": null,
"notes": [],
"value": 78,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": true,
"has_issue_template": true,
"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": "recognized license (MIT)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "MIT"
}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 18,
"status": "met",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 7.2,
"status": "met",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 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": 100,
"inputs": {
"packages": [
"simple_form"
],
"dependents": null,
"ecosystems": "rubygems",
"total_downloads": 95931058,
"monthly_downloads": null
},
"components": [
{
"key": "total_downloads",
"name": "Total downloads",
"detail": "95,931,058 downloads all-time across rubygems",
"points": 80,
"status": "met",
"details": [
{
"code": "downloads_total",
"params": {
"count": 95931058,
"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": 65,
"inputs": {
"bus_factor": 2,
"contributors_sampled": 100,
"top_contributor_share": 0.275
},
"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 28% of commits",
"points": 16.3,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 28
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "100 contributors",
"points": 13.5,
"status": "met",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 100
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 47 contributing companies or organizations",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "good",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 70,
"inputs": {
"merged_prs": 359,
"open_issues": 24,
"closed_issues": 1214,
"issue_closed_ratio": 0.981,
"closed_unmerged_prs": 256
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "98% of issues closed",
"points": 45.9,
"status": "partial",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 98
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "359/615 decided PRs merged",
"points": 22.3,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 359,
"decided": 615
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 3/25 approved changesets -- score normalized to 1",
"points": 1.5,
"status": "partial",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "moderate",
"name": "Ownership & stewardship",
"note": null,
"notes": [],
"value": 65,
"inputs": {
"followers": 154,
"owner_type": "Organization",
"is_verified": null,
"owner_login": "heartcombo",
"public_repos": 8,
"account_age_days": 2388
},
"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": "154 followers of heartcombo",
"points": 15.7,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 154,
"login": "heartcombo"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "8 public repos, account ~6 yr old",
"points": 18.9,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 8
}
},
{
"code": "account_age_years",
"params": {
"years": 6
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 91,
"inputs": {
"packages": [
"simple_form"
],
"ecosystems": "rubygems",
"any_deprecated": false,
"min_days_since_publish": 197
},
"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 197 days ago",
"points": 26,
"status": "partial",
"details": [
{
"code": "publish_recency",
"params": {
"days": 197
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "63 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 63
}
}
],
"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": 62,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "moderate",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 64,
"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": "4 out of 5 merged PRs checked by a CI test -- score normalized to 8",
"points": 16,
"status": "partial",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "moderate",
"name": "Documentation",
"note": null,
"notes": [],
"value": 60,
"inputs": {
"topics": [
"form-builder",
"rails-helper",
"ruby",
"rails",
"dsl"
],
"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": "5 topics",
"points": 10,
"status": "met",
"details": [
{
"code": "topics_count",
"params": {
"count": 5
}
}
],
"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": 49,
"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.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"packaging",
"signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 36,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 16,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 2,
"scorecard_aggregate": 3.6
},
"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 5 merged PRs checked by a CI test -- score normalized to 8",
"points": 2,
"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 3/25 approved changesets -- score normalized to 1",
"points": 0.8,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 47 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.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
"points": 0,
"status": "missed",
"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 1",
"points": 0.5,
"status": "partial",
"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": "GitHub workflow tokens follow principle of least privilege",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "32 existing vulnerabilities detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "dependency_advisories",
"band": "excellent",
"name": "Dependency advisories",
"note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories, No advisories left outstanding. Remaining weights renormalized. Matched 49 resolved dependencies against OSV; 6 could not be assessed (no resolved version, an unsupported ecosystem, or beyond the reported package list). This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"indirect_dependencies_free_of_known_advisories",
"no_advisories_left_outstanding"
]
}
},
{
"code": "weights_renormalized",
"params": {}
},
{
"code": "advisories_scope_repository",
"params": {
"assessed": 49
}
},
{
"code": "advisories_unassessed",
"params": {
"count": 6
}
},
{
"code": "advisories_repo_graph_caveat",
"params": {}
},
{
"code": "advisories_reachability",
"params": {}
}
],
"value": 100,
"inputs": {
"source": "osv",
"advisories": 32,
"affected_packages": 7,
"assessed_packages": 49,
"unassessed_packages": 6,
"affected_by_severity": "critical 1, high 4, moderate 1, low 1",
"direct_affected_packages": 0
},
"components": [
{
"key": "direct_dependencies_free_of_known_advisories",
"name": "Direct dependencies free of known advisories",
"detail": "no direct dependency carries a known advisory",
"points": 35,
"status": "met",
"details": [
{
"code": "no_direct_advisories",
"params": {}
}
],
"max_points": 35
},
{
"key": "indirect_dependencies_free_of_known_advisories",
"name": "Indirect dependencies free of known advisories",
"detail": "transitive set not separable from development and test dependencies in this scope",
"points": 0,
"status": "excluded",
"details": [
{
"code": "advisories_scope_not_separable",
"params": {}
}
],
"max_points": 25
},
{
"key": "no_advisories_left_outstanding",
"name": "No advisories left outstanding",
"detail": "no advisory carries a publication date",
"points": 0,
"status": "excluded",
"details": [
{
"code": "advisories_no_publication_date",
"params": {}
}
],
"max_points": 40
}
]
},
{
"key": "malicious_dependencies",
"band": "excellent",
"name": "Malicious dependencies",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"source": "osv",
"meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
"packages": [],
"red_flag": false,
"assessed_packages": 49,
"malicious_packages": 0,
"direct_malicious_packages": 0,
"withdrawn_malicious_packages": 0,
"installable_malicious_packages": 0
},
"components": [
{
"key": "no_dependency_reported_as_a_malicious_package",
"name": "No dependency reported as a malicious package",
"detail": "no dependency is reported as a malicious package",
"points": 100,
"status": "met",
"details": [
{
"code": "no_malicious_dependencies",
"params": {}
}
],
"max_points": 100
}
]
},
{
"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": 16
},
"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": "at_risk",
"name": "AI Readiness",
"value": 34,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "critical",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 27,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.5,
"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": "50 of 100 human commits state their intent (structured subject or explanatory body)",
"points": 26.7,
"status": "partial",
"details": [
{
"code": "legible_history",
"params": {
"legible": 50,
"sampled": 100
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "at_risk",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 32,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"Gemfile.lock"
],
"has_dockerfile": false,
"typed_language": false,
"bootstrap_files": [],
"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": 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": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": "lockfile",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "lockfile"
}
}
],
"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": "moderate",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 55,
"inputs": {
"primary_language": "Ruby",
"largest_source_bytes": 29222,
"source_files_sampled": 99,
"oversized_source_files": 0
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "Ruby without a type-check config",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_typecheck_config_language",
"params": {
"language": "Ruby"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "0/99 source files over 60KB",
"points": 55,
"status": "met",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 99,
"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-22T00:57:20.497622Z",
"schema_version": "0.26.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/h/heartcombo/simple_form.svg",
"full_name": "heartcombo/simple_form",
"license_state": "standard",
"license_spdx": "MIT"
}Bewertungen sind Signale, keine Garantien. Sie spiegeln öffentlich sichtbare Praxis auf GitHub wider — kein Code-Audit und keine Sicherheitsgarantie.
Fehlende Daten werden ausgeschlossen und die Gewichte neu normiert, nie als null bewertet. Die Methodik ist versioniert und offen: Metriken v1.13.0, Schema v0.26.0 — vollständige Methodik · Metriken-Wiki.
Wie ein einzelnes Ergebnis im Gesamtregister steht: aggregierte Statistiken — RubyGems.