原始 JSON 报告 机器可读
{
"data": {
"repo": {
"topics": [
"soap",
"soap-client",
"ruby"
],
"is_fork": false,
"size_kb": 3271,
"has_wiki": false,
"homepage": "https://savonrb.com",
"languages": {
"Ruby": 302937
},
"pushed_at": "2026-07-06T12:25:37Z",
"created_at": "2009-07-02T13:19:34Z",
"owner_type": "Organization",
"updated_at": "2026-07-06T16:14:05Z",
"description": "Heavy metal SOAP client",
"is_archived": false,
"is_disabled": false,
"license_spdx": "MIT",
"default_branch": "main",
"license_spdx_raw": "MIT",
"primary_language": "Ruby",
"significant_languages": [
"Ruby"
]
},
"owner": {
"blog": "https://www.savonrb.com/",
"name": null,
"type": "Organization",
"login": "savonrb",
"company": null,
"location": null,
"followers": 3,
"avatar_url": "https://avatars.githubusercontent.com/u/2353495?v=4",
"created_at": "2012-09-15T17:55:38Z",
"is_verified": null,
"public_repos": 12,
"account_age_days": 5057
},
"license": {
"state": "standard",
"spdx_id": "MIT",
"raw_spdx": "MIT",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "v2.17.4",
"kind": "patch",
"published_at": "2026-07-03T10:01:07Z"
},
{
"tag": "v2.17.3",
"kind": "patch",
"published_at": "2026-06-23T17:33:00Z"
},
{
"tag": "v2.17.2",
"kind": "patch",
"published_at": "2026-06-10T17:28:24Z"
},
{
"tag": "v2.17.1",
"kind": "patch",
"published_at": "2026-05-21T18:16:43Z"
},
{
"tag": "v2.17.0",
"kind": "minor",
"published_at": "2026-05-19T12:16:02Z"
},
{
"tag": "v2.16.0",
"kind": "minor",
"published_at": "2026-05-18T19:26:14Z"
},
{
"tag": "v3.0.0.rc2",
"kind": "other",
"published_at": "2025-08-12T22:56:40Z"
},
{
"tag": "v3.0.0.rc1",
"kind": "other",
"published_at": "2024-07-15T16:46:25Z"
},
{
"tag": "v2.15.1",
"kind": "patch",
"published_at": "2024-07-08T19:02:14Z"
},
{
"tag": "v2.15.0",
"kind": "minor",
"published_at": "2024-02-13T21:25:33Z"
},
{
"tag": "v2.14.0",
"kind": "minor",
"published_at": "2022-12-16T20:01:33Z"
},
{
"tag": "v2.13.1",
"kind": "patch",
"published_at": "2022-09-04T14:52:06Z"
},
{
"tag": "v2.13.0",
"kind": "minor",
"published_at": "2022-08-04T01:38:38Z"
},
{
"tag": "v2.12.1",
"kind": "patch",
"published_at": "2020-07-05T23:53:39Z"
},
{
"tag": "v2.12.0",
"kind": "minor",
"published_at": "2018-01-17T00:39:39Z"
},
{
"tag": "v2.11.2",
"kind": "patch",
"published_at": "2017-08-03T21:04:20Z"
}
],
"recent_commits": [
{
"oid": "675ce8b3cdf9a4f26db28794971676c395baffda",
"body": null,
"is_bot": false,
"headline": "Specialize template a bit",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-07-06T12:25:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2650364c9d3eb8caa0595ea28bc221d470680aab",
"body": "Scoped to affected rubies only.\nA fix currently only exists in Ruby 4.0.3.",
"is_bot": false,
"headline": "Ignore CVE-2026-41316 in the runtime audit",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-07-06T11:14:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f2c239dd4620a44d112d146fbe1f0b3e299d6984",
"body": null,
"is_bot": false,
"headline": "ruby_audit does not support Ruby 3.0",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-07-06T10:58:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "de5302106afbb6d06370679ee3a22bff7884b8f6",
"body": "Add a seven day cooldown to dependabot so new action\nreleases settle before we adopt them.\nMove ruby_audit into the Gemfile instead of installing\nit ad-hoc in the workflow.",
"is_bot": false,
"headline": "Fix zizmor findings",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-07-06T09:13:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1cb9ad4311e7ed1f59dbdb0b48ad677016a0a875",
"body": null,
"is_bot": false,
"headline": "Add zizmor to audit workflow files",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-07-06T09:07:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a5af095b9abc86a2e84ad7b3d35cb773aafc0753",
"body": null,
"is_bot": false,
"headline": "Add a security policy file",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-07-06T08:56:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3a42135b1bc9f3c3a359beb95153bef3543c6c15",
"body": null,
"is_bot": false,
"headline": "Remove stale workflow",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-07-06T08:55:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9e636d89e06530d83f8d811dd4bc9241b6c565a0",
"body": null,
"is_bot": false,
"headline": "Change ci badge name",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-07-05T07:11:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "70224062a9620bb32927a82146a75a015d7f2cf6",
"body": null,
"is_bot": false,
"headline": "Use shields for better cache invalidation",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-07-05T07:10:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3f4becb636ed13264d70b5fab709a25542c6c927",
"body": null,
"is_bot": false,
"headline": "Fix stale coverage reporting",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-07-05T07:05:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d8863110c1a32081a610911fb1d6bc61894073c1",
"body": "Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.314.0 to 1.316.0.\n- [Release notes](https://github.com/ruby/setup-ruby/releases)\n- [Changelog](https://github.com/ruby/setup-ruby/blob/master/release.rb)\n- [Commits](https://github.com/ruby/setup-ruby/compare/9eb537ca036ebaed86729dcb\n[…]\nirect:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "Bump ruby/setup-ruby from 1.314.0 to 1.316.0 (#1059)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-03T12:06:17Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "69ab4149642bb8a5c6e76f75d1fdc92d0903d1f0",
"body": null,
"is_bot": false,
"headline": "Prepare 2.17.4",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-07-03T09:58:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e329bf23180e3a1c4a53eaaa6b2b1c8c03a9fa32",
"body": "Builder and Header both carried WS-Addressing knowledge.\nBuilder owned the namespace constant and the header attributes,\nHeader emitted the elements. Savon::Addressing now owns all of it.\n\n`Builder::WSA_NAMESPACE` stays as a deprecated alias, to be\nremoved in 3.0. The emitted XML is unchanged.",
"is_bot": false,
"headline": "Extract WS-Addressing emission into Savon::Addressing",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-07-03T09:55:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "172a1390ee1460be8576f287a84e8fe5a36ddf06",
"body": "EffectiveOptions now carries the full request context (operation name,\nWSDL,\nglobals, locals) and resolves `:soap_action` and `:endpoint` next to the\ndual-scope options.\n\nOperation delegates to it, and Builder and Header read the values from\ntheir\nown EffectiveOptions instead of having them threaded\n[…]\nost override used to build the\nURL\nby mutating the WSDL's parsed endpoint in place, permanently rewriting\n`client.wsdl.endpoint`. Resolution now works on a copy and leaves the\nWSDL document untouched.",
"is_bot": false,
"headline": "Move soap_action/endpoint resolution into EffectiveOptions",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-07-03T09:55:41Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "d1dc92b379a5d5032cd859154050c2566754f898",
"body": "`Savon::EffectiveOptions` is the single place that resolves options\nsettable in both the global and the local scope. Builder and Header\nnow read resolved values from it instead of each deriving the\nprecedence on their own.\n\nThis unifies :wsse_signature resolution and fixes a crash. The header\nkept a\n[…]\nnd raised `NoMethodError` when asking\nit for a signature document. A falsy local value now falls back to\nthe global signature in both the builder and the header, so they\nalways use the same signature.",
"is_bot": false,
"headline": "Add EffectiveOptions to resolve dual-scope options",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-07-03T09:55:41Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "d45af86041f654645391a99c11b9bf65dc8727ca",
"body": null,
"is_bot": false,
"headline": "Restore WS-Addressing headers",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-07-03T09:55:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6679767ea938dd8abb7982c0053807f6bfc6999d",
"body": "Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.313.0 to 1.314.0.\n- [Release notes](https://github.com/ruby/setup-ruby/releases)\n- [Changelog](https://github.com/ruby/setup-ruby/blob/master/release.rb)\n- [Commits](https://github.com/ruby/setup-ruby/compare/89f90524b88a01fe6e0b7322\n[…]\nirect:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "Bump ruby/setup-ruby from 1.313.0 to 1.314.0 (#1056)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-26T12:08:28Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a1d7d9c32a58b125883f2af61004b4b53163ffa4",
"body": null,
"is_bot": false,
"headline": "Update rubocop todos",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-06-23T17:36:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c8b1b9cd02b07e51294047badabd0e3a9442d56d",
"body": null,
"is_bot": false,
"headline": "Fix 2.17.3 link in changelog",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-06-23T17:35:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a03ba04c63676e00f8687dc1018d07c1c41fb1ce",
"body": null,
"is_bot": false,
"headline": "Prepare 2.17.3",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-06-23T17:29:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "088f62f576a2a5120a2187bf00b697fa87f301a1",
"body": null,
"is_bot": false,
"headline": "Use one basic test server for integration specs",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-06-23T17:22:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dce4c75df0859a79e57c0533cf227f9ef39cd936",
"body": null,
"is_bot": false,
"headline": "Add binstubs so people can skip bundle exec",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-06-23T17:22:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "21931522e58e039a2b86f9bd196157f482bd6b86",
"body": "`Savon::HTTPError` does not properly handle `Faraday::Response` objects\nas reported in #1050. This change normalizes adapter-specific response\nobjects into `Savon::Transport::Response` objects before passing them\nto `Savon::HTTPError`.",
"is_bot": false,
"headline": "Normalize responses for Savon::HTTPError",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-06-23T17:22:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0710f23b431672b643ac69c5f233b1c198c4ec58",
"body": "When a WSDL document cannot be fetched via the new Faraday transport,\nboth `Savon::HTTPError#to_s` and `Savon::HTTPError#to_hash` raise a\n`NoMethodError` because they call `Faraday::Response#code` instead of\n`Faraday::Response#status`.\n\nNoMethodError:\nundefined method 'code' for an instance of Farad\n[…]\n\n # ./lib/savon/http_error.rb:16:in 'Savon::HTTPError#to_s'\n\nNoMethodError:\nundefined method 'code' for an instance of Faraday::Response\n # ./lib/savon/http_error.rb:22:in 'Savon::HTTPError#to_hash'",
"is_bot": false,
"headline": "Add specs to verify #1050",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-06-23T17:22:45Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "b0107296714dcfbd592cf55c4988446e96dfbed2",
"body": null,
"is_bot": false,
"headline": "Ignore local version files",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-06-23T17:22:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f36dac5138cadcd8a07e42e5389aa48bc9d1f8d3",
"body": "Bumps [rubygems/release-gem](https://github.com/rubygems/release-gem) from 1.2.0 to 1.4.0.\n- [Release notes](https://github.com/rubygems/release-gem/releases)\n- [Commits](https://github.com/rubygems/release-gem/compare/6317d8d1f7e28c24d28f6eff169ea854948bd9f7...052cc82692552de3ef2b81fd670e41d13cba80\n[…]\nirect:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "Bump rubygems/release-gem from 1.2.0 to 1.4.0 (#1054)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-20T07:02:05Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "73cfc9c946504b4ae49b62cb4cddfdf1e5fb6935",
"body": "Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.3 to 7.0.0.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/df4cb1c069e1874edd31b43\n[…]\nirect:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "Bump actions/checkout from 6.0.3 to 7.0.0 (#1053)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-20T07:01:48Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "58525c405b149a607bd09ec44d91ff971aca942f",
"body": "Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.310.0 to 1.313.0.\n- [Release notes](https://github.com/ruby/setup-ruby/releases)\n- [Changelog](https://github.com/ruby/setup-ruby/blob/master/release.rb)\n- [Commits](https://github.com/ruby/setup-ruby/compare/afeafc3d1ab54a631816aba4\n[…]\nirect:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "Bump ruby/setup-ruby from 1.310.0 to 1.313.0 (#1052)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-12T13:20:51Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "7fdbe8aa1727feeae9d18140c940a86e86605bf8",
"body": null,
"is_bot": false,
"headline": "Exclude head build failures",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-06-10T17:18:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c158e7fef28e57844b7e208072356da466818396",
"body": null,
"is_bot": false,
"headline": "Prepare 2.17.2",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-06-10T17:01:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "186b7c1074ed6bd45f8610db0074fcd2c48a0983",
"body": "bundle-audit found two CVE's for the latest 6.x release:\n\nName: puma\nVersion: 6.6.1\nCVE: CVE-2026-47736\nGHSA: GHSA-qpgp-93vx-g8v8\nCriticality: High\nURL: https://www.cve.org/CVERecord?id=CVE-2026-47736\nTitle: Puma PROXY Protocol v1 Parser Allows Remote Memory Exhaustion\nSolution: update to '~> 7.2.1'\n[…]\nL: https://www.cve.org/CVERecord/SearchResults?query=CVE-2026-47737\nTitle: Puma PROXY Protocol v1 Accepts Repeated Protocol Headers on Persistent Connections\nSolution: update to '~> 7.2.1', '>= 8.0.2'",
"is_bot": false,
"headline": "Update Puma dev dependency",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-06-10T16:58:58Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "8f22eb543e7436f6247172c9be47e22792d375e9",
"body": null,
"is_bot": false,
"headline": "Fix Savon::Model CVE-2026-53510",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-06-10T16:55:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3309d9acad1a670a571c49068a30f1a83ae71a3c",
"body": "Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.2 to 6.0.3.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/de0fac2e4500dabe0009e67\n[…]\nirect:production\n update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "Bump actions/checkout from 6.0.2 to 6.0.3 (#1051)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-05T13:51:59Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e1cf48d7f34d463af0e89c1833f0099f27392ef0",
"body": null,
"is_bot": false,
"headline": "Fix changelog URI",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-31T08:15:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a8900014eb00dc90ec2709292a5ea6e3ace73401",
"body": null,
"is_bot": false,
"headline": "Add integration spec for HTTPI digest_auth option",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-28T07:27:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7af7acd4ad320ab1d0aa2e916f6daa0b6ed1c946",
"body": null,
"is_bot": false,
"headline": "Verify Gyoku handling of Hashes and Arrays",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-28T07:27:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b4396e935f1dfa8e445dd93f083f26e35cea92f4",
"body": null,
"is_bot": false,
"headline": "Add a `bundle install` step.",
"author_name": "Connor Shea",
"author_login": "connorshea",
"committed_at": "2026-05-28T07:27:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "24a515676dded3a0317407e5a05dbb839f9cf45c",
"body": "To prevent any risk of a cache poisoning attack being able to effect the release job.",
"is_bot": false,
"headline": "Disable bundler cache in gem push workflow",
"author_name": "Connor Shea",
"author_login": "connorshea",
"committed_at": "2026-05-28T07:27:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cd26d9245b74316269a3b77807f55c15dc0ad3ad",
"body": null,
"is_bot": false,
"headline": "Verify Gyoku is set to :lower_camelcase by default",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-27T16:40:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c069eb01eb944802782ab5e1d3e6bcb7830b3ae6",
"body": null,
"is_bot": false,
"headline": "Verify client accepts raw XML string WSDL's",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-27T16:24:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4cfa197a330225bbd2b37277079899070fe4ba21",
"body": null,
"is_bot": false,
"headline": "Add uplevel to give users a code hint",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-26T15:34:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a5ec9a2c7bfd24a458c96d58bace8bb491a7c4d9",
"body": null,
"is_bot": false,
"headline": "Deprecate :multipart options",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-26T14:40:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c6b0eceb5d8117ab709fb94494d4b992479ebd46",
"body": null,
"is_bot": false,
"headline": "Add tests for build_request url and headers",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-24T09:32:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "94a6a6668d0ef30e028e931d427ea7451bc26fd2",
"body": null,
"is_bot": false,
"headline": "Update RuboCop todos",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-23T21:07:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "47ed9021b259f593a0f6644c43cf73c77f48bf28",
"body": "* Follow `Keep a Changelog`\n* Follow `Semantic Versioning`\n* Hint at outdated Ruby versions in readme\n* Add versioning & stability section to readme\n* Be more explicit goals and about deprecations\n* Refactor changelog to follow conventions",
"is_bot": false,
"headline": "Introduce semver and changelog conventions",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-23T21:01:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "772cf07310b4426725a3525816e888de72381ccc",
"body": "Restore v2.12.1 HTTPI behavior, re-expose response.http.cookies\nand let the Faraday transport accept String or Hash cookies\nwithout requiring HTTPI types.",
"is_bot": false,
"headline": "Fix cookies regression and add Faraday-native cookie shapes",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-23T21:01:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e6a07c6b4717e9f25d0be27dc08e37fa4e042888",
"body": "Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.308.0 to 1.310.0.\n- [Release notes](https://github.com/ruby/setup-ruby/releases)\n- [Changelog](https://github.com/ruby/setup-ruby/blob/master/release.rb)\n- [Commits](https://github.com/ruby/setup-ruby/compare/97ecb7b512899eb71ab1bf23\n[…]\nirect:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "Bump ruby/setup-ruby from 1.308.0 to 1.310.0 (#1046)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-05-22T13:18:57Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e1de7ad3c3599215eb00ad5912ee203a7da98e1c",
"body": null,
"is_bot": false,
"headline": "Update changelog",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-22T11:31:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "481a25c960bfb8a8ebee220f0cfbd03713ca9f55",
"body": null,
"is_bot": false,
"headline": "Skip ntlm specs on Ruby 4 and truffleruby",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-22T11:31:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b25cb94d8f9b343b4b9143edade80bc099958b6b",
"body": "This improves the Faraday code hints we provide for\nglobal options that we no longer support for Faraday.\n\nI added tests to verify those hints actually work, fixed\nand improved a couple examples and added some new\ncerts and keys we can use for testing.",
"is_bot": false,
"headline": "Improve Faraday hints",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-22T11:31:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1bb2de488278db1fac6522f53723416842d0b86f",
"body": null,
"is_bot": false,
"headline": "Fix linting",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-21T22:39:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c54f059e8e0a8a811a63b76c6313ab2562c29bd4",
"body": "…xml options",
"is_bot": false,
"headline": "Expose Nori empty_tag_value, convert_dashes_to_underscores and scrub_…",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-21T22:36:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d496e59d01a83cbf003aaea3f3a20bfe321cb53f",
"body": "#761's multipart support never covered caller-supplied :xml;\nBuilder#to_s returned it early, dropping attachments.",
"is_bot": false,
"headline": "Wrap pre-built :xml envelopes in multipart when attachments are present",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-21T21:34:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "26c96e02d07346f090f56d96bc5dca5850d57900",
"body": null,
"is_bot": false,
"headline": "Prepare 2.17.1 for release",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-21T18:10:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "029490e4a5a5664fa490a485eb138466ffb9d9b5",
"body": "`soap_headers` reads `builder.multipart` but was evaluated\nbefore `builder.to_s` built the body, so attachment requests\nwent out as text/xml instead of multipart/related.",
"is_bot": false,
"headline": "Fix multipart Content-Type dropped on attachment requests",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-21T18:10:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "121a0802692f82a60bd80cf1a2e468a7fc546aae",
"body": "The HTTPI and Faraday transports set Content-Length explicitly,\nbut the underlying HTTP libraries already compute that.\nSending it twice produces a duplicate header on adapters that\ndo not deduplicate (e.g. httpclient), which some servers reject.\n\nFixes ee3bbee\nNow really closes #1008",
"is_bot": false,
"headline": "Remove redundant Content-Length request header",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-21T18:08:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f6e9fd5d00cbf3e09f6a0d7ebb9c78a1aceda2e9",
"body": null,
"is_bot": false,
"headline": "Silence deprecation warning in specs",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-21T07:40:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c838aa2bc6dbecfa947d2076fee79733a48c0803",
"body": null,
"is_bot": false,
"headline": "Update to be more concise and helpful",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-19T16:01:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "61923fb018621654dc01a061dd0d18cc4333745d",
"body": null,
"is_bot": false,
"headline": "Update version in readme",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-19T14:08:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5ca85380da4ff0eab6c989a9ebf48a0c17ae86f6",
"body": "Supporting imports sounds like a 3.x feature because it's\ngoing to affect everyone with WSDL documents that have\nimports which were previously skipped.\n\nCould be opt-in until version 3 though.",
"is_bot": false,
"headline": "Start making known limitations visible",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-19T13:50:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0332b81051e6d8e29391d684a12245b6a4bdbf33",
"body": "Using a local WSDL should work since Wasabi 2.4.0.",
"is_bot": false,
"headline": "Add spec to verify #947 is not a problem",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-19T12:59:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ee3bbee7360ea36164da86af61329bf811af2837",
"body": "Backported to v2.x and added tests.\nCloses #1008. Thanks @Ezveus",
"is_bot": false,
"headline": "Remove Content-Length computing",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-19T12:41:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7548ef82bae017219571f316ea8b5d0ce5cc1a13",
"body": null,
"is_bot": false,
"headline": "Prepare 2.17.0 release",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-19T12:14:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "acb585bf3da9de9ada8d2e5ee5e962355123676d",
"body": null,
"is_bot": false,
"headline": "Fix RuboCop todos (#1043)",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-19T11:33:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b4306c41ca9229b104a80522093e3afed9fe06b5",
"body": null,
"is_bot": false,
"headline": "Update RuboCop todos",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-19T07:47:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f8b46ade69252698f90b4f825332e1773e537d5f",
"body": "Set transport: :faraday to route requests through a Faraday::Connection\naccessible via client.faraday. WSDL fetching uses the same connection.\n\nSavon.client raises at init if any httpi-specific global (proxy, timeouts,\nssl, auth, adapter) is set alongside transport: :faraday, with a hint\npointing to the Faraday equivalents.\n\nHTTPI remains the default for 2.x.\nCallers who do not set the option see no change.",
"is_bot": false,
"headline": "Add opt-in Faraday transport",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-19T07:47:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5cdbc1ef7e4173227e0ff440823fe1ab7cca7042",
"body": null,
"is_bot": false,
"headline": "Add transport: option and client.faraday accessor",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-19T07:47:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8845252f5645e980d5d90a28ed20eb04cc432422",
"body": "Internal groundwork for opt-in Faraday support in v2.17.0.\n\n* Add Transport::Response: transport-agnostic response value object.\n* Add Transport::HTTPI: owns the full SOAP request cycle.\n Absorbs SOAPRequest, WSDLRequest, HTTPRequest and RequestLogger.\n* Observers returning HTTPI::Response continue to work but now emit a\n deprecation warning; Transport::Response is the new observer contract.",
"is_bot": false,
"headline": "Introduce transport abstraction layer",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-19T07:47:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "83490641d156fbb2c4915ed392c3bbe3799aebac",
"body": null,
"is_bot": false,
"headline": "Workaround for BUNDLED_GEMS",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-18T22:12:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "345a04b44d399387a1908613cba856740bcd8737",
"body": null,
"is_bot": false,
"headline": "Fix ruby audit",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-18T21:49:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "117107ba9730cd50dfbede8d58812c1c157999f6",
"body": null,
"is_bot": false,
"headline": "Pin bundler-audit version",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-18T21:49:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "abd95114e4269ef849f68721d8cfc1ca2bac2998",
"body": null,
"is_bot": false,
"headline": "Add gem metadata uri's",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-18T21:39:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b944610c3c762cf9b5bbb581481ae94160c25a32",
"body": null,
"is_bot": false,
"headline": "Audit Ruby versions as well",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-18T21:21:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1671b639e0b6d2c461dc1a3acd746cbf4a16ed02",
"body": null,
"is_bot": false,
"headline": "Add bundle-audit to CI",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-18T21:18:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f4f124523782870a90ba93f32a4be3bd2e562327",
"body": null,
"is_bot": false,
"headline": "Instruct checkout to not cache credentials",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-18T21:00:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "39c33b427a6e57ca5db9c993308b338e754ae0bc",
"body": null,
"is_bot": false,
"headline": "Explicitely default to no write access",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-18T20:56:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6f6df7642eca348b98ed0095fd45940b01101692",
"body": null,
"is_bot": false,
"headline": "Add RuboCop to CI",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-18T20:53:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7ae50ce2d5215e97cd5c0b4f81c7087d9cedb96c",
"body": null,
"is_bot": false,
"headline": "Pin GitHub actions for security",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-18T20:52:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2ed470196493c0a133c1aa4393e41587b1720b5b",
"body": null,
"is_bot": false,
"headline": "Add RuboCop",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-18T20:48:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "01801bfd75dded925a3a5e932f4df3ee044021b3",
"body": null,
"is_bot": false,
"headline": "Add trusted publishing release workflow",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-18T19:17:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8b2b0ec9d04f5d6de84fde7c889c4f2f598b65d2",
"body": null,
"is_bot": false,
"headline": "Update to use https url",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-18T19:14:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "710f2211c73a77fbffa3ee3b2cfed1d39dfe5339",
"body": null,
"is_bot": false,
"headline": "Prepare 2.16.0 release",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-18T18:58:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "54d2bb45f0ee9f415ce7e76ed935a85e93ced9c5",
"body": null,
"is_bot": false,
"headline": "Update changelog for 2.16.0",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-18T18:21:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ce63aedffadf242f7a4b5bf7d2b84d6e96124377",
"body": null,
"is_bot": false,
"headline": "Add Ruby 4.0 back to see if #1039 still fails",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-18T18:21:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "89507673fc67e8a94fe040b3a0375521c36386c7",
"body": "element into every soap envelope. This pulled in structural namespaces\n(soap, wsdl, SOAP-ENC, mime) that have no place in a request body,\ncausing strict servers to reject envelopes with unexpected or duplicate\ndeclarations (#1014, #942).\n\nI removed the block. Every prefix that can appear in the body\n[…]\nuse the human-readable\nprefix from the WSDL rather than falling back to ins0, ins1.\n\nFull per-operation isolation would require wasabi to expose\ntype namespaces per operation rather than per document.",
"is_bot": false,
"headline": "Stop dumping all WSDL namespaces into every soap envelope",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-18T18:21:39Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "1e93bb7cad0f38dad5af071db56680e520886db7",
"body": "Wasabi 4.x introduced a regression where message names were used as\nsoap body element names instead of operation names, causing servers to\nreturn a fault. This was reported via #1016 and fixed in wasabi 5.1.0 via\nsavonrb/wasabi#122.\n\nThe previous lower bound allowed users to install the broken version\nand hit the regression without any indication why.",
"is_bot": false,
"headline": "Bump minimum wasabi to 5.1.0",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-18T18:21:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ef21affac8a46d0c29857bd7e5a06277fd3a153b",
"body": "Even though I totally agree with this change introduced by b5faba8,\nit's a breaking change that I would like to defer until version 3.\n\nAdded a warning to #hash to nudge users to use #full_hash.",
"is_bot": false,
"headline": "Revert removing Savon::Response#hash",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-18T18:21:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a9f2fd17556a5c2093dfceac8dac4babacfcee43",
"body": null,
"is_bot": false,
"headline": "README.md: Drop badge of inactive CodeClimate [ci skip]",
"author_name": "Olle Jonsson",
"author_login": "olleolleolle",
"committed_at": "2026-05-18T18:21:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b8930684301c876327e83e05b2db10c4892c19ec",
"body": null,
"is_bot": false,
"headline": "README: Stop linking to inactive Twitter [ci skip]",
"author_name": "Olle Jonsson",
"author_login": "olleolleolle",
"committed_at": "2026-05-18T18:21:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "972641d7cdc0079c6db2e69daf5545bf718bb2e9",
"body": "Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/v4...v6)\n\n---\nupdated-dependenc\n[…]\nirect:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "Bump actions/checkout from 4 to 6 (#1038)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-05-18T18:21:39Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "34dfd2a3d84231bfe61174fc25382f440c018c93",
"body": null,
"is_bot": false,
"headline": "CI: Tell dependabot to update GH Actions",
"author_name": "Olle Jonsson",
"author_login": "olleolleolle",
"committed_at": "2026-05-18T18:21:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2581955b7f06a3c42ce4559818439191c8da5b61",
"body": "Follow-up on e81f2e1.\nWe don't use mutex_m. httpclient does, but it also\nproperly defines it as a runtime dependency.\nWe already include httpclient as a dev dependency\nin our Gemfile.",
"is_bot": false,
"headline": "Remove unused dev dependency declarations",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-18T18:21:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ac4e697521ad2207e4526861549685307e8a7196",
"body": "* Add ostruct support\n\n* Add Ruby 3.4 coverage",
"is_bot": false,
"headline": "Add ruby 3.4 to CI (#1024)",
"author_name": "Daniel O",
"author_login": "doconnor-clintel",
"committed_at": "2026-05-18T18:21:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "be86aeb763a0597bf77dea5ec4bdfbaa185614c0",
"body": "Forcing ISO-8859-1 is a very opinionated choice.\nString#scrub just does what we need w/o it.",
"is_bot": false,
"headline": "Use String#scrub to clean up invalid byte sequences",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-18T18:21:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "669c51c516726aa91f1059ffd600d8d00a35383c",
"body": null,
"is_bot": false,
"headline": "Fix SOAPFault.present? ignoring its xml argument",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-18T18:21:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0a06afe759bd2e28d366866c9113b18812fe9a63",
"body": "Unfortunately the BLZService is down.\nThanks to @LukeIGS for providing an alternative in 725855d.",
"is_bot": false,
"headline": "Fix integration spec",
"author_name": "rubiii",
"author_login": "rubiii",
"committed_at": "2026-05-18T18:21:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "376d602c895bfa32320896d9f68abab66ec566a9",
"body": null,
"is_bot": false,
"headline": "lint unused var",
"author_name": "Peter Cai",
"author_login": "pcai",
"committed_at": "2024-07-15T17:30:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "729e05896063e3faae5bdb897ff6f3846ca80000",
"body": "Co-authored-by: David Escala <descala@ingent.net>",
"is_bot": false,
"headline": "Fix exception when soap:Fault contains invalid encoding (#923)",
"author_name": "Lluís Gili",
"author_login": "lluis",
"committed_at": "2024-07-15T17:16:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4dd4abfd0c056f80023c0fb947168b18682aa3da",
"body": null,
"is_bot": false,
"headline": "rm digest_auth tests since rack 3.1 removes support",
"author_name": "Peter Cai",
"author_login": "pcai",
"committed_at": "2024-07-08T18:58:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "85c8e1a39069ac10be00634791a8dcee1821bdda",
"body": null,
"is_bot": false,
"headline": "prepare 2.15.1 release",
"author_name": "Peter Cai",
"author_login": "pcai",
"committed_at": "2024-07-08T18:52:50Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 16,
"commits_last_year": 95,
"latest_release_at": "2026-07-03T10:01:07Z",
"latest_release_tag": "v2.17.4",
"releases_from_tags": false,
"days_since_last_push": 15,
"active_weeks_last_year": 9,
"days_since_latest_release": 18,
"mean_days_between_releases": 96.7
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": true,
"health_percentage": 75,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": true
},
"ecosystem": {
"packages": [
{
"name": "savon",
"exists": true,
"license": "MIT",
"keywords": [],
"ecosystem": "rubygems",
"matches_repo": true,
"registry_url": "https://rubygems.org/gems/savon",
"is_deprecated": false,
"latest_version": "2.17.4",
"repository_url": "https://github.com/savonrb/savon",
"versions_count": 99,
"total_downloads": 98640558,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": null,
"first_published_at": "2009-10-06T14:10:04.248000Z",
"latest_published_at": "2025-08-12T22:57:30.169000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 343
}
]
},
"popularity": {
"forks": 612,
"stars": 2086,
"watchers": 37,
"fork_history": {
"days": [
{
"date": "2009-12-11",
"count": 1
},
{
"date": "2009-12-16",
"count": 1
},
{
"date": "2009-12-22",
"count": 1
},
{
"date": "2010-01-06",
"count": 1
},
{
"date": "2010-01-14",
"count": 1
},
{
"date": "2010-01-26",
"count": 1
},
{
"date": "2010-01-27",
"count": 2
},
{
"date": "2010-03-02",
"count": 1
},
{
"date": "2010-03-16",
"count": 1
},
{
"date": "2010-03-25",
"count": 1
},
{
"date": "2010-04-29",
"count": 1
},
{
"date": "2010-05-21",
"count": 1
},
{
"date": "2010-06-25",
"count": 1
},
{
"date": "2010-08-01",
"count": 1
},
{
"date": "2010-08-23",
"count": 1
},
{
"date": "2010-09-16",
"count": 1
},
{
"date": "2010-09-21",
"count": 1
},
{
"date": "2010-09-23",
"count": 1
},
{
"date": "2010-10-06",
"count": 1
},
{
"date": "2010-10-27",
"count": 1
},
{
"date": "2010-10-28",
"count": 2
},
{
"date": "2010-11-05",
"count": 2
},
{
"date": "2010-11-09",
"count": 1
},
{
"date": "2010-11-16",
"count": 1
},
{
"date": "2010-12-01",
"count": 1
},
{
"date": "2010-12-09",
"count": 1
},
{
"date": "2010-12-13",
"count": 1
},
{
"date": "2010-12-20",
"count": 1
},
{
"date": "2011-01-01",
"count": 1
},
{
"date": "2011-01-02",
"count": 1
},
{
"date": "2011-01-10",
"count": 1
},
{
"date": "2011-01-15",
"count": 1
},
{
"date": "2011-01-25",
"count": 1
},
{
"date": "2011-02-11",
"count": 1
},
{
"date": "2011-02-24",
"count": 1
},
{
"date": "2011-03-26",
"count": 1
},
{
"date": "2011-03-29",
"count": 2
},
{
"date": "2011-03-30",
"count": 2
},
{
"date": "2011-03-31",
"count": 1
},
{
"date": "2011-04-11",
"count": 1
},
{
"date": "2011-04-14",
"count": 1
},
{
"date": "2011-04-17",
"count": 1
},
{
"date": "2011-04-19",
"count": 1
},
{
"date": "2011-04-27",
"count": 1
},
{
"date": "2011-04-28",
"count": 1
},
{
"date": "2011-05-08",
"count": 1
},
{
"date": "2011-05-26",
"count": 1
},
{
"date": "2011-06-09",
"count": 1
},
{
"date": "2011-06-17",
"count": 1
},
{
"date": "2011-06-20",
"count": 1
},
{
"date": "2011-06-25",
"count": 1
},
{
"date": "2011-06-29",
"count": 1
},
{
"date": "2011-07-15",
"count": 1
},
{
"date": "2011-07-25",
"count": 1
},
{
"date": "2011-08-08",
"count": 1
},
{
"date": "2011-08-22",
"count": 1
},
{
"date": "2011-09-27",
"count": 1
},
{
"date": "2011-09-30",
"count": 1
},
{
"date": "2011-10-07",
"count": 1
},
{
"date": "2011-10-11",
"count": 1
},
{
"date": "2011-10-17",
"count": 1
},
{
"date": "2011-11-18",
"count": 1
},
{
"date": "2011-11-27",
"count": 1
},
{
"date": "2011-12-13",
"count": 1
},
{
"date": "2011-12-18",
"count": 1
},
{
"date": "2011-12-26",
"count": 1
},
{
"date": "2011-12-27",
"count": 1
},
{
"date": "2012-01-03",
"count": 1
},
{
"date": "2012-01-05",
"count": 1
},
{
"date": "2012-01-10",
"count": 1
},
{
"date": "2012-01-12",
"count": 1
},
{
"date": "2012-01-20",
"count": 1
},
{
"date": "2012-01-22",
"count": 1
},
{
"date": "2012-01-26",
"count": 1
},
{
"date": "2012-01-27",
"count": 1
},
{
"date": "2012-02-02",
"count": 1
},
{
"date": "2012-02-11",
"count": 1
},
{
"date": "2012-02-15",
"count": 2
},
{
"date": "2012-02-16",
"count": 1
},
{
"date": "2012-02-18",
"count": 1
},
{
"date": "2012-03-14",
"count": 1
},
{
"date": "2012-03-15",
"count": 1
},
{
"date": "2012-03-20",
"count": 2
},
{
"date": "2012-03-26",
"count": 1
},
{
"date": "2012-03-28",
"count": 1
},
{
"date": "2012-04-08",
"count": 1
},
{
"date": "2012-04-10",
"count": 1
},
{
"date": "2012-04-16",
"count": 1
},
{
"date": "2012-04-30",
"count": 1
},
{
"date": "2012-05-07",
"count": 1
},
{
"date": "2012-05-08",
"count": 1
},
{
"date": "2012-05-11",
"count": 2
},
{
"date": "2012-05-26",
"count": 1
},
{
"date": "2012-05-28",
"count": 1
},
{
"date": "2012-06-05",
"count": 1
},
{
"date": "2012-06-08",
"count": 1
},
{
"date": "2012-06-18",
"count": 1
},
{
"date": "2012-06-27",
"count": 1
},
{
"date": "2012-07-04",
"count": 1
},
{
"date": "2012-07-23",
"count": 1
},
{
"date": "2012-07-31",
"count": 1
},
{
"date": "2012-08-08",
"count": 1
},
{
"date": "2012-08-30",
"count": 1
},
{
"date": "2012-09-19",
"count": 1
},
{
"date": "2012-10-01",
"count": 1
},
{
"date": "2012-10-12",
"count": 1
},
{
"date": "2012-10-14",
"count": 1
},
{
"date": "2012-11-04",
"count": 1
},
{
"date": "2012-11-22",
"count": 1
},
{
"date": "2012-12-05",
"count": 1
},
{
"date": "2012-12-13",
"count": 1
},
{
"date": "2013-01-01",
"count": 1
},
{
"date": "2013-01-03",
"count": 2
},
{
"date": "2013-01-08",
"count": 1
},
{
"date": "2013-01-15",
"count": 1
},
{
"date": "2013-01-18",
"count": 4
},
{
"date": "2013-01-25",
"count": 2
},
{
"date": "2013-01-28",
"count": 2
},
{
"date": "2013-02-08",
"count": 1
},
{
"date": "2013-02-15",
"count": 1
},
{
"date": "2013-02-21",
"count": 1
},
{
"date": "2013-02-22",
"count": 1
},
{
"date": "2013-03-07",
"count": 1
},
{
"date": "2013-03-13",
"count": 1
},
{
"date": "2013-03-14",
"count": 2
},
{
"date": "2013-03-19",
"count": 1
},
{
"date": "2013-03-24",
"count": 1
},
{
"date": "2013-04-03",
"count": 1
},
{
"date": "2013-04-06",
"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-21",
"count": 1
},
{
"date": "2013-04-24",
"count": 1
},
{
"date": "2013-05-02",
"count": 1
},
{
"date": "2013-05-07",
"count": 1
},
{
"date": "2013-05-08",
"count": 1
},
{
"date": "2013-05-10",
"count": 1
},
{
"date": "2013-05-12",
"count": 1
},
{
"date": "2013-05-14",
"count": 1
},
{
"date": "2013-05-18",
"count": 1
},
{
"date": "2013-05-25",
"count": 1
},
{
"date": "2013-05-30",
"count": 1
},
{
"date": "2013-06-03",
"count": 1
},
{
"date": "2013-06-04",
"count": 1
},
{
"date": "2013-06-07",
"count": 1
},
{
"date": "2013-06-10",
"count": 1
},
{
"date": "2013-06-13",
"count": 1
},
{
"date": "2013-06-17",
"count": 1
},
{
"date": "2013-06-19",
"count": 1
},
{
"date": "2013-06-25",
"count": 1
},
{
"date": "2013-06-26",
"count": 1
},
{
"date": "2013-06-27",
"count": 1
},
{
"date": "2013-07-12",
"count": 2
},
{
"date": "2013-07-16",
"count": 1
},
{
"date": "2013-07-26",
"count": 1
},
{
"date": "2013-07-29",
"count": 1
},
{
"date": "2013-08-01",
"count": 1
},
{
"date": "2013-08-06",
"count": 1
},
{
"date": "2013-08-21",
"count": 1
},
{
"date": "2013-08-22",
"count": 1
},
{
"date": "2013-08-31",
"count": 1
},
{
"date": "2013-09-03",
"count": 1
},
{
"date": "2013-09-05",
"count": 2
},
{
"date": "2013-09-07",
"count": 1
},
{
"date": "2013-09-10",
"count": 1
},
{
"date": "2013-09-13",
"count": 1
},
{
"date": "2013-09-15",
"count": 1
},
{
"date": "2013-09-20",
"count": 1
},
{
"date": "2013-09-21",
"count": 1
},
{
"date": "2013-09-25",
"count": 1
},
{
"date": "2013-10-02",
"count": 1
},
{
"date": "2013-10-04",
"count": 2
},
{
"date": "2013-10-07",
"count": 1
},
{
"date": "2013-10-11",
"count": 1
},
{
"date": "2013-10-31",
"count": 1
},
{
"date": "2013-11-05",
"count": 1
},
{
"date": "2013-11-09",
"count": 1
},
{
"date": "2013-11-12",
"count": 1
},
{
"date": "2013-11-18",
"count": 1
},
{
"date": "2013-11-21",
"count": 1
},
{
"date": "2013-11-22",
"count": 1
},
{
"date": "2013-11-25",
"count": 1
},
{
"date": "2013-12-05",
"count": 1
},
{
"date": "2013-12-09",
"count": 1
},
{
"date": "2013-12-13",
"count": 1
},
{
"date": "2013-12-20",
"count": 1
},
{
"date": "2014-01-13",
"count": 1
},
{
"date": "2014-01-14",
"count": 1
},
{
"date": "2014-01-27",
"count": 1
},
{
"date": "2014-01-28",
"count": 2
},
{
"date": "2014-02-03",
"count": 1
},
{
"date": "2014-02-13",
"count": 1
},
{
"date": "2014-02-18",
"count": 1
},
{
"date": "2014-03-05",
"count": 1
},
{
"date": "2014-03-16",
"count": 1
},
{
"date": "2014-03-22",
"count": 1
},
{
"date": "2014-03-31",
"count": 1
},
{
"date": "2014-04-02",
"count": 1
},
{
"date": "2014-04-04",
"count": 1
},
{
"date": "2014-04-07",
"count": 1
},
{
"date": "2014-04-14",
"count": 1
},
{
"date": "2014-04-17",
"count": 1
},
{
"date": "2014-04-22",
"count": 1
},
{
"date": "2014-04-25",
"count": 1
},
{
"date": "2014-04-30",
"count": 1
},
{
"date": "2014-05-02",
"count": 1
},
{
"date": "2014-05-05",
"count": 1
},
{
"date": "2014-05-06",
"count": 1
},
{
"date": "2014-05-15",
"count": 1
},
{
"date": "2014-05-16",
"count": 1
},
{
"date": "2014-05-17",
"count": 1
},
{
"date": "2014-05-20",
"count": 1
},
{
"date": "2014-06-17",
"count": 1
},
{
"date": "2014-06-18",
"count": 1
},
{
"date": "2014-06-19",
"count": 1
},
{
"date": "2014-06-22",
"count": 1
},
{
"date": "2014-06-26",
"count": 1
},
{
"date": "2014-07-01",
"count": 1
},
{
"date": "2014-07-08",
"count": 1
},
{
"date": "2014-07-17",
"count": 1
},
{
"date": "2014-07-21",
"count": 1
},
{
"date": "2014-07-24",
"count": 1
},
{
"date": "2014-08-04",
"count": 2
},
{
"date": "2014-08-12",
"count": 1
},
{
"date": "2014-08-20",
"count": 1
},
{
"date": "2014-08-22",
"count": 1
},
{
"date": "2014-09-02",
"count": 1
},
{
"date": "2014-09-07",
"count": 1
},
{
"date": "2014-09-08",
"count": 1
},
{
"date": "2014-09-09",
"count": 2
},
{
"date": "2014-09-15",
"count": 1
},
{
"date": "2014-09-30",
"count": 1
},
{
"date": "2014-10-03",
"count": 2
},
{
"date": "2014-10-09",
"count": 1
},
{
"date": "2014-10-24",
"count": 1
},
{
"date": "2014-10-30",
"count": 1
},
{
"date": "2014-11-05",
"count": 1
},
{
"date": "2014-11-14",
"count": 1
},
{
"date": "2014-11-17",
"count": 2
},
{
"date": "2014-11-20",
"count": 1
},
{
"date": "2014-11-26",
"count": 2
},
{
"date": "2014-12-03",
"count": 1
},
{
"date": "2014-12-04",
"count": 1
},
{
"date": "2014-12-05",
"count": 1
},
{
"date": "2014-12-08",
"count": 1
},
{
"date": "2014-12-13",
"count": 1
},
{
"date": "2015-01-01",
"count": 1
},
{
"date": "2015-01-10",
"count": 1
},
{
"date": "2015-01-17",
"count": 1
},
{
"date": "2015-01-26",
"count": 1
},
{
"date": "2015-01-31",
"count": 1
},
{
"date": "2015-02-09",
"count": 1
},
{
"date": "2015-02-10",
"count": 1
},
{
"date": "2015-02-12",
"count": 1
},
{
"date": "2015-02-13",
"count": 1
},
{
"date": "2015-02-18",
"count": 1
},
{
"date": "2015-02-23",
"count": 1
},
{
"date": "2015-02-24",
"count": 1
},
{
"date": "2015-03-03",
"count": 1
},
{
"date": "2015-03-04",
"count": 1
},
{
"date": "2015-03-09",
"count": 1
},
{
"date": "2015-03-13",
"count": 1
},
{
"date": "2015-03-26",
"count": 1
},
{
"date": "2015-04-20",
"count": 1
},
{
"date": "2015-04-22",
"count": 1
},
{
"date": "2015-04-29",
"count": 1
},
{
"date": "2015-05-04",
"count": 2
},
{
"date": "2015-05-08",
"count": 2
},
{
"date": "2015-05-20",
"count": 1
},
{
"date": "2015-05-23",
"count": 1
},
{
"date": "2015-06-02",
"count": 1
},
{
"date": "2015-06-03",
"count": 1
},
{
"date": "2015-06-09",
"count": 1
},
{
"date": "2015-06-15",
"count": 1
},
{
"date": "2015-06-16",
"count": 1
},
{
"date": "2015-06-29",
"count": 1
},
{
"date": "2015-07-03",
"count": 1
},
{
"date": "2015-07-13",
"count": 1
},
{
"date": "2015-07-15",
"count": 1
},
{
"date": "2015-07-16",
"count": 1
},
{
"date": "2015-08-20",
"count": 1
},
{
"date": "2015-08-25",
"count": 1
},
{
"date": "2015-08-31",
"count": 1
},
{
"date": "2015-09-10",
"count": 1
},
{
"date": "2015-09-16",
"count": 1
},
{
"date": "2015-09-30",
"count": 1
},
{
"date": "2015-10-01",
"count": 1
},
{
"date": "2015-11-03",
"count": 1
},
{
"date": "2015-11-09",
"count": 1
},
{
"date": "2015-11-10",
"count": 1
},
{
"date": "2015-11-12",
"count": 1
},
{
"date": "2015-11-18",
"count": 1
},
{
"date": "2015-11-23",
"count": 1
},
{
"date": "2015-12-07",
"count": 1
},
{
"date": "2015-12-12",
"count": 1
},
{
"date": "2015-12-21",
"count": 1
},
{
"date": "2015-12-28",
"count": 1
},
{
"date": "2016-01-05",
"count": 1
},
{
"date": "2016-01-11",
"count": 2
},
{
"date": "2016-01-14",
"count": 1
},
{
"date": "2016-01-18",
"count": 1
},
{
"date": "2016-01-27",
"count": 2
},
{
"date": "2016-02-26",
"count": 1
},
{
"date": "2016-03-09",
"count": 1
},
{
"date": "2016-03-11",
"count": 1
},
{
"date": "2016-03-17",
"count": 1
},
{
"date": "2016-03-25",
"count": 1
},
{
"date": "2016-03-30",
"count": 1
},
{
"date": "2016-04-14",
"count": 2
},
{
"date": "2016-04-19",
"count": 1
},
{
"date": "2016-04-20",
"count": 1
},
{
"date": "2016-04-23",
"count": 1
},
{
"date": "2016-04-29",
"count": 1
},
{
"date": "2016-05-22",
"count": 1
},
{
"date": "2016-06-10",
"count": 1
},
{
"date": "2016-06-23",
"count": 1
},
{
"date": "2016-06-27",
"count": 1
},
{
"date": "2016-06-29",
"count": 1
},
{
"date": "2016-07-01",
"count": 1
},
{
"date": "2016-07-04",
"count": 1
},
{
"date": "2016-07-14",
"count": 1
},
{
"date": "2016-07-20",
"count": 1
},
{
"date": "2016-07-22",
"count": 1
},
{
"date": "2016-08-01",
"count": 1
},
{
"date": "2016-08-17",
"count": 1
},
{
"date": "2016-08-19",
"count": 1
},
{
"date": "2016-09-30",
"count": 1
},
{
"date": "2016-10-10",
"count": 2
},
{
"date": "2016-10-11",
"count": 2
},
{
"date": "2016-10-25",
"count": 1
},
{
"date": "2016-10-28",
"count": 1
},
{
"date": "2016-11-02",
"count": 2
},
{
"date": "2016-11-24",
"count": 1
},
{
"date": "2016-12-04",
"count": 1
},
{
"date": "2016-12-07",
"count": 1
},
{
"date": "2016-12-21",
"count": 1
},
{
"date": "2017-01-05",
"count": 1
},
{
"date": "2017-01-06",
"count": 1
},
{
"date": "2017-01-15",
"count": 1
},
{
"date": "2017-01-19",
"count": 1
},
{
"date": "2017-01-21",
"count": 1
},
{
"date": "2017-01-25",
"count": 1
},
{
"date": "2017-02-02",
"count": 1
},
{
"date": "2017-02-07",
"count": 1
},
{
"date": "2017-02-10",
"count": 1
},
{
"date": "2017-02-23",
"count": 1
},
{
"date": "2017-03-13",
"count": 2
},
{
"date": "2017-03-14",
"count": 1
},
{
"date": "2017-03-23",
"count": 2
},
{
"date": "2017-03-24",
"count": 1
},
{
"date": "2017-03-30",
"count": 1
},
{
"date": "2017-04-06",
"count": 1
},
{
"date": "2017-04-10",
"count": 2
},
{
"date": "2017-04-14",
"count": 1
},
{
"date": "2017-04-26",
"count": 1
},
{
"date": "2017-05-03",
"count": 1
},
{
"date": "2017-05-06",
"count": 1
},
{
"date": "2017-05-08",
"count": 1
},
{
"date": "2017-05-10",
"count": 1
},
{
"date": "2017-05-30",
"count": 1
},
{
"date": "2017-06-07",
"count": 1
},
{
"date": "2017-06-08",
"count": 1
},
{
"date": "2017-06-16",
"count": 1
},
{
"date": "2017-06-19",
"count": 2
},
{
"date": "2017-07-02",
"count": 1
},
{
"date": "2017-07-12",
"count": 1
},
{
"date": "2017-07-21",
"count": 1
},
{
"date": "2017-07-25",
"count": 1
},
{
"date": "2017-08-08",
"count": 1
},
{
"date": "2017-09-13",
"count": 1
},
{
"date": "2017-09-14",
"count": 1
},
{
"date": "2017-10-10",
"count": 1
},
{
"date": "2017-10-12",
"count": 1
},
{
"date": "2017-10-30",
"count": 1
},
{
"date": "2017-11-10",
"count": 1
},
{
"date": "2017-12-15",
"count": 1
},
{
"date": "2018-01-05",
"count": 1
},
{
"date": "2018-01-08",
"count": 1
},
{
"date": "2018-01-09",
"count": 1
},
{
"date": "2018-01-16",
"count": 1
},
{
"date": "2018-01-17",
"count": 1
},
{
"date": "2018-01-31",
"count": 1
},
{
"date": "2018-02-03",
"count": 1
},
{
"date": "2018-02-14",
"count": 1
},
{
"date": "2018-03-08",
"count": 1
},
{
"date": "2018-03-23",
"count": 1
},
{
"date": "2018-04-04",
"count": 1
},
{
"date": "2018-04-09",
"count": 2
},
{
"date": "2018-05-02",
"count": 1
},
{
"date": "2018-05-03",
"count": 1
},
{
"date": "2018-05-07",
"count": 1
},
{
"date": "2018-05-30",
"count": 1
},
{
"date": "2018-07-03",
"count": 1
},
{
"date": "2018-07-06",
"count": 1
},
{
"date": "2018-07-10",
"count": 1
},
{
"date": "2018-08-21",
"count": 1
},
{
"date": "2018-09-01",
"count": 1
},
{
"date": "2018-10-09",
"count": 1
},
{
"date": "2018-10-12",
"count": 2
},
{
"date": "2018-10-16",
"count": 1
},
{
"date": "2018-10-24",
"count": 1
},
{
"date": "2018-11-13",
"count": 1
},
{
"date": "2018-11-23",
"count": 1
},
{
"date": "2018-12-03",
"count": 1
},
{
"date": "2018-12-17",
"count": 1
},
{
"date": "2019-01-08",
"count": 1
},
{
"date": "2019-02-20",
"count": 1
},
{
"date": "2019-02-27",
"count": 2
},
{
"date": "2019-04-05",
"count": 1
},
{
"date": "2019-04-17",
"count": 1
},
{
"date": "2019-06-04",
"count": 1
},
{
"date": "2019-06-14",
"count": 1
},
{
"date": "2019-06-27",
"count": 2
},
{
"date": "2019-08-16",
"count": 2
},
{
"date": "2019-08-24",
"count": 1
},
{
"date": "2019-09-03",
"count": 1
},
{
"date": "2019-09-12",
"count": 1
},
{
"date": "2019-09-13",
"count": 1
},
{
"date": "2019-09-16",
"count": 1
},
{
"date": "2019-10-08",
"count": 1
},
{
"date": "2019-10-11",
"count": 1
},
{
"date": "2019-10-17",
"count": 1
},
{
"date": "2019-11-01",
"count": 1
},
{
"date": "2019-11-19",
"count": 1
},
{
"date": "2019-11-22",
"count": 1
},
{
"date": "2019-11-27",
"count": 1
},
{
"date": "2019-12-02",
"count": 1
},
{
"date": "2019-12-28",
"count": 1
},
{
"date": "2020-02-03",
"count": 1
},
{
"date": "2020-02-17",
"count": 1
},
{
"date": "2020-03-01",
"count": 1
},
{
"date": "2020-03-11",
"count": 1
},
{
"date": "2020-03-16",
"count": 1
},
{
"date": "2020-03-19",
"count": 1
},
{
"date": "2020-03-23",
"count": 1
},
{
"date": "2020-03-26",
"count": 1
},
{
"date": "2020-03-31",
"count": 1
},
{
"date": "2020-04-03",
"count": 1
},
{
"date": "2020-04-23",
"count": 2
},
{
"date": "2020-04-28",
"count": 2
},
{
"date": "2020-05-05",
"count": 1
},
{
"date": "2020-05-31",
"count": 1
},
{
"date": "2020-07-13",
"count": 1
},
{
"date": "2020-07-22",
"count": 1
},
{
"date": "2020-07-28",
"count": 1
},
{
"date": "2020-08-05",
"count": 1
},
{
"date": "2020-09-11",
"count": 1
},
{
"date": "2020-09-16",
"count": 1
},
{
"date": "2020-10-20",
"count": 1
},
{
"date": "2020-10-26",
"count": 2
},
{
"date": "2020-11-03",
"count": 1
},
{
"date": "2020-11-06",
"count": 2
},
{
"date": "2020-12-03",
"count": 1
},
{
"date": "2020-12-09",
"count": 1
},
{
"date": "2020-12-15",
"count": 1
},
{
"date": "2021-01-12",
"count": 1
},
{
"date": "2021-01-27",
"count": 1
},
{
"date": "2021-03-10",
"count": 1
},
{
"date": "2021-03-15",
"count": 1
},
{
"date": "2021-04-09",
"count": 1
},
{
"date": "2021-05-04",
"count": 2
},
{
"date": "2021-06-17",
"count": 1
},
{
"date": "2021-06-21",
"count": 1
},
{
"date": "2021-07-27",
"count": 1
},
{
"date": "2021-08-09",
"count": 1
},
{
"date": "2021-10-01",
"count": 1
},
{
"date": "2021-10-25",
"count": 1
},
{
"date": "2021-11-12",
"count": 1
},
{
"date": "2021-12-09",
"count": 1
},
{
"date": "2022-01-11",
"count": 1
},
{
"date": "2022-02-04",
"count": 1
},
{
"date": "2022-02-13",
"count": 1
},
{
"date": "2022-03-18",
"count": 1
},
{
"date": "2022-03-25",
"count": 1
},
{
"date": "2022-06-08",
"count": 1
},
{
"date": "2022-06-15",
"count": 1
},
{
"date": "2022-06-28",
"count": 1
},
{
"date": "2022-07-05",
"count": 1
},
{
"date": "2022-07-11",
"count": 1
},
{
"date": "2022-08-08",
"count": 2
},
{
"date": "2022-08-10",
"count": 1
},
{
"date": "2022-08-18",
"count": 1
},
{
"date": "2022-09-02",
"count": 1
},
{
"date": "2022-10-17",
"count": 1
},
{
"date": "2022-10-20",
"count": 1
},
{
"date": "2022-10-30",
"count": 1
},
{
"date": "2023-01-09",
"count": 1
},
{
"date": "2023-02-14",
"count": 1
},
{
"date": "2023-03-01",
"count": 1
},
{
"date": "2023-03-02",
"count": 1
},
{
"date": "2023-03-15",
"count": 1
},
{
"date": "2023-07-24",
"count": 1
},
{
"date": "2023-08-18",
"count": 1
},
{
"date": "2023-11-16",
"count": 1
},
{
"date": "2023-12-15",
"count": 1
},
{
"date": "2023-12-18",
"count": 1
},
{
"date": "2024-01-04",
"count": 2
},
{
"date": "2024-01-09",
"count": 1
},
{
"date": "2024-03-20",
"count": 1
},
{
"date": "2024-04-19",
"count": 1
},
{
"date": "2024-04-22",
"count": 1
},
{
"date": "2024-06-10",
"count": 1
},
{
"date": "2024-07-16",
"count": 1
},
{
"date": "2024-09-05",
"count": 1
},
{
"date": "2025-03-24",
"count": 1
},
{
"date": "2025-04-21",
"count": 1
},
{
"date": "2025-05-20",
"count": 2
},
{
"date": "2025-07-06",
"count": 1
},
{
"date": "2025-07-23",
"count": 1
},
{
"date": "2025-12-14",
"count": 1
},
{
"date": "2026-03-06",
"count": 1
},
{
"date": "2026-05-26",
"count": 1
},
{
"date": "2026-06-02",
"count": 1
},
{
"date": "2026-06-03",
"count": 1
},
{
"date": "2026-07-03",
"count": 1
}
],
"complete": true,
"collected": 566,
"total_forks": 612
},
"star_history": {
"days": [
{
"date": "2014-08-05",
"count": 1
},
{
"date": "2014-08-07",
"count": 1
},
{
"date": "2014-08-08",
"count": 1
},
{
"date": "2014-08-13",
"count": 1
},
{
"date": "2014-08-14",
"count": 1
},
{
"date": "2014-08-16",
"count": 2
},
{
"date": "2014-08-18",
"count": 2
},
{
"date": "2014-08-19",
"count": 1
},
{
"date": "2014-08-20",
"count": 1
},
{
"date": "2014-08-21",
"count": 1
},
{
"date": "2014-08-22",
"count": 2
},
{
"date": "2014-08-23",
"count": 1
},
{
"date": "2014-08-24",
"count": 1
},
{
"date": "2014-08-25",
"count": 2
},
{
"date": "2014-08-26",
"count": 1
},
{
"date": "2014-08-27",
"count": 1
},
{
"date": "2014-08-29",
"count": 1
},
{
"date": "2014-08-30",
"count": 1
},
{
"date": "2014-09-01",
"count": 1
},
{
"date": "2014-09-02",
"count": 2
},
{
"date": "2014-09-05",
"count": 2
},
{
"date": "2014-09-09",
"count": 1
},
{
"date": "2014-09-12",
"count": 2
},
{
"date": "2014-09-18",
"count": 1
},
{
"date": "2014-09-19",
"count": 2
},
{
"date": "2014-09-24",
"count": 1
},
{
"date": "2014-10-02",
"count": 1
},
{
"date": "2014-10-04",
"count": 1
},
{
"date": "2014-10-06",
"count": 1
},
{
"date": "2014-10-07",
"count": 1
},
{
"date": "2014-10-14",
"count": 1
},
{
"date": "2014-10-15",
"count": 1
},
{
"date": "2014-10-16",
"count": 1
},
{
"date": "2014-10-24",
"count": 3
},
{
"date": "2014-10-28",
"count": 1
},
{
"date": "2014-10-29",
"count": 2
},
{
"date": "2014-10-30",
"count": 1
},
{
"date": "2014-11-05",
"count": 2
},
{
"date": "2014-11-06",
"count": 1
},
{
"date": "2014-11-17",
"count": 1
},
{
"date": "2014-11-24",
"count": 1
},
{
"date": "2014-11-25",
"count": 3
},
{
"date": "2014-11-27",
"count": 1
},
{
"date": "2014-11-28",
"count": 1
},
{
"date": "2014-12-01",
"count": 1
},
{
"date": "2014-12-02",
"count": 1
},
{
"date": "2014-12-03",
"count": 1
},
{
"date": "2014-12-04",
"count": 1
},
{
"date": "2014-12-07",
"count": 1
},
{
"date": "2014-12-09",
"count": 1
},
{
"date": "2014-12-10",
"count": 2
},
{
"date": "2014-12-12",
"count": 1
},
{
"date": "2014-12-17",
"count": 1
},
{
"date": "2014-12-18",
"count": 1
},
{
"date": "2014-12-22",
"count": 1
},
{
"date": "2014-12-28",
"count": 1
},
{
"date": "2014-12-29",
"count": 1
},
{
"date": "2015-01-05",
"count": 1
},
{
"date": "2015-01-06",
"count": 1
},
{
"date": "2015-01-13",
"count": 1
},
{
"date": "2015-01-15",
"count": 1
},
{
"date": "2015-01-16",
"count": 1
},
{
"date": "2015-01-17",
"count": 1
},
{
"date": "2015-01-19",
"count": 1
},
{
"date": "2015-01-20",
"count": 2
},
{
"date": "2015-01-21",
"count": 1
},
{
"date": "2015-01-22",
"count": 1
},
{
"date": "2015-01-23",
"count": 1
},
{
"date": "2015-01-24",
"count": 1
},
{
"date": "2015-01-28",
"count": 1
},
{
"date": "2015-01-29",
"count": 1
},
{
"date": "2015-02-02",
"count": 1
},
{
"date": "2015-02-03",
"count": 1
},
{
"date": "2015-02-04",
"count": 4
},
{
"date": "2015-02-05",
"count": 2
},
{
"date": "2015-02-06",
"count": 1
},
{
"date": "2015-02-09",
"count": 1
},
{
"date": "2015-02-12",
"count": 1
},
{
"date": "2015-02-13",
"count": 1
},
{
"date": "2015-02-14",
"count": 2
},
{
"date": "2015-02-15",
"count": 1
},
{
"date": "2015-02-26",
"count": 2
},
{
"date": "2015-03-01",
"count": 1
},
{
"date": "2015-03-03",
"count": 1
},
{
"date": "2015-03-04",
"count": 1
},
{
"date": "2015-03-05",
"count": 2
},
{
"date": "2015-03-12",
"count": 1
},
{
"date": "2015-03-13",
"count": 1
},
{
"date": "2015-03-23",
"count": 1
},
{
"date": "2015-03-25",
"count": 2
},
{
"date": "2015-03-26",
"count": 1
},
{
"date": "2015-03-30",
"count": 1
},
{
"date": "2015-03-31",
"count": 1
},
{
"date": "2015-04-01",
"count": 2
},
{
"date": "2015-04-05",
"count": 1
},
{
"date": "2015-04-07",
"count": 2
},
{
"date": "2015-04-08",
"count": 2
},
{
"date": "2015-04-09",
"count": 1
},
{
"date": "2015-04-13",
"count": 1
},
{
"date": "2015-04-15",
"count": 1
},
{
"date": "2015-04-16",
"count": 2
},
{
"date": "2015-04-17",
"count": 1
},
{
"date": "2015-04-18",
"count": 1
},
{
"date": "2015-04-23",
"count": 2
},
{
"date": "2015-04-24",
"count": 1
},
{
"date": "2015-04-28",
"count": 1
},
{
"date": "2015-04-29",
"count": 1
},
{
"date": "2015-04-30",
"count": 1
},
{
"date": "2015-05-03",
"count": 1
},
{
"date": "2015-05-04",
"count": 1
},
{
"date": "2015-05-05",
"count": 1
},
{
"date": "2015-05-07",
"count": 1
},
{
"date": "2015-05-09",
"count": 1
},
{
"date": "2015-05-12",
"count": 1
},
{
"date": "2015-05-13",
"count": 2
},
{
"date": "2015-05-19",
"count": 3
},
{
"date": "2015-05-21",
"count": 1
},
{
"date": "2015-05-22",
"count": 1
},
{
"date": "2015-05-27",
"count": 1
},
{
"date": "2015-06-01",
"count": 1
},
{
"date": "2015-06-03",
"count": 1
},
{
"date": "2015-06-04",
"count": 1
},
{
"date": "2015-06-05",
"count": 2
},
{
"date": "2015-06-07",
"count": 1
},
{
"date": "2015-06-08",
"count": 1
},
{
"date": "2015-06-09",
"count": 1
},
{
"date": "2015-06-11",
"count": 1
},
{
"date": "2015-06-15",
"count": 2
},
{
"date": "2015-06-17",
"count": 1
},
{
"date": "2015-06-19",
"count": 2
},
{
"date": "2015-06-23",
"count": 1
},
{
"date": "2015-06-29",
"count": 1
},
{
"date": "2015-06-30",
"count": 1
},
{
"date": "2015-07-02",
"count": 2
},
{
"date": "2015-07-04",
"count": 1
},
{
"date": "2015-07-05",
"count": 1
},
{
"date": "2015-07-09",
"count": 1
},
{
"date": "2015-07-12",
"count": 1
},
{
"date": "2015-07-13",
"count": 2
},
{
"date": "2015-07-15",
"count": 1
},
{
"date": "2015-07-16",
"count": 1
},
{
"date": "2015-07-20",
"count": 1
},
{
"date": "2015-07-23",
"count": 1
},
{
"date": "2015-07-27",
"count": 1
},
{
"date": "2015-07-28",
"count": 2
},
{
"date": "2015-08-03",
"count": 1
},
{
"date": "2015-08-04",
"count": 1
},
{
"date": "2015-08-10",
"count": 1
},
{
"date": "2015-08-14",
"count": 2
},
{
"date": "2015-08-16",
"count": 1
},
{
"date": "2015-08-19",
"count": 1
},
{
"date": "2015-08-20",
"count": 1
},
{
"date": "2015-08-27",
"count": 1
},
{
"date": "2015-08-30",
"count": 1
},
{
"date": "2015-08-31",
"count": 1
},
{
"date": "2015-09-01",
"count": 1
},
{
"date": "2015-09-03",
"count": 1
},
{
"date": "2015-09-06",
"count": 1
},
{
"date": "2015-09-08",
"count": 1
},
{
"date": "2015-09-10",
"count": 1
},
{
"date": "2015-09-15",
"count": 1
},
{
"date": "2015-09-24",
"count": 1
},
{
"date": "2015-09-28",
"count": 2
},
{
"date": "2015-09-30",
"count": 1
},
{
"date": "2015-10-01",
"count": 1
},
{
"date": "2015-10-04",
"count": 1
},
{
"date": "2015-10-05",
"count": 1
},
{
"date": "2015-10-12",
"count": 2
},
{
"date": "2015-10-13",
"count": 1
},
{
"date": "2015-10-15",
"count": 2
},
{
"date": "2015-10-23",
"count": 2
},
{
"date": "2015-10-24",
"count": 1
},
{
"date": "2015-10-25",
"count": 1
},
{
"date": "2015-10-26",
"count": 1
},
{
"date": "2015-10-27",
"count": 2
},
{
"date": "2015-10-28",
"count": 1
},
{
"date": "2015-10-29",
"count": 2
},
{
"date": "2015-10-30",
"count": 1
},
{
"date": "2015-11-03",
"count": 1
},
{
"date": "2015-11-04",
"count": 1
},
{
"date": "2015-11-09",
"count": 1
},
{
"date": "2015-11-12",
"count": 3
},
{
"date": "2015-11-16",
"count": 1
},
{
"date": "2015-11-17",
"count": 1
},
{
"date": "2015-11-18",
"count": 1
},
{
"date": "2015-11-19",
"count": 3
},
{
"date": "2015-11-23",
"count": 1
},
{
"date": "2015-11-24",
"count": 1
},
{
"date": "2015-11-25",
"count": 1
},
{
"date": "2015-11-30",
"count": 2
},
{
"date": "2015-12-05",
"count": 1
},
{
"date": "2015-12-06",
"count": 1
},
{
"date": "2015-12-07",
"count": 1
},
{
"date": "2015-12-08",
"count": 1
},
{
"date": "2015-12-09",
"count": 1
},
{
"date": "2015-12-10",
"count": 1
},
{
"date": "2015-12-16",
"count": 1
},
{
"date": "2015-12-17",
"count": 2
},
{
"date": "2015-12-21",
"count": 1
},
{
"date": "2015-12-22",
"count": 2
},
{
"date": "2015-12-23",
"count": 1
},
{
"date": "2016-01-05",
"count": 1
},
{
"date": "2016-01-11",
"count": 2
},
{
"date": "2016-01-19",
"count": 1
},
{
"date": "2016-01-21",
"count": 1
},
{
"date": "2016-01-22",
"count": 1
},
{
"date": "2016-01-24",
"count": 1
},
{
"date": "2016-01-25",
"count": 1
},
{
"date": "2016-01-27",
"count": 1
},
{
"date": "2016-02-01",
"count": 1
},
{
"date": "2016-02-03",
"count": 1
},
{
"date": "2016-02-04",
"count": 1
},
{
"date": "2016-02-14",
"count": 1
},
{
"date": "2016-02-18",
"count": 3
},
{
"date": "2016-02-23",
"count": 2
},
{
"date": "2016-02-28",
"count": 1
},
{
"date": "2016-02-29",
"count": 2
},
{
"date": "2016-03-01",
"count": 1
},
{
"date": "2016-03-02",
"count": 1
},
{
"date": "2016-03-03",
"count": 2
},
{
"date": "2016-03-04",
"count": 1
},
{
"date": "2016-03-05",
"count": 1
},
{
"date": "2016-03-07",
"count": 1
},
{
"date": "2016-03-10",
"count": 4
},
{
"date": "2016-03-14",
"count": 2
},
{
"date": "2016-03-16",
"count": 1
},
{
"date": "2016-03-17",
"count": 1
},
{
"date": "2016-03-21",
"count": 1
},
{
"date": "2016-03-27",
"count": 2
},
{
"date": "2016-04-01",
"count": 3
},
{
"date": "2016-04-05",
"count": 1
},
{
"date": "2016-04-07",
"count": 1
},
{
"date": "2016-04-09",
"count": 1
},
{
"date": "2016-04-12",
"count": 2
},
{
"date": "2016-04-13",
"count": 1
},
{
"date": "2016-04-14",
"count": 1
},
{
"date": "2016-04-18",
"count": 3
},
{
"date": "2016-04-21",
"count": 1
},
{
"date": "2016-04-26",
"count": 1
},
{
"date": "2016-04-27",
"count": 2
},
{
"date": "2016-05-03",
"count": 1
},
{
"date": "2016-05-04",
"count": 1
},
{
"date": "2016-05-09",
"count": 3
},
{
"date": "2016-05-13",
"count": 1
},
{
"date": "2016-05-16",
"count": 2
},
{
"date": "2016-05-18",
"count": 1
},
{
"date": "2016-05-25",
"count": 1
},
{
"date": "2016-05-29",
"count": 1
},
{
"date": "2016-06-02",
"count": 2
},
{
"date": "2016-06-06",
"count": 2
},
{
"date": "2016-06-07",
"count": 1
},
{
"date": "2016-06-16",
"count": 1
},
{
"date": "2016-06-22",
"count": 1
},
{
"date": "2016-06-23",
"count": 1
},
{
"date": "2016-06-27",
"count": 2
},
{
"date": "2016-07-05",
"count": 1
},
{
"date": "2016-07-06",
"count": 1
},
{
"date": "2016-07-09",
"count": 1
},
{
"date": "2016-07-11",
"count": 1
},
{
"date": "2016-07-12",
"count": 3
},
{
"date": "2016-07-14",
"count": 1
},
{
"date": "2016-07-15",
"count": 1
},
{
"date": "2016-07-18",
"count": 1
},
{
"date": "2016-07-19",
"count": 1
},
{
"date": "2016-07-21",
"count": 1
},
{
"date": "2016-07-24",
"count": 1
},
{
"date": "2016-07-27",
"count": 1
},
{
"date": "2016-08-01",
"count": 2
},
{
"date": "2016-08-02",
"count": 2
},
{
"date": "2016-08-03",
"count": 1
},
{
"date": "2016-08-09",
"count": 1
},
{
"date": "2016-08-10",
"count": 1
},
{
"date": "2016-08-11",
"count": 1
},
{
"date": "2016-08-12",
"count": 2
},
{
"date": "2016-08-18",
"count": 1
},
{
"date": "2016-08-19",
"count": 1
},
{
"date": "2016-08-22",
"count": 1
},
{
"date": "2016-08-26",
"count": 1
},
{
"date": "2016-08-29",
"count": 1
},
{
"date": "2016-08-30",
"count": 1
},
{
"date": "2016-08-31",
"count": 1
},
{
"date": "2016-09-01",
"count": 1
},
{
"date": "2016-09-03",
"count": 1
},
{
"date": "2016-09-14",
"count": 1
},
{
"date": "2016-09-15",
"count": 2
},
{
"date": "2016-09-19",
"count": 2
},
{
"date": "2016-09-21",
"count": 1
},
{
"date": "2016-09-25",
"count": 1
},
{
"date": "2016-09-28",
"count": 1
},
{
"date": "2016-09-29",
"count": 1
},
{
"date": "2016-09-30",
"count": 1
},
{
"date": "2016-10-03",
"count": 1
},
{
"date": "2016-10-06",
"count": 2
},
{
"date": "2016-10-10",
"count": 1
},
{
"date": "2016-10-11",
"count": 2
},
{
"date": "2016-10-15",
"count": 1
},
{
"date": "2016-10-17",
"count": 3
},
{
"date": "2016-10-18",
"count": 1
},
{
"date": "2016-10-21",
"count": 1
},
{
"date": "2016-10-25",
"count": 1
},
{
"date": "2016-10-26",
"count": 1
},
{
"date": "2016-10-28",
"count": 1
},
{
"date": "2016-11-01",
"count": 2
},
{
"date": "2016-11-02",
"count": 1
},
{
"date": "2016-11-03",
"count": 2
},
{
"date": "2016-11-04",
"count": 1
},
{
"date": "2016-11-05",
"count": 1
},
{
"date": "2016-11-08",
"count": 2
},
{
"date": "2016-11-16",
"count": 2
},
{
"date": "2016-11-29",
"count": 2
},
{
"date": "2016-12-06",
"count": 1
},
{
"date": "2016-12-08",
"count": 1
},
{
"date": "2016-12-09",
"count": 1
},
{
"date": "2016-12-12",
"count": 1
},
{
"date": "2016-12-22",
"count": 1
},
{
"date": "2016-12-23",
"count": 1
},
{
"date": "2016-12-26",
"count": 1
},
{
"date": "2017-01-02",
"count": 2
},
{
"date": "2017-01-04",
"count": 1
},
{
"date": "2017-01-10",
"count": 3
},
{
"date": "2017-01-11",
"count": 1
},
{
"date": "2017-01-12",
"count": 2
},
{
"date": "2017-01-13",
"count": 1
},
{
"date": "2017-01-15",
"count": 1
},
{
"date": "2017-01-18",
"count": 1
},
{
"date": "2017-01-20",
"count": 2
},
{
"date": "2017-01-24",
"count": 2
},
{
"date": "2017-01-26",
"count": 1
},
{
"date": "2017-01-30",
"count": 1
},
{
"date": "2017-01-31",
"count": 1
},
{
"date": "2017-02-02",
"count": 3
},
{
"date": "2017-02-09",
"count": 1
},
{
"date": "2017-02-13",
"count": 1
},
{
"date": "2017-02-14",
"count": 1
},
{
"date": "2017-02-18",
"count": 1
},
{
"date": "2017-02-21",
"count": 1
},
{
"date": "2017-02-23",
"count": 1
},
{
"date": "2017-02-28",
"count": 1
},
{
"date": "2017-03-02",
"count": 2
},
{
"date": "2017-03-03",
"count": 1
},
{
"date": "2017-03-06",
"count": 2
},
{
"date": "2017-03-08",
"count": 2
},
{
"date": "2017-03-09",
"count": 1
},
{
"date": "2017-03-15",
"count": 1
},
{
"date": "2017-03-16",
"count": 1
},
{
"date": "2017-03-17",
"count": 1
},
{
"date": "2017-03-22",
"count": 2
},
{
"date": "2017-03-23",
"count": 1
},
{
"date": "2017-03-24",
"count": 1
},
{
"date": "2017-03-28",
"count": 1
},
{
"date": "2017-03-30",
"count": 1
},
{
"date": "2017-04-07",
"count": 3
},
{
"date": "2017-04-10",
"count": 1
},
{
"date": "2017-04-13",
"count": 1
},
{
"date": "2017-04-28",
"count": 1
},
{
"date": "2017-05-04",
"count": 1
},
{
"date": "2017-05-07",
"count": 1
},
{
"date": "2017-05-08",
"count": 2
},
{
"date": "2017-05-11",
"count": 1
},
{
"date": "2017-05-18",
"count": 1
},
{
"date": "2017-05-23",
"count": 1
},
{
"date": "2017-05-24",
"count": 1
},
{
"date": "2017-05-30",
"count": 2
},
{
"date": "2017-06-05",
"count": 1
},
{
"date": "2017-06-08",
"count": 2
},
{
"date": "2017-06-11",
"count": 1
},
{
"date": "2017-06-12",
"count": 1
},
{
"date": "2017-06-15",
"count": 1
},
{
"date": "2017-06-16",
"count": 1
},
{
"date": "2017-06-22",
"count": 1
},
{
"date": "2017-06-26",
"count": 1
},
{
"date": "2017-06-27",
"count": 1
},
{
"date": "2017-06-30",
"count": 1
},
{
"date": "2017-07-05",
"count": 1
},
{
"date": "2017-07-06",
"count": 1
},
{
"date": "2017-07-11",
"count": 1
},
{
"date": "2017-07-16",
"count": 1
},
{
"date": "2017-07-21",
"count": 2
},
{
"date": "2017-07-24",
"count": 1
},
{
"date": "2017-07-25",
"count": 2
},
{
"date": "2017-07-27",
"count": 1
},
{
"date": "2017-07-31",
"count": 2
},
{
"date": "2017-08-01",
"count": 2
},
{
"date": "2017-08-04",
"count": 2
},
{
"date": "2017-08-07",
"count": 2
},
{
"date": "2017-08-08",
"count": 2
},
{
"date": "2017-08-16",
"count": 2
},
{
"date": "2017-09-04",
"count": 1
},
{
"date": "2017-09-05",
"count": 2
},
{
"date": "2017-09-06",
"count": 2
},
{
"date": "2017-09-08",
"count": 2
},
{
"date": "2017-09-10",
"count": 1
},
{
"date": "2017-09-12",
"count": 2
},
{
"date": "2017-09-13",
"count": 1
},
{
"date": "2017-09-19",
"count": 2
},
{
"date": "2017-09-20",
"count": 2
},
{
"date": "2017-09-21",
"count": 2
},
{
"date": "2017-09-25",
"count": 1
},
{
"date": "2017-09-29",
"count": 1
},
{
"date": "2017-10-05",
"count": 2
},
{
"date": "2017-10-10",
"count": 1
},
{
"date": "2017-10-13",
"count": 1
},
{
"date": "2017-10-20",
"count": 1
},
{
"date": "2017-10-24",
"count": 1
},
{
"date": "2017-10-26",
"count": 1
},
{
"date": "2017-10-28",
"count": 1
},
{
"date": "2017-11-03",
"count": 1
},
{
"date": "2017-11-04",
"count": 1
},
{
"date": "2017-11-14",
"count": 1
},
{
"date": "2017-11-17",
"count": 1
},
{
"date": "2017-11-28",
"count": 1
},
{
"date": "2017-11-29",
"count": 1
},
{
"date": "2017-12-04",
"count": 1
},
{
"date": "2017-12-05",
"count": 2
},
{
"date": "2017-12-06",
"count": 1
},
{
"date": "2017-12-11",
"count": 1
},
{
"date": "2017-12-12",
"count": 1
},
{
"date": "2017-12-14",
"count": 2
},
{
"date": "2017-12-16",
"count": 1
},
{
"date": "2017-12-21",
"count": 2
},
{
"date": "2017-12-30",
"count": 1
},
{
"date": "2018-01-08",
"count": 1
},
{
"date": "2018-01-11",
"count": 1
},
{
"date": "2018-01-17",
"count": 1
},
{
"date": "2018-01-18",
"count": 1
},
{
"date": "2018-01-23",
"count": 1
},
{
"date": "2018-01-25",
"count": 1
},
{
"date": "2018-02-03",
"count": 1
},
{
"date": "2018-02-06",
"count": 1
},
{
"date": "2018-02-07",
"count": 2
},
{
"date": "2018-02-09",
"count": 1
},
{
"date": "2018-02-11",
"count": 1
},
{
"date": "2018-02-12",
"count": 1
},
{
"date": "2018-02-14",
"count": 1
},
{
"date": "2018-02-21",
"count": 1
},
{
"date": "2018-02-22",
"count": 1
},
{
"date": "2018-02-25",
"count": 1
},
{
"date": "2018-02-26",
"count": 1
},
{
"date": "2018-02-27",
"count": 2
},
{
"date": "2018-03-04",
"count": 1
},
{
"date": "2018-03-05",
"count": 1
},
{
"date": "2018-03-06",
"count": 3
},
{
"date": "2018-03-19",
"count": 1
},
{
"date": "2018-03-21",
"count": 1
},
{
"date": "2018-03-23",
"count": 1
},
{
"date": "2018-03-26",
"count": 1
},
{
"date": "2018-03-29",
"count": 1
},
{
"date": "2018-04-03",
"count": 1
},
{
"date": "2018-04-16",
"count": 1
},
{
"date": "2018-04-24",
"count": 1
},
{
"date": "2018-04-26",
"count": 1
},
{
"date": "2018-04-29",
"count": 1
},
{
"date": "2018-04-30",
"count": 1
},
{
"date": "2018-05-07",
"count": 1
},
{
"date": "2018-05-09",
"count": 1
},
{
"date": "2018-05-14",
"count": 1
},
{
"date": "2018-05-19",
"count": 1
},
{
"date": "2018-05-23",
"count": 1
},
{
"date": "2018-05-28",
"count": 1
},
{
"date": "2018-06-01",
"count": 1
},
{
"date": "2018-06-04",
"count": 2
},
{
"date": "2018-06-05",
"count": 1
},
{
"date": "2018-06-08",
"count": 1
},
{
"date": "2018-06-12",
"count": 1
},
{
"date": "2018-06-15",
"count": 1
},
{
"date": "2018-06-19",
"count": 1
},
{
"date": "2018-06-20",
"count": 1
},
{
"date": "2018-06-26",
"count": 2
},
{
"date": "2018-06-27",
"count": 1
},
{
"date": "2018-06-29",
"count": 1
},
{
"date": "2018-07-03",
"count": 1
},
{
"date": "2018-07-04",
"count": 1
},
{
"date": "2018-07-06",
"count": 1
},
{
"date": "2018-07-18",
"count": 1
},
{
"date": "2018-07-20",
"count": 1
},
{
"date": "2018-07-24",
"count": 1
},
{
"date": "2018-07-25",
"count": 2
},
{
"date": "2018-07-31",
"count": 1
},
{
"date": "2018-08-03",
"count": 1
},
{
"date": "2018-08-06",
"count": 1
},
{
"date": "2018-08-08",
"count": 2
},
{
"date": "2018-08-09",
"count": 1
},
{
"date": "2018-08-10",
"count": 1
},
{
"date": "2018-08-11",
"count": 1
},
{
"date": "2018-08-13",
"count": 1
},
{
"date": "2018-08-14",
"count": 1
},
{
"date": "2018-08-28",
"count": 1
},
{
"date": "2018-08-29",
"count": 1
},
{
"date": "2018-09-05",
"count": 1
},
{
"date": "2018-09-06",
"count": 1
},
{
"date": "2018-09-07",
"count": 1
},
{
"date": "2018-09-11",
"count": 1
},
{
"date": "2018-09-13",
"count": 1
},
{
"date": "2018-09-14",
"count": 1
},
{
"date": "2018-09-15",
"count": 1
},
{
"date": "2018-09-18",
"count": 1
},
{
"date": "2018-09-19",
"count": 3
},
{
"date": "2018-09-27",
"count": 1
},
{
"date": "2018-09-29",
"count": 1
},
{
"date": "2018-10-03",
"count": 2
},
{
"date": "2018-10-08",
"count": 1
},
{
"date": "2018-10-11",
"count": 1
},
{
"date": "2018-10-24",
"count": 1
},
{
"date": "2018-10-26",
"count": 1
},
{
"date": "2018-10-30",
"count": 1
},
{
"date": "2018-11-02",
"count": 1
},
{
"date": "2018-11-05",
"count": 2
},
{
"date": "2018-11-08",
"count": 2
},
{
"date": "2018-11-13",
"count": 1
},
{
"date": "2018-11-14",
"count": 1
},
{
"date": "2018-11-17",
"count": 2
},
{
"date": "2018-11-18",
"count": 1
},
{
"date": "2018-11-20",
"count": 1
},
{
"date": "2018-11-24",
"count": 1
},
{
"date": "2018-11-27",
"count": 1
},
{
"date": "2018-12-03",
"count": 2
},
{
"date": "2018-12-10",
"count": 1
},
{
"date": "2018-12-15",
"count": 1
},
{
"date": "2018-12-16",
"count": 1
},
{
"date": "2018-12-17",
"count": 2
},
{
"date": "2018-12-18",
"count": 1
},
{
"date": "2019-01-03",
"count": 2
},
{
"date": "2019-01-06",
"count": 1
},
{
"date": "2019-01-08",
"count": 1
},
{
"date": "2019-01-09",
"count": 1
},
{
"date": "2019-01-11",
"count": 1
},
{
"date": "2019-01-18",
"count": 1
},
{
"date": "2019-01-22",
"count": 1
},
{
"date": "2019-01-24",
"count": 2
},
{
"date": "2019-02-06",
"count": 2
},
{
"date": "2019-02-09",
"count": 2
},
{
"date": "2019-02-15",
"count": 1
},
{
"date": "2019-02-16",
"count": 1
},
{
"date": "2019-02-18",
"count": 1
},
{
"date": "2019-02-20",
"count": 1
},
{
"date": "2019-02-27",
"count": 1
},
{
"date": "2019-03-16",
"count": 1
},
{
"date": "2019-03-20",
"count": 1
},
{
"date": "2019-03-21",
"count": 1
},
{
"date": "2019-03-26",
"count": 1
},
{
"date": "2019-03-27",
"count": 2
},
{
"date": "2019-04-08",
"count": 1
},
{
"date": "2019-04-11",
"count": 1
},
{
"date": "2019-04-13",
"count": 1
},
{
"date": "2019-04-15",
"count": 1
},
{
"date": "2019-04-24",
"count": 2
},
{
"date": "2019-04-29",
"count": 1
},
{
"date": "2019-04-30",
"count": 1
},
{
"date": "2019-05-08",
"count": 1
},
{
"date": "2019-05-27",
"count": 1
},
{
"date": "2019-05-31",
"count": 1
},
{
"date": "2019-06-04",
"count": 1
},
{
"date": "2019-06-21",
"count": 2
},
{
"date": "2019-06-26",
"count": 1
},
{
"date": "2019-07-01",
"count": 1
},
{
"date": "2019-07-07",
"count": 1
},
{
"date": "2019-07-08",
"count": 1
},
{
"date": "2019-07-11",
"count": 2
},
{
"date": "2019-07-22",
"count": 1
},
{
"date": "2019-07-31",
"count": 2
},
{
"date": "2019-08-02",
"count": 1
},
{
"date": "2019-08-03",
"count": 1
},
{
"date": "2019-08-06",
"count": 1
},
{
"date": "2019-08-07",
"count": 1
},
{
"date": "2019-08-10",
"count": 1
},
{
"date": "2019-08-11",
"count": 1
},
{
"date": "2019-08-12",
"count": 1
},
{
"date": "2019-08-14",
"count": 1
},
{
"date": "2019-08-15",
"count": 1
},
{
"date": "2019-08-16",
"count": 1
},
{
"date": "2019-08-19",
"count": 1
},
{
"date": "2019-08-20",
"count": 1
},
{
"date": "2019-08-21",
"count": 1
},
{
"date": "2019-08-22",
"count": 1
},
{
"date": "2019-08-27",
"count": 1
},
{
"date": "2019-09-03",
"count": 1
},
{
"date": "2019-09-04",
"count": 1
},
{
"date": "2019-09-05",
"count": 2
},
{
"date": "2019-09-09",
"count": 1
},
{
"date": "2019-09-10",
"count": 1
},
{
"date": "2019-09-23",
"count": 1
},
{
"date": "2019-09-27",
"count": 1
},
{
"date": "2019-09-30",
"count": 1
},
{
"date": "2019-10-02",
"count": 1
},
{
"date": "2019-10-03",
"count": 1
},
{
"date": "2019-10-11",
"count": 1
},
{
"date": "2019-10-23",
"count": 1
},
{
"date": "2019-10-24",
"count": 1
},
{
"date": "2019-10-26",
"count": 1
},
{
"date": "2019-10-28",
"count": 1
},
{
"date": "2019-10-31",
"count": 1
},
{
"date": "2019-11-02",
"count": 1
},
{
"date": "2019-11-10",
"count": 1
},
{
"date": "2019-11-11",
"count": 1
},
{
"date": "2019-11-13",
"count": 1
},
{
"date": "2019-11-15",
"count": 1
},
{
"date": "2019-11-21",
"count": 1
},
{
"date": "2019-11-25",
"count": 1
},
{
"date": "2019-12-02",
"count": 1
},
{
"date": "2019-12-10",
"count": 1
},
{
"date": "2019-12-19",
"count": 1
},
{
"date": "2020-01-02",
"count": 1
},
{
"date": "2020-01-09",
"count": 1
},
{
"date": "2020-01-10",
"count": 1
},
{
"date": "2020-01-15",
"count": 1
},
{
"date": "2020-01-22",
"count": 1
},
{
"date": "2020-02-09",
"count": 1
},
{
"date": "2020-02-28",
"count": 1
},
{
"date": "2020-03-01",
"count": 1
},
{
"date": "2020-03-09",
"count": 1
},
{
"date": "2020-03-26",
"count": 1
},
{
"date": "2020-03-27",
"count": 1
},
{
"date": "2020-03-29",
"count": 1
},
{
"date": "2020-04-09",
"count": 1
},
{
"date": "2020-04-10",
"count": 1
},
{
"date": "2020-04-13",
"count": 1
},
{
"date": "2020-04-17",
"count": 1
},
{
"date": "2020-04-27",
"count": 1
},
{
"date": "2020-04-28",
"count": 1
},
{
"date": "2020-05-02",
"count": 1
},
{
"date": "2020-05-21",
"count": 1
},
{
"date": "2020-05-22",
"count": 1
},
{
"date": "2020-05-23",
"count": 1
},
{
"date": "2020-06-02",
"count": 1
},
{
"date": "2020-06-05",
"count": 1
},
{
"date": "2020-06-09",
"count": 1
},
{
"date": "2020-06-11",
"count": 1
},
{
"date": "2020-06-17",
"count": 1
},
{
"date": "2020-06-25",
"count": 1
},
{
"date": "2020-06-30",
"count": 1
},
{
"date": "2020-07-01",
"count": 1
},
{
"date": "2020-07-03",
"count": 1
},
{
"date": "2020-07-06",
"count": 1
},
{
"date": "2020-07-20",
"count": 1
},
{
"date": "2020-07-21",
"count": 1
},
{
"date": "2020-07-23",
"count": 1
},
{
"date": "2020-07-30",
"count": 1
},
{
"date": "2020-08-06",
"count": 2
},
{
"date": "2020-08-24",
"count": 1
},
{
"date": "2020-09-11",
"count": 1
},
{
"date": "2020-09-12",
"count": 1
},
{
"date": "2020-09-14",
"count": 1
},
{
"date": "2020-09-17",
"count": 1
},
{
"date": "2020-09-21",
"count": 1
},
{
"date": "2020-10-05",
"count": 1
},
{
"date": "2020-10-20",
"count": 1
},
{
"date": "2020-10-28",
"count": 1
},
{
"date": "2020-10-31",
"count": 1
},
{
"date": "2020-11-08",
"count": 1
},
{
"date": "2020-11-18",
"count": 1
},
{
"date": "2020-11-23",
"count": 1
},
{
"date": "2020-12-01",
"count": 1
},
{
"date": "2020-12-15",
"count": 1
},
{
"date": "2020-12-21",
"count": 1
},
{
"date": "2020-12-26",
"count": 1
},
{
"date": "2021-01-06",
"count": 1
},
{
"date": "2021-01-07",
"count": 1
},
{
"date": "2021-01-20",
"count": 1
},
{
"date": "2021-01-21",
"count": 1
},
{
"date": "2021-01-26",
"count": 1
},
{
"date": "2021-01-27",
"count": 1
},
{
"date": "2021-02-03",
"count": 1
},
{
"date": "2021-02-08",
"count": 1
},
{
"date": "2021-02-09",
"count": 1
},
{
"date": "2021-02-18",
"count": 1
},
{
"date": "2021-02-21",
"count": 1
},
{
"date": "2021-02-22",
"count": 1
},
{
"date": "2021-02-26",
"count": 1
},
{
"date": "2021-03-01",
"count": 1
},
{
"date": "2021-03-02",
"count": 1
},
{
"date": "2021-03-05",
"count": 1
},
{
"date": "2021-03-12",
"count": 1
},
{
"date": "2021-03-19",
"count": 1
},
{
"date": "2021-04-02",
"count": 1
},
{
"date": "2021-04-07",
"count": 1
},
{
"date": "2021-04-12",
"count": 1
},
{
"date": "2021-04-14",
"count": 1
},
{
"date": "2021-04-28",
"count": 1
},
{
"date": "2021-05-06",
"count": 1
},
{
"date": "2021-05-09",
"count": 1
},
{
"date": "2021-05-10",
"count": 1
},
{
"date": "2021-05-19",
"count": 1
},
{
"date": "2021-05-28",
"count": 1
},
{
"date": "2021-05-29",
"count": 1
},
{
"date": "2021-06-01",
"count": 2
},
{
"date": "2021-06-09",
"count": 1
},
{
"date": "2021-06-11",
"count": 1
},
{
"date": "2021-06-12",
"count": 1
},
{
"date": "2021-06-17",
"count": 2
},
{
"date": "2021-06-18",
"count": 1
},
{
"date": "2021-06-24",
"count": 1
},
{
"date": "2021-07-02",
"count": 1
},
{
"date": "2021-07-09",
"count": 1
},
{
"date": "2021-07-11",
"count": 1
},
{
"date": "2021-07-21",
"count": 1
},
{
"date": "2021-07-26",
"count": 1
},
{
"date": "2021-07-27",
"count": 2
},
{
"date": "2021-07-29",
"count": 1
},
{
"date": "2021-08-08",
"count": 1
},
{
"date": "2021-08-10",
"count": 1
},
{
"date": "2021-08-25",
"count": 1
},
{
"date": "2021-08-26",
"count": 2
},
{
"date": "2021-09-08",
"count": 1
},
{
"date": "2021-11-01",
"count": 1
},
{
"date": "2021-11-06",
"count": 1
},
{
"date": "2021-11-14",
"count": 1
},
{
"date": "2021-11-29",
"count": 1
},
{
"date": "2021-12-17",
"count": 1
},
{
"date": "2021-12-24",
"count": 1
},
{
"date": "2022-01-05",
"count": 1
},
{
"date": "2022-01-10",
"count": 1
},
{
"date": "2022-01-11",
"count": 1
},
{
"date": "2022-01-14",
"count": 1
},
{
"date": "2022-01-28",
"count": 1
},
{
"date": "2022-02-08",
"count": 1
},
{
"date": "2022-02-18",
"count": 1
},
{
"date": "2022-03-15",
"count": 1
},
{
"date": "2022-03-18",
"count": 1
},
{
"date": "2022-03-22",
"count": 1
},
{
"date": "2022-04-11",
"count": 1
},
{
"date": "2022-04-19",
"count": 1
},
{
"date": "2022-05-10",
"count": 1
},
{
"date": "2022-05-21",
"count": 1
},
{
"date": "2022-07-13",
"count": 1
},
{
"date": "2022-07-21",
"count": 1
},
{
"date": "2022-07-29",
"count": 1
},
{
"date": "2022-08-03",
"count": 1
},
{
"date": "2022-08-04",
"count": 1
},
{
"date": "2022-08-08",
"count": 1
},
{
"date": "2022-08-09",
"count": 1
},
{
"date": "2022-08-18",
"count": 1
},
{
"date": "2022-08-30",
"count": 1
},
{
"date": "2022-09-08",
"count": 1
},
{
"date": "2022-09-09",
"count": 1
},
{
"date": "2022-09-12",
"count": 1
},
{
"date": "2022-10-02",
"count": 1
},
{
"date": "2022-10-06",
"count": 1
},
{
"date": "2022-10-10",
"count": 1
},
{
"date": "2022-10-20",
"count": 1
},
{
"date": "2022-10-28",
"count": 1
},
{
"date": "2022-11-07",
"count": 1
},
{
"date": "2022-11-10",
"count": 1
},
{
"date": "2022-11-21",
"count": 1
},
{
"date": "2022-12-21",
"count": 1
},
{
"date": "2022-12-27",
"count": 1
},
{
"date": "2023-01-03",
"count": 1
},
{
"date": "2023-02-22",
"count": 2
},
{
"date": "2023-03-11",
"count": 1
},
{
"date": "2023-03-12",
"count": 2
},
{
"date": "2023-03-14",
"count": 1
},
{
"date": "2023-03-16",
"count": 1
},
{
"date": "2023-03-17",
"count": 1
},
{
"date": "2023-04-04",
"count": 1
},
{
"date": "2023-04-10",
"count": 1
},
{
"date": "2023-04-18",
"count": 1
},
{
"date": "2023-04-19",
"count": 1
},
{
"date": "2023-04-21",
"count": 1
},
{
"date": "2023-04-22",
"count": 2
},
{
"date": "2023-05-22",
"count": 1
},
{
"date": "2023-05-25",
"count": 1
},
{
"date": "2023-06-07",
"count": 1
},
{
"date": "2023-06-27",
"count": 1
},
{
"date": "2023-08-10",
"count": 1
},
{
"date": "2023-08-17",
"count": 1
},
{
"date": "2023-09-29",
"count": 1
},
{
"date": "2023-10-06",
"count": 1
},
{
"date": "2023-10-18",
"count": 1
},
{
"date": "2023-11-03",
"count": 1
},
{
"date": "2023-11-30",
"count": 1
},
{
"date": "2023-12-14",
"count": 1
},
{
"date": "2024-01-16",
"count": 1
},
{
"date": "2024-02-06",
"count": 1
},
{
"date": "2024-02-20",
"count": 2
},
{
"date": "2024-02-28",
"count": 1
},
{
"date": "2024-03-01",
"count": 1
},
{
"date": "2024-03-06",
"count": 1
},
{
"date": "2024-03-07",
"count": 1
},
{
"date": "2024-03-08",
"count": 1
},
{
"date": "2024-03-11",
"count": 1
},
{
"date": "2024-03-12",
"count": 1
},
{
"date": "2024-03-13",
"count": 1
},
{
"date": "2024-03-19",
"count": 1
},
{
"date": "2024-03-27",
"count": 1
},
{
"date": "2024-04-22",
"count": 1
},
{
"date": "2024-04-24",
"count": 1
},
{
"date": "2024-05-06",
"count": 1
},
{
"date": "2024-05-22",
"count": 1
},
{
"date": "2024-06-25",
"count": 1
},
{
"date": "2024-07-02",
"count": 1
},
{
"date": "2024-07-06",
"count": 1
},
{
"date": "2024-07-10",
"count": 3
},
{
"date": "2024-07-16",
"count": 1
},
{
"date": "2024-07-29",
"count": 1
},
{
"date": "2024-07-31",
"count": 1
},
{
"date": "2024-09-16",
"count": 1
},
{
"date": "2024-10-16",
"count": 1
},
{
"date": "2024-10-21",
"count": 1
},
{
"date": "2024-11-01",
"count": 1
},
{
"date": "2024-11-06",
"count": 2
},
{
"date": "2024-11-16",
"count": 1
},
{
"date": "2024-11-18",
"count": 1
},
{
"date": "2024-11-20",
"count": 1
},
{
"date": "2024-12-10",
"count": 1
},
{
"date": "2025-02-03",
"count": 1
},
{
"date": "2025-02-25",
"count": 1
},
{
"date": "2025-04-13",
"count": 2
},
{
"date": "2025-05-07",
"count": 1
},
{
"date": "2025-07-03",
"count": 1
},
{
"date": "2025-07-08",
"count": 1
},
{
"date": "2025-07-27",
"count": 1
},
{
"date": "2025-09-06",
"count": 1
},
{
"date": "2025-10-01",
"count": 1
},
{
"date": "2025-10-16",
"count": 1
},
{
"date": "2025-11-19",
"count": 1
},
{
"date": "2025-12-01",
"count": 1
},
{
"date": "2026-01-05",
"count": 1
},
{
"date": "2026-01-09",
"count": 1
},
{
"date": "2026-01-29",
"count": 1
},
{
"date": "2026-02-05",
"count": 1
},
{
"date": "2026-02-17",
"count": 1
},
{
"date": "2026-03-07",
"count": 1
},
{
"date": "2026-05-05",
"count": 1
},
{
"date": "2026-05-23",
"count": 1
},
{
"date": "2026-05-24",
"count": 1
},
{
"date": "2026-05-25",
"count": 7
},
{
"date": "2026-05-30",
"count": 1
},
{
"date": "2026-06-02",
"count": 1
},
{
"date": "2026-06-30",
"count": 1
}
],
"complete": false,
"collected": 1000,
"total_stars": 2086
},
"open_issues_and_prs": 12
},
"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": true,
"typecheck_configs": [],
"toolchain_manifests": [],
"largest_source_bytes": 45722,
"source_files_sampled": 64,
"oversized_source_files": 0,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"dependencies": {
"manifests": [
"Gemfile"
],
"advisories": {
"error": "No resolved dependencies carried a version and a supported ecosystem",
"scope": "repository_graph",
"source": null,
"findings": [],
"collected": false,
"malicious": [],
"truncated": false,
"by_severity": {},
"advisory_count": 0,
"affected_count": 0,
"assessed_count": 0,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 26,
"direct_affected_count": 0
},
"ecosystems": [
"rubygems"
],
"dependencies": [
{
"name": "faraday",
"manifest": "Gemfile",
"ecosystem": "rubygems",
"version_constraint": "~> 2.14"
},
{
"name": "faraday-digestauth",
"manifest": "Gemfile",
"ecosystem": "rubygems",
"version_constraint": "~> 0.4"
},
{
"name": "faraday-follow_redirects",
"manifest": "Gemfile",
"ecosystem": "rubygems",
"version_constraint": "~> 0.5"
},
{
"name": "faraday-ntlm_auth",
"manifest": "Gemfile",
"ecosystem": "rubygems",
"version_constraint": "~> 0.1"
},
{
"name": "httpclient",
"manifest": "Gemfile",
"ecosystem": "rubygems",
"version_constraint": "~> 2.7.1"
},
{
"name": "webrick",
"manifest": "Gemfile",
"ecosystem": "rubygems",
"version_constraint": null
},
{
"name": "bundler-audit",
"manifest": "Gemfile",
"ecosystem": "rubygems",
"version_constraint": "~> 0.9.3"
},
{
"name": "net-smtp",
"manifest": "Gemfile",
"ecosystem": "rubygems",
"version_constraint": null
},
{
"name": "rubocop",
"manifest": "Gemfile",
"ecosystem": "rubygems",
"version_constraint": "~> 1.86"
},
{
"name": "rubocop-rake",
"manifest": "Gemfile",
"ecosystem": "rubygems",
"version_constraint": "~> 0.7.1"
},
{
"name": "rubocop-rspec",
"manifest": "Gemfile",
"ecosystem": "rubygems",
"version_constraint": "~> 3.9"
},
{
"name": "ruby_audit",
"manifest": "Gemfile",
"ecosystem": "rubygems",
"version_constraint": "~> 3.1"
},
{
"name": "simplecov",
"manifest": "Gemfile",
"ecosystem": "rubygems",
"version_constraint": null
}
],
"all_dependencies": {
"error": null,
"source": "github-sbom",
"packages": [
{
"name": "bundler-audit",
"direct": true,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "faraday",
"direct": true,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "faraday-digestauth",
"direct": true,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "faraday-follow_redirects",
"direct": true,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "httpclient",
"direct": true,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "rubocop",
"direct": true,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "rubocop-rake",
"direct": true,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "rubocop-rspec",
"direct": true,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "simplecov",
"direct": true,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "webrick",
"direct": true,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "akami",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "builder",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "byebug",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "gyoku",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "httpi",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "json",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "mail",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "mocha",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "nokogiri",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "nori",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "ostruct",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "puma",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "rack",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "rake",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "rspec",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "wasabi",
"direct": false,
"version": null,
"ecosystem": "rubygems"
}
],
"collected": true,
"truncated": false,
"total_count": 26,
"direct_count": 10,
"indirect_count": 16
}
},
"maintainership": {
"issues": {
"open_prs": 5,
"merged_prs": 183,
"open_issues": 7,
"closed_ratio": 0.991,
"closed_issues": 754,
"closed_unmerged_prs": 103
},
"bus_factor": 1,
"bot_contributors": 1,
"top_contributors": [
{
"type": "User",
"login": "rubiii",
"commits": 1307,
"avatar_url": "https://avatars.githubusercontent.com/u/71851?v=4"
},
{
"type": "User",
"login": "tjarratt",
"commits": 104,
"avatar_url": "https://avatars.githubusercontent.com/u/249262?v=4"
},
{
"type": "User",
"login": "pcai",
"commits": 56,
"avatar_url": "https://avatars.githubusercontent.com/u/222655?v=4"
},
{
"type": "User",
"login": "olleolleolle",
"commits": 29,
"avatar_url": "https://avatars.githubusercontent.com/u/211?v=4"
},
{
"type": "User",
"login": "ashrocket",
"commits": 8,
"avatar_url": "https://avatars.githubusercontent.com/u/713675?v=4"
},
{
"type": "User",
"login": "antstorm",
"commits": 6,
"avatar_url": "https://avatars.githubusercontent.com/u/118353?v=4"
},
{
"type": "User",
"login": "keltia",
"commits": 6,
"avatar_url": "https://avatars.githubusercontent.com/u/142030?v=4"
},
{
"type": "User",
"login": "hoverlover",
"commits": 6,
"avatar_url": "https://avatars.githubusercontent.com/u/169285?v=4"
},
{
"type": "User",
"login": "thefooj",
"commits": 4,
"avatar_url": "https://avatars.githubusercontent.com/u/242509?v=4"
},
{
"type": "User",
"login": "futuremint",
"commits": 4,
"avatar_url": "https://avatars.githubusercontent.com/u/5891?v=4"
}
],
"contributors_sampled": 99,
"top_contributor_share": 0.79
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"ci.yml",
"gem_push.yml"
],
"has_docs_dir": false,
"linter_configs": [
".rubocop.yml"
],
"has_editorconfig": false,
"has_linter_config": true,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 10,
"reason": "no binaries found in the repo",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": 3,
"reason": "branch protection is not maximal on development and all release branches",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": null,
"reason": "internal error: internal error: Client.Repositories.ListCheckRunsForRef: error during graphqlHandler.setupCheckRuns: Something went wrong while executing your query on 2026-07-22T00:19:35Z. Please include `D8AE:24C918:1241B7F:118E2BC:6A600C95` when reporting this issue.",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
},
{
"name": "CII-Best-Practices",
"score": 0,
"reason": "no effort to earn an OpenSSF best practices badge detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
},
{
"name": "Code-Review",
"score": 0,
"reason": "Found 0/18 approved changesets -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 10,
"reason": "project has 21 contributing companies or organizations",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": 10,
"reason": "no dangerous workflow patterns detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
},
{
"name": "Dependency-Update-Tool",
"score": 10,
"reason": "update tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
},
{
"name": "Fuzzing",
"score": 0,
"reason": "project is not fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 10,
"reason": "license file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 10,
"reason": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
},
{
"name": "Packaging",
"score": null,
"reason": "packaging workflow not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": 10,
"reason": "all dependencies are pinned",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": null,
"reason": "internal error: internal error: Client.Checks.ListCheckRunsForRef: error during graphqlHandler.setupCheckRuns: Something went wrong while executing your query on 2026-07-22T00:19:35Z. Please include `D8AE:24C918:1241B7F:118E2BC:6A600C95` when reporting this issue.",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 10,
"reason": "security policy file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": null,
"reason": "no releases found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": 9,
"reason": "detected GitHub workflow tokens with excessive permissions",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 10,
"reason": "0 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "675ce8b3cdf9a4f26db28794971676c395baffda",
"ran_at": "2026-07-22T00:19:30Z",
"aggregate_score": 7.5,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": true,
"has_dependabot_config": true
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-17T14:24:58Z",
"oldest_open_prs": [
{
"number": 802,
"created_at": "2017-03-23T22:19:32Z",
"last_comment_at": "2024-10-01T20:49:15Z",
"last_comment_author": "pcai"
},
{
"number": 1029,
"created_at": "2025-05-20T08:37:19Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 1047,
"created_at": "2026-05-22T16:57:20Z",
"last_comment_at": "2026-07-08T21:44:00Z",
"last_comment_author": "ekzobrain"
},
{
"number": 1048,
"created_at": "2026-05-23T22:05:18Z",
"last_comment_at": "2026-05-27T14:48:28Z",
"last_comment_author": "rubiii"
},
{
"number": 1061,
"created_at": "2026-07-05T16:24:27Z",
"last_comment_at": null,
"last_comment_author": null
}
],
"last_merged_pr_at": "2026-07-03T12:06:17Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": [
{
"number": 592,
"created_at": "2014-06-30T20:21:22Z",
"last_comment_at": "2024-10-01T20:45:40Z",
"last_comment_author": "pcai"
},
{
"number": 939,
"created_at": "2020-09-21T21:31:21Z",
"last_comment_at": "2022-01-08T23:27:08Z",
"last_comment_author": "stale"
},
{
"number": 949,
"created_at": "2021-02-02T23:09:30Z",
"last_comment_at": "2022-01-08T23:27:11Z",
"last_comment_author": "stale"
},
{
"number": 957,
"created_at": "2021-06-15T11:30:53Z",
"last_comment_at": "2022-01-12T10:39:19Z",
"last_comment_author": "benjamin-ltr"
},
{
"number": 959,
"created_at": "2021-08-05T14:23:07Z",
"last_comment_at": "2022-01-08T23:27:04Z",
"last_comment_author": "stale"
},
{
"number": 969,
"created_at": "2022-04-26T22:21:24Z",
"last_comment_at": "2022-05-03T13:21:14Z",
"last_comment_author": "migalenkom"
},
{
"number": 1018,
"created_at": "2025-02-19T23:12:38Z",
"last_comment_at": null,
"last_comment_author": null
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/savonrb/savon",
"host": "github.com",
"name": "savon",
"owner": "savonrb"
},
"metrics": {
"overall": {
"key": "overall",
"band": "good",
"name": "Overall health",
"note": null,
"notes": [],
"value": 73,
"inputs": {
"security": 75,
"vitality": 75,
"community": 86,
"governance": 61,
"engineering": 74
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "good",
"name": "Vitality",
"value": 75,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "moderate",
"name": "Development activity",
"note": null,
"notes": [],
"value": 63,
"inputs": {
"commits_last_year": 95,
"human_commit_share": 0.92,
"days_since_last_push": 15,
"active_weeks_last_year": 9
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 15 days ago",
"points": 28.8,
"status": "partial",
"details": [
{
"code": "push_recency",
"params": {
"days": 15
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "9/52 weeks with commits",
"points": 6.2,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 9
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "95 commits in the last year",
"points": 17.8,
"status": "partial",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 95
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "excellent",
"name": "Release discipline",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 92,
"inputs": {
"releases_count": 16,
"latest_release_tag": "v2.17.4",
"releases_from_tags": false,
"days_since_latest_release": 18,
"mean_days_between_releases": 96.7
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "16 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 16
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 18 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 18
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~96.7 days",
"points": 19.8,
"status": "partial",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 96.7
}
}
],
"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": 15,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "last human commit 15 days ago",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_maintained",
"params": {
"days": 15
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "excellent",
"name": "Community & Adoption",
"value": 86,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "excellent",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 86,
"inputs": {
"forks": 612,
"stars": 2086,
"watchers": 37,
"growth_state": "organic",
"growth_factor_pct": 100
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "2,086 stars",
"points": 53.8,
"status": "partial",
"details": [
{
"code": "stars",
"params": {
"count": 2086
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "612 forks",
"points": 23.2,
"status": "partial",
"details": [
{
"code": "forks",
"params": {
"count": 612
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "37 watchers",
"points": 8.7,
"status": "partial",
"details": [
{
"code": "watchers",
"params": {
"count": 37
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "good",
"name": "Community health",
"note": null,
"notes": [],
"value": 77,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": true,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "recognized license (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": 0,
"status": "missed",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 6.3,
"status": "met",
"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": [
"savon"
],
"dependents": null,
"ecosystems": "rubygems",
"total_downloads": 98640558,
"monthly_downloads": null
},
"components": [
{
"key": "total_downloads",
"name": "Total downloads",
"detail": "98,640,558 downloads all-time across rubygems",
"points": 80,
"status": "met",
"details": [
{
"code": "downloads_total",
"params": {
"count": 98640558,
"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": "moderate",
"name": "Sustainability & Governance",
"value": 61,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "at_risk",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 37,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 99,
"top_contributor_share": 0.79
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "1 contributor(s) cover half of all commits",
"points": 9,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 1
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 79% of commits",
"points": 4.7,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 79
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "99 contributors",
"points": 13.5,
"status": "met",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 99
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 21 contributing companies or organizations",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "good",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 71,
"inputs": {
"merged_prs": 183,
"open_issues": 7,
"closed_issues": 754,
"issue_closed_ratio": 0.991,
"closed_unmerged_prs": 103
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "99% of issues closed",
"points": 46.3,
"status": "partial",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 99
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "183/286 decided PRs merged",
"points": 24.5,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 183,
"decided": 286
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 0/18 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "moderate",
"name": "Ownership & stewardship",
"note": null,
"notes": [],
"value": 54,
"inputs": {
"followers": 3,
"owner_type": "Organization",
"is_verified": null,
"owner_login": "savonrb",
"public_repos": 12,
"account_age_days": 5057
},
"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": "3 followers of savonrb",
"points": 4.3,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 3,
"login": "savonrb"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "12 public repos, account ~13 yr old",
"points": 20.1,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 12
}
},
{
"code": "account_age_years",
"params": {
"years": 13
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 91,
"inputs": {
"packages": [
"savon"
],
"ecosystems": "rubygems",
"any_deprecated": false,
"min_days_since_publish": 343
},
"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 343 days ago",
"points": 26,
"status": "partial",
"details": [
{
"code": "publish_recency",
"params": {
"days": 343
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "99 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 99
}
}
],
"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": "good",
"name": "Engineering Quality",
"value": 74,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "good",
"name": "Engineering practices",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_ci_tests"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 80,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": false,
"has_linter_config": true,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "2 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 2
}
}
],
"max_points": 24
},
{
"key": "tests_present",
"name": "Tests present",
"detail": null,
"points": 24,
"status": "met",
"details": [],
"max_points": 24
},
{
"key": "linter_config",
"name": "Linter config",
"detail": ".rubocop.yml",
"points": 16,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".rubocop.yml"
}
}
],
"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": "internal error: internal error: Client.Repositories.ListCheckRunsForRef: error during graphqlHandler.setupCheckRuns: Something went wrong while executing your query on 2026-07-22T00:19:35Z. Please include `D8AE:24C918:1241B7F:118E2BC:6A600C95` when reporting this issue.",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "moderate",
"name": "Documentation",
"note": null,
"notes": [],
"value": 65,
"inputs": {
"topics": [
"soap",
"soap-client",
"ruby"
],
"has_wiki": false,
"homepage": "https://savonrb.com",
"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": "https://savonrb.com",
"points": 15,
"status": "met",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": "3 topics",
"points": 10,
"status": "met",
"details": [
{
"code": "topics_count",
"params": {
"count": 3
}
}
],
"max_points": 10
},
{
"key": "wiki",
"name": "Wiki",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "good",
"name": "Security",
"value": 75,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "good",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): CI-Tests, Packaging, SAST, Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"ci_tests",
"packaging",
"sast",
"signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 75,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 14,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 4,
"scorecard_aggregate": 7.5
},
"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 is not maximal on development and all release branches",
"points": 2.2,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "internal error: internal error: Client.Repositories.ListCheckRunsForRef: error during graphqlHandler.setupCheckRuns: Something went wrong while executing your query on 2026-07-22T00:19:35Z. Please include `D8AE:24C918:1241B7F:118E2BC:6A600C95` when reporting this issue.",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"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 0/18 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 21 contributing companies or organizations",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "no dangerous workflow patterns detected",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "dependency_update_tool",
"name": "Dependency-Update-Tool",
"detail": "update tool detected",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "fuzzing",
"name": "Fuzzing",
"detail": "project is not fuzzed",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file detected",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "packaging",
"name": "Packaging",
"detail": "packaging workflow not detected",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "all dependencies are pinned",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "internal error: internal error: Client.Checks.ListCheckRunsForRef: error during graphqlHandler.setupCheckRuns: Something went wrong while executing your query on 2026-07-22T00:19:35Z. Please include `D8AE:24C918:1241B7F:118E2BC:6A600C95` when reporting this issue.",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file detected",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "detected GitHub workflow tokens with excessive permissions",
"points": 6.8,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "0 existing vulnerabilities detected",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "high_risk_jurisdiction_exposure",
"band": "excellent",
"name": "High-Risk Jurisdiction Exposure",
"note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
"notes": [
{
"code": "jurisdiction_evidence_limits",
"params": {}
}
],
"value": 100,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": false,
"exposures": [],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"review_only_matches": 0,
"assessed_self_published_locations": 17
},
"components": [
{
"key": "policy_exposure_multiplier",
"name": "Policy exposure multiplier",
"detail": "no confirmed policy-scope location match",
"points": 100,
"status": "met",
"details": [
{
"code": "jurisdiction_no_match",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
},
{
"key": "ai_readiness",
"band": "at_risk",
"name": "AI Readiness",
"value": 44,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "critical",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 16,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.304,
"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": "28 of 92 human commits state their intent (structured subject or explanatory body)",
"points": 16.2,
"status": "partial",
"details": [
{
"code": "legible_history",
"params": {
"legible": 28,
"sampled": 92
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "moderate",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 61,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [],
"has_dockerfile": false,
"typed_language": false,
"bootstrap_files": [],
"has_devcontainer": true,
"has_linter_config": true,
"typecheck_configs": [],
"agent_commit_share": 0,
"toolchain_manifests": [],
"dependency_bot_commit_share": 0.08
},
"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": ".rubocop.yml",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".rubocop.yml"
}
}
],
"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": "devcontainer",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "devcontainer"
}
}
],
"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": "8 of the last 100 commits are automated dependency updates",
"points": 8,
"status": "met",
"details": [
{
"code": "dependency_bot_commits",
"params": {
"count": 8,
"sampled": 100
}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "all dependencies are pinned",
"points": 10,
"status": "met",
"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": 45722,
"source_files_sampled": 64,
"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/64 source files over 60KB",
"points": 55,
"status": "met",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 64,
"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": [
"No resolved dependencies carried a version and a supported ecosystem"
],
"report_type": "repository",
"generated_at": "2026-07-22T00:19:50.263641Z",
"schema_version": "0.26.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/s/savonrb/savon.svg",
"full_name": "savonrb/savon",
"license_state": "standard",
"license_spdx": "MIT"
}