JSON-Rohbericht maschinenlesbar
{
"data": {
"repo": {
"topics": [
"readme"
],
"is_fork": false,
"size_kb": 969,
"has_wiki": false,
"homepage": null,
"languages": {
"Perl": 363,
"Raku": 42,
"Ruby": 38138,
"Shell": 805,
"Python": 11109
},
"pushed_at": "2026-07-15T11:00:49Z",
"created_at": "2009-10-31T01:02:46Z",
"owner_type": "Organization",
"updated_at": "2026-07-20T13:39:47Z",
"description": "Determines which markup library to use to render a content file (e.g. README) on GitHub",
"is_archived": false,
"is_disabled": false,
"license_spdx": "MIT",
"default_branch": "master",
"license_spdx_raw": "MIT",
"primary_language": "Ruby",
"significant_languages": [
"Ruby",
"Python"
]
},
"owner": {
"blog": "https://github.com/about",
"name": "GitHub",
"type": "Organization",
"login": "github",
"company": null,
"location": "United States of America",
"followers": 80388,
"avatar_url": "https://avatars.githubusercontent.com/u/9919?v=4",
"created_at": "2008-05-11T04:37:31Z",
"is_verified": null,
"public_repos": 556,
"account_age_days": 6645
},
"license": {
"state": "standard",
"spdx_id": "MIT",
"raw_spdx": "MIT",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "v6.0.0",
"kind": "major",
"published_at": "2026-05-05T00:37:48Z"
},
{
"tag": "v5.0.1",
"kind": "patch",
"published_at": "2024-06-17T15:55:42Z"
},
{
"tag": "v5.0.0",
"kind": "major",
"published_at": "2024-06-17T15:13:11Z"
},
{
"tag": "v3.0.4",
"kind": "patch",
"published_at": "2019-04-02T23:41:02Z"
},
{
"tag": "v3.0.3",
"kind": "patch",
"published_at": "2018-12-17T05:50:48Z"
},
{
"tag": "v3.0.2",
"kind": "patch",
"published_at": "2018-12-12T04:08:27Z"
},
{
"tag": "v3.0.1",
"kind": "patch",
"published_at": "2018-10-18T23:16:55Z"
},
{
"tag": "v3.0.0",
"kind": "major",
"published_at": "2018-10-18T04:58:47Z"
},
{
"tag": "v2.0.2",
"kind": "patch",
"published_at": "2018-10-14T22:53:55Z"
},
{
"tag": "v2.0.1",
"kind": "patch",
"published_at": "2018-10-14T22:51:03Z"
},
{
"tag": "v2.0.0",
"kind": "major",
"published_at": "2018-01-30T23:38:33Z"
},
{
"tag": "v1.7.0",
"kind": "minor",
"published_at": "2018-01-30T02:15:11Z"
},
{
"tag": "v1.6.2",
"kind": "patch",
"published_at": "2018-01-30T01:53:30Z"
},
{
"tag": "v1.6.1",
"kind": "patch",
"published_at": "2018-01-30T01:53:44Z"
},
{
"tag": "v1.6.0",
"kind": "minor",
"published_at": "2018-01-30T01:53:58Z"
},
{
"tag": "v1.5.0",
"kind": "minor",
"published_at": "2018-01-30T01:54:12Z"
},
{
"tag": "v1.4.9",
"kind": "patch",
"published_at": "2018-01-30T01:54:28Z"
},
{
"tag": "v1.4.0",
"kind": "minor",
"published_at": "2015-07-31T18:32:53Z"
},
{
"tag": "v1.2.0",
"kind": "minor",
"published_at": "2014-04-17T07:55:08Z"
},
{
"tag": "v1.1.2",
"kind": "patch",
"published_at": "2014-04-16T05:32:06Z"
},
{
"tag": "v1.0.2",
"kind": "patch",
"published_at": "2014-02-14T23:53:04Z"
},
{
"tag": "v0.7.7",
"kind": "patch",
"published_at": "2013-09-24T15:39:50Z"
}
],
"recent_commits": [
{
"oid": "a365c64ef765f3677ed50947081d29b863b6ff4c",
"body": "Bumps the dependencies group with 1 update: [ruby/setup-ruby](https://github.com/ruby/setup-ruby).\n\n\nUpdates `ruby/setup-ruby` from 1.316.0 to 1.318.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](h\n[…]\nersion-update:semver-minor\n dependency-group: dependencies\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": "chore(deps): bump ruby/setup-ruby in the dependencies group (#2089)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-15T11:00:47Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "2abe5966d4a28f445bd80ec1f18a94b552821ea4",
"body": "…dates (#2088)\n\nBumps the dependencies group with 2 updates in the / directory: [ruby/setup-ruby](https://github.com/ruby/setup-ruby) and [actions/stale](https://github.com/actions/stale).\n\n\nUpdates `ruby/setup-ruby` from 1.315.0 to 1.316.0\n- [Release notes](https://github.com/ruby/setup-ruby/releas\n[…]\nersion-update:semver-minor\n dependency-group: dependencies\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": "chore(deps): bump the dependencies group across 1 directory with 2 up…",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-10T23:56:48Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "fd5b414ea3243643e9a74ad5bd7d24c7dc80f9e5",
"body": "PR #2081 set auto_id_prefix: 'id' in lib/github/commands/rest2html to keep\nthe pre-docutils-0.18 anchor id scheme, but the committed RST fixtures still\nheld the docutils-0.18 default (toc-entry-N). The rendered output therefore\nnever matched the fixtures, so test_rst, test_long.rst, and test_toc.rst\n[…]\nhat\nthe auto_id_prefix: 'id' setting actually produces, honoring #2081's intent.\n\nSigned-off-by: Zack Koppert <zkoppert@github.com>\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "Fix RST TOC anchor ids to complete docutils 0.18 fix (#2081) (#2087)",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-07-10T23:16:43Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "aca83956263c0ce0327a02c664435ea520cc1710",
"body": "Fix id names in rst renders after docutils 0.18",
"is_bot": false,
"headline": "Merge pull request #2081 from github/rst-auto-id-prefix",
"author_name": "satana",
"author_login": "pudiva",
"committed_at": "2026-07-01T12:13:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "22d2d5121b2d8472c097f767c8e85a08a8150be6",
"body": "Bumps the dependencies group with 2 updates: [ruby/setup-ruby](https://github.com/ruby/setup-ruby) and [actions/cache](https://github.com/actions/cache).\n\n\nUpdates `ruby/setup-ruby` from 1.314.0 to 1.315.0\n- [Release notes](https://github.com/ruby/setup-ruby/releases)\n- [Changelog](https://github.co\n[…]\nersion-update:semver-minor\n dependency-group: dependencies\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": "chore(deps): bump the dependencies group with 2 updates (#2083)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-01T12:00:55Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a5d7bbe59a0c15a162b8f37207c8e4aa34ce10b5",
"body": "Fix id names changing in rst renders with the upgrade to docutils 0.18\nby enforcing the old default value `id` for `auto_id_prefix`.\n\nSee: https://docutils.sourceforge.io/RELEASE-NOTES.html#release-0-18-2021-10-26\n\nco-authored-by: Tyler Dixon <tylerdixon@github.com>",
"is_bot": false,
"headline": "Fix id names in rst renders after docutils 0.18",
"author_name": "Satana de Sant'Ana",
"author_login": "pudiva",
"committed_at": "2026-06-30T18:46:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ea390592dc126a741ee252fc0b87c555d5942f32",
"body": "Bumps the dependencies group with 2 updates: [ruby/setup-ruby](https://github.com/ruby/setup-ruby) and [actions/setup-python](https://github.com/actions/setup-python).\n\n\nUpdates `ruby/setup-ruby` from 1.313.0 to 1.314.0\n- [Release notes](https://github.com/ruby/setup-ruby/releases)\n- [Changelog](htt\n[…]\nersion-update:semver-minor\n dependency-group: dependencies\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": "chore(deps): bump the dependencies group with 2 updates (#2078)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-24T12:02:03Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "08922132ed86e1e5017d87251d0564ae2f1d0af0",
"body": "Bumps [actions/cache](https://github.com/actions/cache) from 5.0.5 to 6.0.0.\n- [Release notes](https://github.com/actions/cache/releases)\n- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)\n- [Commits](https://github.com/actions/cache/compare/27d5ce7f107fe9357f9df03efb73ab90386fcca\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": "chore(deps): bump actions/cache from 5.0.5 to 6.0.0 (#2079)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-24T12:01:38Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "8da4b091e227bc26ae865f2776a1f48d07f67b61",
"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": "chore(deps): bump actions/checkout from 6.0.3 to 7.0.0 (#2080)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-24T12:01:05Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "1f45108c916ab7169319f59e5eb431229fc14bb1",
"body": "Bumps the dependencies group with 1 update: [ruby/setup-ruby](https://github.com/ruby/setup-ruby).\n\n\nUpdates `ruby/setup-ruby` from 1.312.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](h\n[…]\nersion-update:semver-minor\n dependency-group: dependencies\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": "chore(deps): bump ruby/setup-ruby in the dependencies group (#2075)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-17T16:02:09Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e8de43e4f54f11cbab16e0436dfc4094a77a7ee3",
"body": "…encies-3effd6bc65\n\nchore(deps): bump ruby/setup-ruby from 1.310.0 to 1.312.0 in the dependencies group",
"is_bot": false,
"headline": "Merge pull request #2073 from github/dependabot/github_actions/depend…",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-06-12T05:28:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d38b455b7774c86d7afe84ba09764a48e0789dae",
"body": "Bumps the dependencies group with 1 update: [ruby/setup-ruby](https://github.com/ruby/setup-ruby).\n\n\nUpdates `ruby/setup-ruby` from 1.310.0 to 1.312.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](h\n[…]\n\n dependency-version: 1.312.0\n dependency-type: direct:production\n update-type: version-update:semver-minor\n dependency-group: dependencies\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps): bump ruby/setup-ruby in the dependencies group",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-10T10:22:51Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "095cb2dc8ba2de62d6b540afb908cb4d377b802f",
"body": "…-3.2.4\n\nchore(deps): update html-pipeline requirement from ~> 1.0 to ~> 3.2",
"is_bot": false,
"headline": "Merge pull request #2061 from github/dependabot/bundler/html-pipeline…",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-06-09T03:45:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dea1788bffee44b29b60d3dbe3f88a458d295c00",
"body": "html-pipeline v3 uses Selma directly instead of the sanitize gem, and\nnothing in this repo requires sanitize. The 'sanitize' method calls in\nlib/github/markup/command_implementation.rb are an internal encoding\nhelper, not the gem.\n\nCaught by Copilot's code review on #2061.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nSigned-off-by: Zack Koppert <zkoppert@github.com>",
"is_bot": false,
"headline": "build: drop unused sanitize gem dev dependency",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-06-09T03:01:55Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "e7beefbfc20ad74304a7717b36fddb322c370fd3",
"body": "html-pipeline v3 replaces the v1 SanitizationFilter (Sanitize gem) with one\nbacked by Selma. The default allowlist and serialization differ in observable\nbut reasonable ways:\n\n* Heading/anchor IDs (e.g. <h2 id=\"first-section\">) are now preserved, fixing\n TOC anchor links that v1 stripped silently.\n\n[…]\nontracts the\nlibrary itself enforces - real consumers build their own pipelines.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nSigned-off-by: Zack Koppert <zkoppert@github.com>",
"is_bot": false,
"headline": "test: regenerate fixtures for html-pipeline v3 sanitizer (Selma)",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-06-08T23:22:30Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "635bd18061687f89ab60d75510929138a42b53b7",
"body": "html-pipeline v3 reorganizes the namespace (HTML::Pipeline -> HTMLPipeline),\nsplits the single Filter base class into TextFilter/ConvertFilter/NodeFilter,\nmakes the pipeline accept filter instances (not classes) via explicit keyword\narguments, and returns a result hash from #call. Update the test harness's\nsample pipeline to match.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nSigned-off-by: Zack Koppert <zkoppert@github.com>",
"is_bot": false,
"headline": "test: migrate to HTMLPipeline v3 API",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-06-08T23:22:21Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "3c4eb1e8508124615c1da38d4633ef798b0f4ed5",
"body": "Updates the requirements on [html-pipeline](https://github.com/gjtorikian/html-pipeline) to permit the latest version.\n- [Release notes](https://github.com/gjtorikian/html-pipeline/releases)\n- [Changelog](https://github.com/gjtorikian/html-pipeline/blob/main/CHANGELOG.md)\n- [Commits](https://github.\n[…]\n:\n- dependency-name: html-pipeline\n dependency-version: 3.2.4\n dependency-type: direct:development\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps): update html-pipeline requirement from ~> 1.0 to ~> 3.2",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-08T23:17:58Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "8a3100600ec12c732705977cfa4167d70570b7d4",
"body": "…v2.8.2\n\nchore(deps): bump commonmarker from v0.18.3 to v2.8.2",
"is_bot": false,
"headline": "Merge pull request #2059 from github/dependabot/bundler/commonmarker-…",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-06-08T23:15:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "35f00830a0cce2f72fcf24a8dda05fe89105134c",
"body": "PR #2072 enforces a 100% line+branch coverage floor. The commonmarker\n2.x migration adds a legacy options shim (lib/github/markup/markdown.rb\nlines 30-69) that translates the cmark-gfm 0.x :SOURCEPOS / :HARDBREAKS\n/ etc. symbols into commonmarker 2.x parse/render/extension option\nhashes; none of the\n[…]\n failures.\nLine Coverage: 100.0% (226 / 226).\nBranch Coverage: 100.0% (55 / 55).\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nSigned-off-by: Zack Koppert <zkoppert@github.com>",
"is_bot": false,
"headline": "Add commonmarker proc legacy option/extension coverage tests",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-06-08T18:01:21Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "b41ed929b0ee76d8f62e7bebb538c5ec733a42d6",
"body": "Commonmarker 2.x is a from-scratch rewrite that swaps the upstream parser\nfrom cmark-gfm (C) to comrak (Rust). It also redesigns the Ruby API:\n\n - Module: CommonMarker -> Commonmarker (lowercase m)\n - Render entry point: CommonMarker.render_html(content, opts, exts)\n -> Commonmarker.to_html(con\n[…]\n {syntax_highlighter: nil})\n to keep `<pre lang>` blocks clean.\n\nCloses #2059\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nSigned-off-by: Zack Koppert <zkoppert@github.com>",
"is_bot": false,
"headline": "Upgrade commonmarker to ~> 2.8.2",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-06-08T06:59:20Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "be33798ce186dacf54c365ef9fc3ef4acf5cd0b1",
"body": "Add 100% test coverage floor with SimpleCov",
"is_bot": false,
"headline": "Merge pull request #2072 from github/test-coverage-100",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-06-08T06:54:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "54a8e28c1e35b374f0ad6ff18665bc2ad4c1733d",
"body": "The CommandImplementation empty-output test hard-coded /usr/bin/true,\nwhich is not guaranteed to live at that path on every platform. Adding\ntest/fixtures/empty.sh keeps the test self-contained and matches the\nexisting cat.sh / fail.sh pattern, so the suite runs anywhere the rest\nof the fixtures already do.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nSigned-off-by: Zack Koppert <zkoppert@github.com>",
"is_bot": false,
"headline": "Use a fixture script instead of /usr/bin/true",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-06-08T06:32:04Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "d1eb3338f9c03f2fb720893fee7c00ef4135d7e5",
"body": "The header listed five fallback markdown gem procs, but the test file\nactually exercises all six (github/markdown, redcarpet, rdiscount,\nmaruku, kramdown, bluecloth). The LoadError wording is now quoted\nexactly, and the stale legacy RDoc < 4 bullet is removed since that\nbranch is excluded from coverage with :nocov: markers and no test\ncovers it directly.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nSigned-off-by: Zack Koppert <zkoppert@github.com>",
"is_bot": false,
"headline": "Correct coverage_test.rb header comment",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-06-08T06:31:37Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "5a3eb2560bd9d70189b825920c59f4e11d01ea13",
"body": "The previous assertion only checked that 'tt' was present in\nESCAPED_TAGS after two renders, which would still pass if the\nidempotency guard regressed and appended duplicates. Switch to\ncounting 'tt' occurrences so the test would fail if WikiCloth's\nESCAPED_TAGS<<'tt' ever ran twice.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nSigned-off-by: Zack Koppert <zkoppert@github.com>",
"is_bot": false,
"headline": "Tighten MediaWiki ESCAPED_TAGS test to assert idempotency",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-06-08T06:20:15Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "2a07090433d0563ab6bc5fb2250eef61c2a17f40",
"body": "Previously the gemspec dereferenced MatchData#[] directly, so a\nformatting change in lib/github-markup.rb that broke the regex\nwould raise NoMethodError on nil. Wrap the match in an explicit\ncheck and raise with the file path so the failure is obvious.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nSigned-off-by: Zack Koppert <zkoppert@github.com>",
"is_bot": false,
"headline": "Fail loudly if VERSION cannot be read from lib",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-06-08T06:20:09Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "05d38d83536f29a6e4448f23f0f6ad3bbaf52972",
"body": "Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nSigned-off-by: Zack Koppert <zkoppert@github.com>",
"is_bot": false,
"headline": "Ignore SimpleCov coverage/ output directory",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-06-08T06:13:12Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "f8f7df0a46075be4ca29b31d41908a2a480fbfc1",
"body": "Adds a test_helper that boots SimpleCov before the rest of the suite\nloads, with line and branch coverage tracking enabled and a hard floor\nat 100% for both. SimpleCov exits non-zero when the threshold isn't\nmet, so the existing `bundle exec rake` step in CI fails any future\nchange that regresses co\n[…]\ncommand path.\n\nCoverage: 90.23% line / 64.71% branch -> 100% line / 100% branch.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nSigned-off-by: Zack Koppert <zkoppert@github.com>",
"is_bot": false,
"headline": "Add SimpleCov with a 100% line + branch coverage floor",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-06-08T06:13:08Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "6f469d1035313383a625e6b3788cd19b3a2c7c18",
"body": "The `else` branch is for RDoc < 4, which has been unsupported since\nRuby 2.4 (2016). Modern RDoc requires Options. The branch is unreachable\nin any supported environment, so guard it with :nocov: markers rather\nthan contort the test suite to fake an unsupported RDoc version.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nSigned-off-by: Zack Koppert <zkoppert@github.com>",
"is_bot": false,
"headline": "Exclude legacy RDoc < 4 fallback from coverage",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-06-08T06:12:47Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "149bafdb0100093a9c22ba3053b7e242d9cd1041",
"body": "The gemspec previously `require`d \"../lib/github-markup\" to fetch the\nVERSION constant. Bundler's gem_tasks evaluates the gemspec at rake\nstartup, which happens before tests load SimpleCov. Any file `require`d\nfrom the gemspec is therefore invisible to coverage tracking.\n\nSwitch to a regex read of t\n[…]\ndependency in preparation for the coverage target landing\nin a follow-up commit.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nSigned-off-by: Zack Koppert <zkoppert@github.com>",
"is_bot": false,
"headline": "Read VERSION from source instead of requiring the lib",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-06-08T06:12:43Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "6900a6f53cf225114ecf088e96dc8b1adf64815d",
"body": "Replaces the bare DSL (markup, command, markup_impl) with fully-qualified\nGitHub::Markup.* calls so the file can be loaded via require_relative\ninstead of instance_eval. This lets SimpleCov track coverage of the\nregistration logic.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nSigned-off-by: Zack Koppert <zkoppert@github.com>",
"is_bot": false,
"headline": "Use explicit module references in lib/github/markups.rb",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-06-08T06:12:35Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "b86a51354fd4811ecb39cd8165c6a0216550d31b",
"body": "chore(deps): update minitest requirement from ~> 5.4, >= 5.4.3 to >= 5.4.3, ~> 6.0",
"is_bot": false,
"headline": "Merge pull request #2066 from github/dependabot/bundler/minitest-6.0.6",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-06-06T16:46:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0b7aa637e14a6799b6da7a6ef251eb71109869b9",
"body": "…5.4.3, ~> 6.0\n\nUpdates the requirements on [minitest](https://github.com/minitest/minitest) to permit the latest version.\n- [Changelog](https://github.com/minitest/minitest/blob/master/History.rdoc)\n- [Commits](https://github.com/minitest/minitest/compare/v5.27.0...v6.0.6)\n\n---\nupdated-dependencies:\n- dependency-name: minitest\n dependency-version: 6.0.6\n dependency-type: direct:development\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps): update minitest requirement from ~> 5.4, >= 5.4.3 to >= …",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-06T16:16:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d063713e9830b30ad0380c6e931e6d0b8c632386",
"body": "chore(deps): bump rdoc from 6.13.1 to 7.2.0",
"is_bot": false,
"headline": "Merge pull request #2065 from github/dependabot/bundler/rdoc-7.2.0",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-06-06T16:15:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7f764b83cf105c1716eedb43c56122e2d640bbf0",
"body": "…encies-cdcad3299f",
"is_bot": false,
"headline": "Merge pull request #2070 from github/dependabot/github_actions/depend…",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-06-04T14:37:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3772daab7559c1d49b765e1f15737d5e5c9cf1b4",
"body": "…dates\n\nBumps the dependencies group with 3 updates in the / directory: [actions/checkout](https://github.com/actions/checkout), [ruby/setup-ruby](https://github.com/ruby/setup-ruby) and [actions/stale](https://github.com/actions/stale).\n\n\nUpdates `actions/checkout` from 6.0.2 to 6.0.3\n- [Release no\n[…]\ne\n dependency-version: 10.3.0\n dependency-type: direct:production\n update-type: version-update:semver-minor\n dependency-group: dependencies\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps): bump the dependencies group across 1 directory with 3 up…",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-04T01:38:21Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ec28cb3b1827473300ff7691f21c0896ea1647b3",
"body": "Bumps [rdoc](https://github.com/ruby/rdoc) from 6.13.1 to 7.2.0.\n- [Release notes](https://github.com/ruby/rdoc/releases)\n- [Changelog](https://github.com/ruby/rdoc/blob/master/History.rdoc)\n- [Commits](https://github.com/ruby/rdoc/compare/v6.13.1...v7.2.0)\n\n---\nupdated-dependencies:\n- dependency-name: rdoc\n dependency-version: 7.2.0\n dependency-type: direct:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps): bump rdoc from 6.13.1 to 7.2.0",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-05-20T16:11:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7640c9f4c1beda2df1036d6241a477b9d589409b",
"body": "…43ef808e07\n\nchore(deps): bump the dependencies group across 1 directory with 2 updates",
"is_bot": false,
"headline": "Merge pull request #2064 from github/dependabot/bundler/dependencies-…",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-05-14T08:22:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9f456de9ca87b70c993b66dce6c0d420514a22b1",
"body": "…dates\n\nBumps the dependencies group with 2 updates in the / directory: [rake](https://github.com/ruby/rake) and [github-linguist](https://github.com/github-linguist/linguist).\n\n\nUpdates `rake` from 13.3.1 to 13.4.2\n- [Release notes](https://github.com/ruby/rake/releases)\n- [Changelog](https://githu\n[…]\nt\n dependency-version: 9.5.0\n dependency-type: direct:development\n update-type: version-update:semver-minor\n dependency-group: dependencies\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps): bump the dependencies group across 1 directory with 2 up…",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-05-14T08:01:17Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "cf938180a792536e6567bad41bc680e8387dd7c7",
"body": "…-8.1.3\n\nchore(deps): update activesupport requirement from ~> 7.2.3 to ~> 8.1.3",
"is_bot": false,
"headline": "Merge pull request #2060 from github/dependabot/bundler/activesupport…",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-05-14T08:00:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d9ec60479ed4becf28cd1bdd88adf40c19411bf3",
"body": "chore(deps): bump nokogiri from 1.19.2 to 1.19.3",
"is_bot": false,
"headline": "Merge pull request #2057 from github/dependabot/bundler/nokogiri-1.19.3",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-05-14T07:59:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "081e494dc82d8275c657a60d3bb9cac91ca09060",
"body": "Updates the requirements on [activesupport](https://github.com/rails/rails) to permit the latest version.\n- [Release notes](https://github.com/rails/rails/releases)\n- [Changelog](https://github.com/rails/rails/blob/v8.1.3/activesupport/CHANGELOG.md)\n- [Commits](https://github.com/rails/rails/compare\n[…]\n:\n- dependency-name: activesupport\n dependency-version: 8.1.3\n dependency-type: direct:development\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps): update activesupport requirement from ~> 7.2.3 to ~> 8.1.3",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-05-14T07:51:55Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "457b7fa6f4d3e3e0256407985dcde945f52370e4",
"body": "Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.19.2 to 1.19.3.\n- [Release notes](https://github.com/sparklemotion/nokogiri/releases)\n- [Changelog](https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.19.2...v1.19.3)\n\n---\nupdated-dependencies:\n- dependency-name: nokogiri\n dependency-version: 1.19.3\n dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps): bump nokogiri from 1.19.2 to 1.19.3",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-05-14T07:51:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3d36ba9836b1dd7db062aef0102bb28c232df6ef",
"body": "fix: remove duplicate rake and nokogiri deps from Gemfile",
"is_bot": false,
"headline": "Merge pull request #2063 from github/fix/remove-duplicate-gemfile-deps",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-05-14T07:50:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0df73a700056f8bf01243a481e8dc8554d49bd2c",
"body": "rake and nokogiri are declared in both the Gemfile and gemspec with\ndifferent version constraints. This causes all Dependabot bundler PRs\nto fail CI because Dependabot's Bundler serializes merged\nGemfile+gemspec constraints into the lockfile DEPENDENCIES section,\nwhile CI's Bundler (in frozen mode) \n[…]\nspec). This eliminates the\nserialization mismatch regardless of Bundler version.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nSigned-off-by: Zack Koppert <zkoppert@github.com>",
"is_bot": false,
"headline": "fix: remove duplicate rake and nokogiri deps from Gemfile",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-05-14T07:38:02Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "052712e48360bd68b18e5490057d3834570e112b",
"body": "…encies-da8be134b1\n\nchore(deps): bump ruby/setup-ruby from 1.306.0 to 1.307.0 in the dependencies group",
"is_bot": false,
"headline": "Merge pull request #2062 from github/dependabot/github_actions/depend…",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-05-14T06:57:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9d699cbc11cae0972cd24a3d3ce4ade377ab4ac9",
"body": "Bumps the dependencies group with 1 update: [ruby/setup-ruby](https://github.com/ruby/setup-ruby).\n\n\nUpdates `ruby/setup-ruby` from 1.306.0 to 1.307.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](h\n[…]\n\n dependency-version: 1.307.0\n dependency-type: direct:production\n update-type: version-update:semver-minor\n dependency-group: dependencies\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps): bump ruby/setup-ruby in the dependencies group",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-05-13T10:32:30Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "8c0a5532a4f2d84d706998cc00df744216c65f18",
"body": "release: v6.0.0",
"is_bot": false,
"headline": "Merge pull request #2052 from github/release/6.0.0",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-05-05T00:34:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "069a41b06fc6a338a86daee14a4277a370f1c7c1",
"body": "- Add missing security fixes: RubyGems HTTPS (#1854), CI permissions (#1855), rexml bumps\n- Add missing community PRs: spelling fixes (#1479), Textile link (#1703)\n- Clarify linguist version bump history\n- Add Dependabot CI action bumps catch-all entry\n- Pin actions/stale to commit SHA for supply chain hardening\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nSigned-off-by: Zack Koppert <zkoppert@github.com>",
"is_bot": false,
"headline": "fix: complete changelog and pin actions/stale to SHA",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-05-05T00:31:35Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "4b0c3a9193bd4157c870499ca6102a2cf1edf6b0",
"body": "Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nSigned-off-by: Zack Koppert <zkoppert@github.com>",
"is_bot": false,
"headline": "docs: update changelog date to 2026-05-04",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-05-05T00:25:13Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "4007cd165210e5c889f48c91326ed68505403725",
"body": "- Correct github-linguist version: 9.1.0 -> 9.3.0\n- Note Ruby 3.2 removal from CI matrix alongside 4.0 addition\n- Add PR link for pip install hardening (#2048)\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nSigned-off-by: Zack Koppert <zkoppert@github.com>",
"is_bot": false,
"headline": "Fix changelog accuracy from multi-model review",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-05-05T00:25:13Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "31e8db3ef5882fa394a637112a09b40c2cec708c",
"body": "The gemspec version was bumped to 6.0.0 but Gemfile.lock still\nreferenced 5.0.1, causing bundler deployment mode to fail in CI.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nSigned-off-by: Zack Koppert <zkoppert@github.com>",
"is_bot": false,
"headline": "Update Gemfile.lock for version 6.0.0",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-05-05T00:25:13Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "ec1bab71c58b412a161cef0a24591c6de86ac88b",
"body": "Breaking change: Drop support for Ruby < 3.3\n- Ruby 3.1 reached EOL March 2025\n- Ruby 3.2 reaches EOL March 2026\n- Minimum required Ruby version is now 3.3.0\n\nSee HISTORY.md for full changelog.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nSigned-off-by: Zack Koppert <zkoppert@github.com>",
"is_bot": false,
"headline": "release: bump version to 6.0.0",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-05-05T00:25:13Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "626fd4a94e416a2986be21ff6df41f1ac7fa6c93",
"body": "…encies-4a0b9de8bd\n\nchore(deps): bump ruby/setup-ruby from 1.305.0 to 1.306.0 in the dependencies group",
"is_bot": false,
"headline": "Merge pull request #2055 from github/dependabot/github_actions/depend…",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-05-04T23:50:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "51f281b6ca414fbef90e9f79e504c4d5d3169c21",
"body": "Bumps the dependencies group with 1 update: [ruby/setup-ruby](https://github.com/ruby/setup-ruby).\n\n\nUpdates `ruby/setup-ruby` from 1.305.0 to 1.306.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](h\n[…]\n\n dependency-version: 1.306.0\n dependency-type: direct:production\n update-type: version-update:semver-minor\n dependency-group: dependencies\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps): bump ruby/setup-ruby in the dependencies group",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-04-29T10:24:29Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "310db6d264e307c14c5538b1a7212480d405beaf",
"body": "chore: bump minimum Ruby to 3.3 and add Ruby 4.0 to CI matrix",
"is_bot": false,
"headline": "Merge pull request #2051 from github/chore/bump-ruby-requirement",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-04-23T00:42:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2a45d389fa41af8cadf29c0f8c87a0bfa077d072",
"body": "Ruby 3.1 went EOL March 2025, Ruby 3.2 went EOL March 2026.\nUpdate required_ruby_version to >= 3.3.0 and adjust the CI test\nmatrix to cover all currently supported Ruby versions: 3.3, 3.4, 4.0.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nSigned-off-by: Zack Koppert <zkoppert@github.com>",
"is_bot": false,
"headline": "chore: bump minimum Ruby to 3.3 and add Ruby 4.0 to CI matrix",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-04-23T00:17:30Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "ce5f9e327ec260a6ef7defe73a967d3326a249a8",
"body": "fix: use HTTPS for cpanminus download in CI",
"is_bot": false,
"headline": "Merge pull request #2050 from github/fix/ci-https-cpanminus",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-04-23T00:10:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e61b7f803acc6ed0c524bf1b8c000d5092bb6544",
"body": "…ardening\n\nfix: resolve supply chain security code scanning alerts",
"is_bot": false,
"headline": "Merge pull request #2048 from github/fix/code-scanning-supply-chain-h…",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-04-23T00:09:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "105bfa750da6bd690423415bbced34089fd0ac1c",
"body": "Switch curl from http:// to https:// when downloading cpanminus to\nprevent MITM attacks. Also add -fsSL flags for fail-fast on HTTP\nerrors and silent progress.\n\nFixes #2049\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nSigned-off-by: Zack Koppert <zkoppert@github.com>",
"is_bot": false,
"headline": "fix: use HTTPS for cpanminus download in CI",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-04-22T23:57:40Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "15d84a13370820fb0396babac3c3bb16fad04246",
"body": "- Remove legacy Dockerfile (Ubuntu Trusty 14.04, Python 2, Ruby 2.4.1,\n references bintray.com which shut down 2021). It was never used by CI\n and generated recurring scanner alerts and dependabot noise.\n- Remove docker ecosystem from dependabot config since Dockerfile no\n longer exists.\n- Add --\n[…]\nation explicitly (alert #12).\n\nResolves code scanning alerts #12, #14, #15, #16.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nSigned-off-by: Zack Koppert <zkoppert@github.com>",
"is_bot": false,
"headline": "fix: resolve supply chain security code scanning alerts",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-04-22T23:49:47Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "84dae8add7388252219333ade09cb69efdac510d",
"body": "…encies-7f28d4b292\n\nchore(deps): bump the dependencies group across 1 directory with 2 updates",
"is_bot": false,
"headline": "Merge pull request #2046 from github/dependabot/github_actions/depend…",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-04-22T04:09:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "87c9755132a8e0544117886997bee37c064f703c",
"body": "…dates\n\nBumps the dependencies group with 2 updates in the / directory: [ruby/setup-ruby](https://github.com/ruby/setup-ruby) and [actions/cache](https://github.com/actions/cache).\n\n\nUpdates `ruby/setup-ruby` from 1.299.0 to 1.302.0\n- [Release notes](https://github.com/ruby/setup-ruby/releases)\n- [C\n[…]\nhe\n dependency-version: 5.0.5\n dependency-type: direct:production\n update-type: version-update:semver-patch\n dependency-group: dependencies\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps): bump the dependencies group across 1 directory with 2 up…",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-04-22T04:05:28Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "8e1bf5f7b15cb55aeedaae10e4dcc0000e3ad985",
"body": "…in-hardening\n\nfix: remediate supply chain security findings",
"is_bot": false,
"headline": "Merge pull request #2047 from github/fix/security-findings-supply-cha…",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-04-22T04:04:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c1a036340ce5518d5e78472afa5e1dd1ac473f95",
"body": "- Drop pip hash verification in Dockerfile (Trusty's pip ~1.5 predates\n --hash support added in pip 8.0); version pin alone addresses the\n code scanning finding\n- Pin bundler to 2.3.26 instead of 2.4.10 (Bundler 2.4.x requires\n Ruby >= 2.6.0, but the Dockerfile installs Ruby 2.4.1); update\n Gemf\n[…]\nPython 3 dependency\n (rest2html script) instead of the MARKUP_RST Ruby constant\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nSigned-off-by: Zack Koppert <zkoppert@github.com>",
"is_bot": false,
"headline": "fix: address review feedback on Dockerfile compatibility",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-04-22T03:38:00Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "aeab80d03ea4cf0ce8bdeb1e6c2b620440624486",
"body": "docutils 0.22.4 requires Python >= 3.9 but the Dockerfile uses Python 2.\nPin to 0.18.1 (last py2-compatible release) with its py2.py3 wheel hash.\nCI workflow keeps 0.22.4 since it uses Python 3.x.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nSigned-off-by: Zack Koppert <zkoppert@github.com>",
"is_bot": false,
"headline": "fix: pin docutils to 0.18.1 in Dockerfile for Python 2 compat",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-04-22T02:31:18Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "ea45c19e9e964a16d54b4dabe58d95fa64be8ee3",
"body": "Address 4 high-severity code scanning findings from vuln-mgmt#195573:\n\n1. Pin Docker base image to SHA256 digest (code-scanning/14)\n2. Pin bundler gem to exact version 2.4.10 (code-scanning/16)\n3. Add hash verification for pip install in Dockerfile (code-scanning/15)\n4. Add hash verification for pip\n[…]\n pip hash verification since\n--hash is a per-requirement option, not a CLI flag.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nSigned-off-by: Zack Koppert <zkoppert@github.com>",
"is_bot": false,
"headline": "fix: remediate supply chain security findings",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-04-22T02:23:28Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "ee2b5c56206d336e4fa74da2241adb48b22c1aa5",
"body": "…encies-8dc89f899d",
"is_bot": false,
"headline": "Merge pull request #2040 from github/dependabot/github_actions/depend…",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-04-06T15:35:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "00d1378ebacdb2879f95f0ca2edeae35e0450f29",
"body": "Bumps the dependencies group with 2 updates: [ruby/setup-ruby](https://github.com/ruby/setup-ruby) and [actions/cache](https://github.com/actions/cache).\n\n\nUpdates `ruby/setup-ruby` from 1.293.0 to 1.299.0\n- [Release notes](https://github.com/ruby/setup-ruby/releases)\n- [Changelog](https://github.co\n[…]\nhe\n dependency-version: 5.0.4\n dependency-type: direct:production\n update-type: version-update:semver-patch\n dependency-group: dependencies\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps): bump the dependencies group with 2 updates",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-04-06T10:39:49Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "21bc752835a63f9b5f8ed5f76e5c58910826878c",
"body": "…esupport\n\nfix(deps): bump nokogiri to 1.19.2 and activesupport to 7.2.3.1",
"is_bot": false,
"headline": "Merge pull request #2039 from github/fix/security-deps-nokogiri-activ…",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-03-31T20:04:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a647442a5af3d3f0a7add40b2ce79652f193b177",
"body": "Address review feedback: replace open-ended >= 1.19.2 with pessimistic\nconstraints to prevent a hypothetical nokogiri 2.0 from being pulled in.\n\n- gemspec: ~> 1.19.2 (allows 1.19.x patches, caps at < 1.20)\n- Gemfile: ~> 1.19 (allows 1.19.x and 1.20.x, caps at < 2.0)\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "fix: use pessimistic nokogiri version constraints",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-03-31T20:03:39Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "d9fb0035a3215e30db077e4e3b981fa3ce36635a",
"body": "…encies-79039e3a39\n\nchore(deps): bump ruby/setup-ruby from 1.290.0 to 1.293.0 in the dependencies group",
"is_bot": false,
"headline": "Merge pull request #2032 from github/dependabot/github_actions/depend…",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-03-31T19:59:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b60c91a20e7935399edd64ef41444aee628adb69",
"body": "…s/setup-python-6.2.0\n\nchore(deps): bump actions/setup-python from 5.5.0 to 6.2.0",
"is_bot": false,
"headline": "Merge pull request #2033 from github/dependabot/github_actions/action…",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-03-31T19:59:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e6a5bd67b2753082527e52d9b68cf988991304c5",
"body": "…s/stale-10.2.0\n\nchore(deps): bump actions/stale from 9.1.0 to 10.2.0",
"is_bot": false,
"headline": "Merge pull request #2034 from github/dependabot/github_actions/action…",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-03-31T19:58:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "90ed84395269a30caabcaba429292630ad7b2a2b",
"body": "…s/cache-5.0.3\n\nchore(deps): bump actions/cache from 4.2.3 to 5.0.3",
"is_bot": false,
"headline": "Merge pull request #2036 from github/dependabot/github_actions/action…",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-03-31T19:52:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f3686f8b3908904917eeb4fbddf9d7449312fd36",
"body": "…s/checkout-6.0.2\n\nchore(deps): bump actions/checkout from 4.2.2 to 6.0.2",
"is_bot": false,
"headline": "Merge pull request #2035 from github/dependabot/github_actions/action…",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-03-31T19:48:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3ff1a26dcfad5785ef54f5080444c592151806fe",
"body": "Update security-impacted dependencies:\n\n- nokogiri: >= 1.19.1 → >= 1.19.2 (fixes libxml2 CVEs including\n CVE-2025-30206, CVE-2025-6021, CVE-2025-6170)\n- activesupport: ~> 7.1.5 → ~> 7.2.3 (resolves Dependabot alert #57)\n\nUpdates both the gemspec constraints and Gemfile, along with the\nresolved Gemfile.lock.\n\nCloses: github/vuln-mgmt#192367\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "fix(deps): bump nokogiri to 1.19.2 and activesupport to 7.2.3.1",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-03-31T19:41:23Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "632c8c7482fd84f031e6805294cd3ac952a0f05b",
"body": "Bumps [actions/cache](https://github.com/actions/cache) from 4.2.3 to 5.0.3.\n- [Release notes](https://github.com/actions/cache/releases)\n- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)\n- [Commits](https://github.com/actions/cache/compare/v4.2.3...v5.0.3)\n\n---\nupdated-dependenc\n[…]\ns:\n- dependency-name: actions/cache\n dependency-version: 5.0.3\n dependency-type: direct:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps): bump actions/cache from 4.2.3 to 5.0.3",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-03-16T10:50:43Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e3fa0f2fad7bbb28191cbb9d29f17d4e43f98723",
"body": "Bumps [actions/checkout](https://github.com/actions/checkout) from 4.2.2 to 6.0.2.\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.2.2...v6.0.2)\n\n---\nu\n[…]\n- dependency-name: actions/checkout\n dependency-version: 6.0.2\n dependency-type: direct:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps): bump actions/checkout from 4.2.2 to 6.0.2",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-03-16T10:50:40Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "15835ab0c45652af1602d2b26163adedd2547d5f",
"body": "Bumps [actions/stale](https://github.com/actions/stale) from 9.1.0 to 10.2.0.\n- [Release notes](https://github.com/actions/stale/releases)\n- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/stale/compare/v9.1.0...v10.2.0)\n\n---\nupdated-depend\n[…]\n:\n- dependency-name: actions/stale\n dependency-version: 10.2.0\n dependency-type: direct:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps): bump actions/stale from 9.1.0 to 10.2.0",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-03-16T10:50:37Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "c978d03de93c13b614adae6767c2854522f14ee6",
"body": "Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.5.0 to 6.2.0.\n- [Release notes](https://github.com/actions/setup-python/releases)\n- [Commits](https://github.com/actions/setup-python/compare/v5.5.0...v6.2.0)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-python\n dependency-version: 6.2.0\n dependency-type: direct:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps): bump actions/setup-python from 5.5.0 to 6.2.0",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-03-16T10:50:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e207ec8af00dabed8ad5ae82da1f6a4b02efbde0",
"body": "Bumps the dependencies group with 1 update: [ruby/setup-ruby](https://github.com/ruby/setup-ruby).\n\n\nUpdates `ruby/setup-ruby` from 1.290.0 to 1.293.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](h\n[…]\n\n dependency-version: 1.293.0\n dependency-type: direct:production\n update-type: version-update:semver-minor\n dependency-group: dependencies\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps): bump ruby/setup-ruby in the dependencies group",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-03-16T10:50:29Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "7d3724c0e69b876e63d8a7e947d417b105173bf1",
"body": "…encies-8751820eb1\n\nchore(deps): bump ruby/setup-ruby from 1.229.0 to 1.270.0 in the dependencies group across 1 directory",
"is_bot": false,
"headline": "Merge pull request #2014 from github/dependabot/github_actions/depend…",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-03-10T22:21:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f515ed0c8867906f38ed5f41cdcece429de47036",
"body": "Bumps the dependencies group with 1 update in the / directory: [ruby/setup-ruby](https://github.com/ruby/setup-ruby).\n\n\nUpdates `ruby/setup-ruby` from 1.229.0 to 1.270.0\n- [Release notes](https://github.com/ruby/setup-ruby/releases)\n- [Changelog](https://github.com/ruby/setup-ruby/blob/master/releas\n[…]\n\n dependency-version: 1.270.0\n dependency-type: direct:production\n update-type: version-update:semver-minor\n dependency-group: dependencies\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps): bump ruby/setup-ruby",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-03-10T21:55:22Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4039102c55465ddaec2d928299f975288f8db6ac",
"body": "…29adaf7f8d\n\nchore(deps): bump the dependencies group across 1 directory with 5 updates",
"is_bot": false,
"headline": "Merge pull request #2017 from github/dependabot/bundler/dependencies-…",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-03-10T21:54:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "616fbbe31e071c4c3d3e8b0323dee71346598bea",
"body": "Keep nokogiri >= 1.19.1 from master (newer than PR's ~> 1.18.10).\nPreserve PR's other dependency bumps (asciidoctor, rake, rexml,\ngithub-linguist, cgi).\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "fix: resolve merge conflicts with master",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-03-10T21:42:09Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "e9d09407de0d826e7ec41fffb9c5e82d0363df95",
"body": "…8532\n\nfix(deps): bump nokogiri to >= 1.19.1 to fix GHSA-wx95-c6cv-8532",
"is_bot": false,
"headline": "Merge pull request #2031 from github/fix/nokogiri-CVE-GHSA-wx95-c6cv-…",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-03-10T20:49:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "aef5252920c32f135327a99bb18d71df1e1e2a53",
"body": "Nokogiri 1.19.x requires Ruby >= 3.2, and Ruby 3.1 reached end of life\non 2025-03-31. Remove it from the CI matrix.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "ci: drop Ruby 3.1 from test matrix (EOL since March 2025)",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-03-10T19:17:28Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "244f19b7fb45626b37156ecb7d42e2122ab4d168",
"body": "Nokogiri < 1.19.1 does not check the return value from xmlC14NExecute,\nwhich is a medium-severity vulnerability. Updates the version constraint\nfrom ~> 1.18.9 (capped below 1.19.0) to >= 1.19.1 to resolve\nDependabot alert #53.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "fix(deps): bump nokogiri to >= 1.19.1 to fix GHSA-wx95-c6cv-8532",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2026-03-10T18:41:22Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "789f2ed865255097091c74f3abdd37cf94e62738",
"body": "…dates\n\nUpdates the requirements on [asciidoctor](https://github.com/asciidoctor/asciidoctor), [rake](https://github.com/ruby/rake), [rexml](https://github.com/ruby/rexml), [nokogiri](https://github.com/sparklemotion/nokogiri) and [github-linguist](https://github.com/github-linguist/linguist) to per\n[…]\nt\n dependency-version: 9.3.0\n dependency-type: direct:development\n update-type: version-update:semver-minor\n dependency-group: dependencies\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps): bump the dependencies group across 1 directory with 5 up…",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2025-12-22T10:03:15Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "2b0e7f216904253092c90754cd95aac6d499583d",
"body": "…41ed1r\n\nchore(deps): bump rexml from 3.4.1 to 3.4.2 in the bundler group across 1 directory",
"is_bot": false,
"headline": "Merge pull request #1993 from github/dependabot/bundler/bundler-6d4d9…",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2025-09-19T15:14:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d4c8f6a104a5051ee7ea82b7ae0b814c2e6149c5",
"body": "Bumps the bundler group with 1 update in the / directory: [rexml](https://github.com/ruby/rexml).\n\n\nUpdates `rexml` from 3.4.1 to 3.4.2\n- [Release notes](https://github.com/ruby/rexml/releases)\n- [Changelog](https://github.com/ruby/rexml/blob/master/NEWS.md)\n- [Commits](https://github.com/ruby/rexml\n[…]\n---\nupdated-dependencies:\n- dependency-name: rexml\n dependency-version: 3.4.2\n dependency-type: direct:production\n dependency-group: bundler\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps): bump rexml in the bundler group across 1 directory",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2025-09-17T19:21:22Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ebfff7059dcd84c8ec32df138392decfc6544fda",
"body": "…a4a0a\n\nchore(deps): bump nokogiri from 1.18.8 to 1.18.9 in the bundler group",
"is_bot": false,
"headline": "Merge pull request #1981 from github/dependabot/bundler/bundler-d9ba1…",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2025-07-22T15:34:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "86453b44896e453d0a758f000a555fbc4ba8f75a",
"body": "Bumps the bundler group with 1 update: [nokogiri](https://github.com/sparklemotion/nokogiri).\n\n\nUpdates `nokogiri` from 1.18.8 to 1.18.9\n- [Release notes](https://github.com/sparklemotion/nokogiri/releases)\n- [Changelog](https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md)\n- [Commits](h\n[…]\nupdated-dependencies:\n- dependency-name: nokogiri\n dependency-version: 1.18.9\n dependency-type: direct:production\n dependency-group: bundler\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps): bump nokogiri from 1.18.8 to 1.18.9 in the bundler group",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2025-07-22T04:43:57Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "900ed4f74fb35131e4a0df9c675196f9a8c42678",
"body": "…bbe88\n\nchore(deps): bump nokogiri from 1.18.7 to 1.18.8 in the bundler group",
"is_bot": false,
"headline": "Merge pull request #1955 from github/dependabot/bundler/bundler-8bcba…",
"author_name": "Zack Koppert",
"author_login": "zkoppert",
"committed_at": "2025-06-18T14:09:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a732c1a614333efe7b6a367238ec1c278fcb3a30",
"body": "Bumps the bundler group with 1 update: [nokogiri](https://github.com/sparklemotion/nokogiri).\n\n\nUpdates `nokogiri` from 1.18.7 to 1.18.8\n- [Release notes](https://github.com/sparklemotion/nokogiri/releases)\n- [Changelog](https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md)\n- [Commits](h\n[…]\nupdated-dependencies:\n- dependency-name: nokogiri\n dependency-version: 1.18.8\n dependency-type: direct:production\n dependency-group: bundler\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps): bump nokogiri from 1.18.7 to 1.18.8 in the bundler group",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2025-04-22T04:55:46Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "7981c280b089819afd51361b55a8062fa62b20d4",
"body": "Bump nokogiri to 1.18, require at least Ruby 3.1",
"is_bot": false,
"headline": "Merge pull request #1947 from github/maxbeizer/noko-1.18",
"author_name": "Max Beizer",
"author_login": "maxbeizer",
"committed_at": "2025-04-01T18:10:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "92a2ed2692f9b162e7008820f32d226bb99f88e8",
"body": null,
"is_bot": false,
"headline": "Bump nokogiri to 1.18, require at least Ruby 3.1",
"author_name": "Max Beizer",
"author_login": "maxbeizer",
"committed_at": "2025-04-01T14:34:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "458f0e979c2bdfa96ed5a53f800301674e650c77",
"body": "…st-9.1.0\n\nchore(deps): bump github-linguist from 7.30.0 to 9.1.0",
"is_bot": false,
"headline": "Merge pull request #1944 from github/dependabot/bundler/github-lingui…",
"author_name": "Max Beizer",
"author_login": "maxbeizer",
"committed_at": "2025-03-31T19:57:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ead5ff8f21d0db8d672a7283a6afec24cbfee3ea",
"body": "Bumps [github-linguist](https://github.com/github-linguist/linguist) from 7.30.0 to 9.1.0.\n- [Release notes](https://github.com/github-linguist/linguist/releases)\n- [Commits](https://github.com/github-linguist/linguist/compare/v7.30.0...v9.1.0)\n\n---\nupdated-dependencies:\n- dependency-name: github-linguist\n dependency-type: direct:development\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps): bump github-linguist from 7.30.0 to 9.1.0",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2025-03-31T15:05:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2b59b4c94deeecb6732311518fa0f69eaec38cca",
"body": "…b4907dc5b1\n\nchore(deps): bump rdoc from 6.13.0 to 6.13.1 in the dependencies group",
"is_bot": false,
"headline": "Merge pull request #1943 from github/dependabot/bundler/dependencies-…",
"author_name": "Max Beizer",
"author_login": "maxbeizer",
"committed_at": "2025-03-31T15:04:39Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 22,
"commits_last_year": 91,
"latest_release_at": "2026-05-05T00:37:48Z",
"latest_release_tag": "v6.0.0",
"releases_from_tags": false,
"days_since_last_push": 6,
"active_weeks_last_year": 17,
"days_since_latest_release": 78,
"mean_days_between_releases": 306.6
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": true,
"health_percentage": 75,
"has_issue_template": false,
"has_code_of_conduct": true,
"has_pull_request_template": false
},
"ecosystem": {
"packages": [
{
"name": "github-markup",
"exists": true,
"license": "MIT",
"keywords": [],
"ecosystem": "rubygems",
"matches_repo": true,
"registry_url": "https://rubygems.org/gems/github-markup",
"is_deprecated": false,
"latest_version": "6.0.0",
"repository_url": "https://github.com/github/markup",
"versions_count": 66,
"total_downloads": 30915099,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": null,
"first_published_at": "2009-11-03T04:47:03.971000Z",
"latest_published_at": "2026-05-05T00:41:09.321000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 77
}
]
},
"popularity": {
"forks": 3368,
"stars": 6037,
"watchers": 614,
"fork_history": {
"days": [
{
"date": "2017-03-02",
"count": 3
},
{
"date": "2017-03-03",
"count": 1
},
{
"date": "2017-03-04",
"count": 1
},
{
"date": "2017-03-06",
"count": 2
},
{
"date": "2017-03-07",
"count": 2
},
{
"date": "2017-03-12",
"count": 2
},
{
"date": "2017-03-14",
"count": 1
},
{
"date": "2017-03-15",
"count": 1
},
{
"date": "2017-03-18",
"count": 1
},
{
"date": "2017-03-19",
"count": 1
},
{
"date": "2017-03-21",
"count": 2
},
{
"date": "2017-03-22",
"count": 3
},
{
"date": "2017-03-23",
"count": 3
},
{
"date": "2017-03-24",
"count": 1
},
{
"date": "2017-03-25",
"count": 1
},
{
"date": "2017-03-27",
"count": 2
},
{
"date": "2017-03-28",
"count": 4
},
{
"date": "2017-03-30",
"count": 1
},
{
"date": "2017-04-02",
"count": 1
},
{
"date": "2017-04-03",
"count": 1
},
{
"date": "2017-04-04",
"count": 1
},
{
"date": "2017-04-05",
"count": 3
},
{
"date": "2017-04-06",
"count": 3
},
{
"date": "2017-04-07",
"count": 2
},
{
"date": "2017-04-09",
"count": 1
},
{
"date": "2017-04-10",
"count": 2
},
{
"date": "2017-04-11",
"count": 2
},
{
"date": "2017-04-13",
"count": 1
},
{
"date": "2017-04-14",
"count": 1
},
{
"date": "2017-04-15",
"count": 2
},
{
"date": "2017-04-16",
"count": 1
},
{
"date": "2017-04-17",
"count": 1
},
{
"date": "2017-04-18",
"count": 2
},
{
"date": "2017-04-20",
"count": 1
},
{
"date": "2017-04-21",
"count": 1
},
{
"date": "2017-04-23",
"count": 2
},
{
"date": "2017-04-25",
"count": 2
},
{
"date": "2017-04-26",
"count": 1
},
{
"date": "2017-04-27",
"count": 2
},
{
"date": "2017-04-28",
"count": 1
},
{
"date": "2017-05-01",
"count": 2
},
{
"date": "2017-05-02",
"count": 1
},
{
"date": "2017-05-03",
"count": 1
},
{
"date": "2017-05-04",
"count": 1
},
{
"date": "2017-05-05",
"count": 1
},
{
"date": "2017-05-06",
"count": 1
},
{
"date": "2017-05-09",
"count": 2
},
{
"date": "2017-05-10",
"count": 1
},
{
"date": "2017-05-11",
"count": 3
},
{
"date": "2017-05-12",
"count": 2
},
{
"date": "2017-05-14",
"count": 1
},
{
"date": "2017-05-15",
"count": 1
},
{
"date": "2017-05-17",
"count": 1
},
{
"date": "2017-05-18",
"count": 1
},
{
"date": "2017-05-19",
"count": 1
},
{
"date": "2017-05-22",
"count": 1
},
{
"date": "2017-05-23",
"count": 2
},
{
"date": "2017-05-24",
"count": 1
},
{
"date": "2017-05-27",
"count": 1
},
{
"date": "2017-05-28",
"count": 1
},
{
"date": "2017-05-29",
"count": 2
},
{
"date": "2017-05-30",
"count": 1
},
{
"date": "2017-06-01",
"count": 5
},
{
"date": "2017-06-02",
"count": 1
},
{
"date": "2017-06-07",
"count": 1
},
{
"date": "2017-06-08",
"count": 2
},
{
"date": "2017-06-11",
"count": 1
},
{
"date": "2017-06-12",
"count": 1
},
{
"date": "2017-06-14",
"count": 4
},
{
"date": "2017-06-17",
"count": 1
},
{
"date": "2017-06-18",
"count": 1
},
{
"date": "2017-06-19",
"count": 2
},
{
"date": "2017-06-23",
"count": 1
},
{
"date": "2017-06-24",
"count": 2
},
{
"date": "2017-06-26",
"count": 1
},
{
"date": "2017-06-28",
"count": 1
},
{
"date": "2017-06-29",
"count": 2
},
{
"date": "2017-07-03",
"count": 1
},
{
"date": "2017-07-04",
"count": 1
},
{
"date": "2017-07-05",
"count": 2
},
{
"date": "2017-07-06",
"count": 1
},
{
"date": "2017-07-11",
"count": 1
},
{
"date": "2017-07-12",
"count": 2
},
{
"date": "2017-07-13",
"count": 2
},
{
"date": "2017-07-14",
"count": 2
},
{
"date": "2017-07-16",
"count": 2
},
{
"date": "2017-07-17",
"count": 1
},
{
"date": "2017-07-18",
"count": 2
},
{
"date": "2017-07-19",
"count": 1
},
{
"date": "2017-07-21",
"count": 4
},
{
"date": "2017-07-22",
"count": 2
},
{
"date": "2017-07-24",
"count": 1
},
{
"date": "2017-07-26",
"count": 1
},
{
"date": "2017-07-27",
"count": 2
},
{
"date": "2017-07-28",
"count": 2
},
{
"date": "2017-07-31",
"count": 3
},
{
"date": "2017-08-02",
"count": 5
},
{
"date": "2017-08-04",
"count": 4
},
{
"date": "2017-08-05",
"count": 1
},
{
"date": "2017-08-06",
"count": 1
},
{
"date": "2017-08-19",
"count": 2
},
{
"date": "2017-08-22",
"count": 1
},
{
"date": "2017-08-24",
"count": 1
},
{
"date": "2017-08-25",
"count": 1
},
{
"date": "2017-08-26",
"count": 1
},
{
"date": "2017-08-27",
"count": 1
},
{
"date": "2017-08-28",
"count": 1
},
{
"date": "2017-09-02",
"count": 1
},
{
"date": "2017-09-04",
"count": 1
},
{
"date": "2017-09-06",
"count": 1
},
{
"date": "2017-09-11",
"count": 2
},
{
"date": "2017-09-12",
"count": 2
},
{
"date": "2017-09-14",
"count": 1
},
{
"date": "2017-09-18",
"count": 3
},
{
"date": "2017-09-19",
"count": 2
},
{
"date": "2017-09-21",
"count": 1
},
{
"date": "2017-09-23",
"count": 1
},
{
"date": "2017-09-27",
"count": 1
},
{
"date": "2017-09-28",
"count": 1
},
{
"date": "2017-09-29",
"count": 1
},
{
"date": "2017-10-01",
"count": 1
},
{
"date": "2017-10-02",
"count": 1
},
{
"date": "2017-10-04",
"count": 2
},
{
"date": "2017-10-06",
"count": 2
},
{
"date": "2017-10-07",
"count": 1
},
{
"date": "2017-10-09",
"count": 1
},
{
"date": "2017-10-12",
"count": 3
},
{
"date": "2017-10-13",
"count": 1
},
{
"date": "2017-10-16",
"count": 1
},
{
"date": "2017-10-19",
"count": 1
},
{
"date": "2017-10-21",
"count": 1
},
{
"date": "2017-10-24",
"count": 2
},
{
"date": "2017-10-25",
"count": 1
},
{
"date": "2017-10-26",
"count": 1
},
{
"date": "2017-10-28",
"count": 1
},
{
"date": "2017-10-30",
"count": 1
},
{
"date": "2017-10-31",
"count": 1
},
{
"date": "2017-11-03",
"count": 1
},
{
"date": "2017-11-05",
"count": 1
},
{
"date": "2017-11-07",
"count": 1
},
{
"date": "2017-11-09",
"count": 2
},
{
"date": "2017-11-10",
"count": 1
},
{
"date": "2017-11-11",
"count": 1
},
{
"date": "2017-11-12",
"count": 1
},
{
"date": "2017-11-13",
"count": 1
},
{
"date": "2017-11-14",
"count": 2
},
{
"date": "2017-11-17",
"count": 1
},
{
"date": "2017-11-19",
"count": 1
},
{
"date": "2017-11-20",
"count": 1
},
{
"date": "2017-11-21",
"count": 2
},
{
"date": "2017-11-22",
"count": 1
},
{
"date": "2017-11-23",
"count": 1
},
{
"date": "2017-11-24",
"count": 2
},
{
"date": "2017-11-27",
"count": 1
},
{
"date": "2017-11-29",
"count": 1
},
{
"date": "2017-11-30",
"count": 1
},
{
"date": "2017-12-03",
"count": 1
},
{
"date": "2017-12-05",
"count": 2
},
{
"date": "2017-12-11",
"count": 1
},
{
"date": "2017-12-13",
"count": 1
},
{
"date": "2017-12-18",
"count": 1
},
{
"date": "2017-12-20",
"count": 1
},
{
"date": "2017-12-21",
"count": 1
},
{
"date": "2017-12-22",
"count": 1
},
{
"date": "2017-12-23",
"count": 1
},
{
"date": "2017-12-24",
"count": 2
},
{
"date": "2017-12-28",
"count": 1
},
{
"date": "2018-01-03",
"count": 1
},
{
"date": "2018-01-05",
"count": 1
},
{
"date": "2018-01-11",
"count": 1
},
{
"date": "2018-01-14",
"count": 1
},
{
"date": "2018-01-16",
"count": 1
},
{
"date": "2018-01-17",
"count": 1
},
{
"date": "2018-01-18",
"count": 3
},
{
"date": "2018-01-21",
"count": 2
},
{
"date": "2018-01-25",
"count": 3
},
{
"date": "2018-01-26",
"count": 1
},
{
"date": "2018-02-04",
"count": 1
},
{
"date": "2018-02-08",
"count": 1
},
{
"date": "2018-02-12",
"count": 1
},
{
"date": "2018-02-13",
"count": 1
},
{
"date": "2018-02-14",
"count": 1
},
{
"date": "2018-02-21",
"count": 1
},
{
"date": "2018-02-27",
"count": 1
},
{
"date": "2018-03-04",
"count": 1
},
{
"date": "2018-03-08",
"count": 1
},
{
"date": "2018-03-12",
"count": 3
},
{
"date": "2018-03-13",
"count": 2
},
{
"date": "2018-03-16",
"count": 1
},
{
"date": "2018-03-26",
"count": 1
},
{
"date": "2018-03-29",
"count": 1
},
{
"date": "2018-03-31",
"count": 2
},
{
"date": "2018-04-01",
"count": 1
},
{
"date": "2018-04-02",
"count": 1
},
{
"date": "2018-04-08",
"count": 1
},
{
"date": "2018-04-12",
"count": 1
},
{
"date": "2018-04-18",
"count": 1
},
{
"date": "2018-04-20",
"count": 1
},
{
"date": "2018-04-21",
"count": 2
},
{
"date": "2018-04-25",
"count": 1
},
{
"date": "2018-04-26",
"count": 2
},
{
"date": "2018-04-27",
"count": 1
},
{
"date": "2018-04-30",
"count": 1
},
{
"date": "2018-05-03",
"count": 1
},
{
"date": "2018-05-07",
"count": 1
},
{
"date": "2018-05-09",
"count": 1
},
{
"date": "2018-05-11",
"count": 1
},
{
"date": "2018-05-13",
"count": 1
},
{
"date": "2018-05-18",
"count": 1
},
{
"date": "2018-05-22",
"count": 1
},
{
"date": "2018-05-24",
"count": 1
},
{
"date": "2018-06-01",
"count": 1
},
{
"date": "2018-06-10",
"count": 1
},
{
"date": "2018-06-11",
"count": 1
},
{
"date": "2018-06-14",
"count": 1
},
{
"date": "2018-06-19",
"count": 1
},
{
"date": "2018-06-20",
"count": 2
},
{
"date": "2018-06-21",
"count": 1
},
{
"date": "2018-06-22",
"count": 1
},
{
"date": "2018-06-26",
"count": 1
},
{
"date": "2018-06-27",
"count": 1
},
{
"date": "2018-06-29",
"count": 1
},
{
"date": "2018-07-01",
"count": 1
},
{
"date": "2018-07-05",
"count": 1
},
{
"date": "2018-07-07",
"count": 1
},
{
"date": "2018-07-08",
"count": 2
},
{
"date": "2018-07-15",
"count": 1
},
{
"date": "2018-07-17",
"count": 1
},
{
"date": "2018-07-20",
"count": 1
},
{
"date": "2018-07-21",
"count": 1
},
{
"date": "2018-07-23",
"count": 1
},
{
"date": "2018-07-24",
"count": 1
},
{
"date": "2018-07-25",
"count": 1
},
{
"date": "2018-07-28",
"count": 1
},
{
"date": "2018-07-31",
"count": 1
},
{
"date": "2018-08-01",
"count": 1
},
{
"date": "2018-08-03",
"count": 1
},
{
"date": "2018-08-08",
"count": 1
},
{
"date": "2018-08-10",
"count": 1
},
{
"date": "2018-08-14",
"count": 1
},
{
"date": "2018-08-15",
"count": 1
},
{
"date": "2018-08-24",
"count": 1
},
{
"date": "2018-08-30",
"count": 1
},
{
"date": "2018-09-03",
"count": 2
},
{
"date": "2018-09-04",
"count": 1
},
{
"date": "2018-09-07",
"count": 1
},
{
"date": "2018-09-14",
"count": 1
},
{
"date": "2018-09-24",
"count": 1
},
{
"date": "2018-09-25",
"count": 1
},
{
"date": "2018-09-28",
"count": 1
},
{
"date": "2018-09-30",
"count": 1
},
{
"date": "2018-10-02",
"count": 2
},
{
"date": "2018-10-03",
"count": 1
},
{
"date": "2018-10-04",
"count": 1
},
{
"date": "2018-10-07",
"count": 1
},
{
"date": "2018-10-09",
"count": 1
},
{
"date": "2018-10-10",
"count": 1
},
{
"date": "2018-10-11",
"count": 2
},
{
"date": "2018-10-16",
"count": 1
},
{
"date": "2018-10-20",
"count": 1
},
{
"date": "2018-10-26",
"count": 1
},
{
"date": "2018-10-29",
"count": 1
},
{
"date": "2018-11-06",
"count": 3
},
{
"date": "2018-11-07",
"count": 1
},
{
"date": "2018-11-09",
"count": 1
},
{
"date": "2018-11-11",
"count": 1
},
{
"date": "2018-11-12",
"count": 1
},
{
"date": "2018-11-16",
"count": 2
},
{
"date": "2018-11-18",
"count": 1
},
{
"date": "2018-11-23",
"count": 1
},
{
"date": "2018-11-27",
"count": 1
},
{
"date": "2018-11-30",
"count": 1
},
{
"date": "2018-12-02",
"count": 1
},
{
"date": "2018-12-03",
"count": 1
},
{
"date": "2018-12-14",
"count": 1
},
{
"date": "2018-12-17",
"count": 1
},
{
"date": "2018-12-21",
"count": 1
},
{
"date": "2018-12-23",
"count": 1
},
{
"date": "2018-12-29",
"count": 1
},
{
"date": "2019-01-12",
"count": 1
},
{
"date": "2019-01-14",
"count": 1
},
{
"date": "2019-01-18",
"count": 1
},
{
"date": "2019-01-21",
"count": 1
},
{
"date": "2019-01-22",
"count": 1
},
{
"date": "2019-01-25",
"count": 2
},
{
"date": "2019-01-29",
"count": 1
},
{
"date": "2019-01-30",
"count": 1
},
{
"date": "2019-02-07",
"count": 2
},
{
"date": "2019-02-09",
"count": 1
},
{
"date": "2019-02-12",
"count": 1
},
{
"date": "2019-02-14",
"count": 1
},
{
"date": "2019-02-15",
"count": 1
},
{
"date": "2019-02-17",
"count": 1
},
{
"date": "2019-02-22",
"count": 2
},
{
"date": "2019-02-25",
"count": 1
},
{
"date": "2019-03-02",
"count": 1
},
{
"date": "2019-03-06",
"count": 1
},
{
"date": "2019-03-08",
"count": 2
},
{
"date": "2019-03-09",
"count": 1
},
{
"date": "2019-03-12",
"count": 1
},
{
"date": "2019-03-16",
"count": 1
},
{
"date": "2019-03-19",
"count": 1
},
{
"date": "2019-03-20",
"count": 1
},
{
"date": "2019-03-24",
"count": 1
},
{
"date": "2019-03-27",
"count": 1
},
{
"date": "2019-03-28",
"count": 1
},
{
"date": "2019-04-01",
"count": 2
},
{
"date": "2019-04-06",
"count": 2
},
{
"date": "2019-04-09",
"count": 1
},
{
"date": "2019-04-12",
"count": 1
},
{
"date": "2019-04-16",
"count": 1
},
{
"date": "2019-04-20",
"count": 1
},
{
"date": "2019-04-27",
"count": 2
},
{
"date": "2019-05-05",
"count": 2
},
{
"date": "2019-05-06",
"count": 1
},
{
"date": "2019-05-07",
"count": 2
},
{
"date": "2019-05-08",
"count": 1
},
{
"date": "2019-05-12",
"count": 1
},
{
"date": "2019-05-14",
"count": 2
},
{
"date": "2019-05-21",
"count": 2
},
{
"date": "2019-05-22",
"count": 1
},
{
"date": "2019-05-23",
"count": 1
},
{
"date": "2019-05-28",
"count": 1
},
{
"date": "2019-05-29",
"count": 2
},
{
"date": "2019-06-01",
"count": 1
},
{
"date": "2019-06-02",
"count": 1
},
{
"date": "2019-06-09",
"count": 1
},
{
"date": "2019-06-11",
"count": 1
},
{
"date": "2019-06-12",
"count": 1
},
{
"date": "2019-06-23",
"count": 1
},
{
"date": "2019-06-24",
"count": 1
},
{
"date": "2019-06-25",
"count": 1
},
{
"date": "2019-06-27",
"count": 1
},
{
"date": "2019-06-28",
"count": 1
},
{
"date": "2019-07-02",
"count": 2
},
{
"date": "2019-07-04",
"count": 1
},
{
"date": "2019-07-06",
"count": 1
},
{
"date": "2019-07-15",
"count": 1
},
{
"date": "2019-07-22",
"count": 1
},
{
"date": "2019-07-28",
"count": 1
},
{
"date": "2019-07-30",
"count": 1
},
{
"date": "2019-08-08",
"count": 1
},
{
"date": "2019-08-09",
"count": 1
},
{
"date": "2019-08-10",
"count": 1
},
{
"date": "2019-08-14",
"count": 1
},
{
"date": "2019-08-20",
"count": 1
},
{
"date": "2019-08-21",
"count": 1
},
{
"date": "2019-08-24",
"count": 1
},
{
"date": "2019-08-26",
"count": 1
},
{
"date": "2019-08-27",
"count": 1
},
{
"date": "2019-09-01",
"count": 1
},
{
"date": "2019-09-03",
"count": 1
},
{
"date": "2019-09-04",
"count": 1
},
{
"date": "2019-09-10",
"count": 1
},
{
"date": "2019-09-12",
"count": 1
},
{
"date": "2019-09-13",
"count": 1
},
{
"date": "2019-09-17",
"count": 1
},
{
"date": "2019-09-18",
"count": 1
},
{
"date": "2019-09-19",
"count": 1
},
{
"date": "2019-09-29",
"count": 1
},
{
"date": "2019-09-30",
"count": 1
},
{
"date": "2019-10-01",
"count": 1
},
{
"date": "2019-10-05",
"count": 1
},
{
"date": "2019-10-06",
"count": 1
},
{
"date": "2019-10-08",
"count": 3
},
{
"date": "2019-10-10",
"count": 2
},
{
"date": "2019-10-11",
"count": 1
},
{
"date": "2019-10-13",
"count": 2
},
{
"date": "2019-10-18",
"count": 1
},
{
"date": "2019-10-22",
"count": 1
},
{
"date": "2019-10-24",
"count": 1
},
{
"date": "2019-10-30",
"count": 1
},
{
"date": "2019-11-01",
"count": 2
},
{
"date": "2019-11-06",
"count": 1
},
{
"date": "2019-11-09",
"count": 1
},
{
"date": "2019-11-12",
"count": 2
},
{
"date": "2019-11-14",
"count": 1
},
{
"date": "2019-11-15",
"count": 1
},
{
"date": "2019-11-17",
"count": 1
},
{
"date": "2019-11-21",
"count": 1
},
{
"date": "2019-11-23",
"count": 1
},
{
"date": "2019-11-25",
"count": 1
},
{
"date": "2019-11-29",
"count": 1
},
{
"date": "2019-12-03",
"count": 1
},
{
"date": "2019-12-06",
"count": 2
},
{
"date": "2019-12-07",
"count": 1
},
{
"date": "2019-12-09",
"count": 2
},
{
"date": "2019-12-11",
"count": 1
},
{
"date": "2019-12-14",
"count": 1
},
{
"date": "2019-12-16",
"count": 1
},
{
"date": "2019-12-23",
"count": 2
},
{
"date": "2019-12-27",
"count": 1
},
{
"date": "2019-12-30",
"count": 1
},
{
"date": "2020-01-02",
"count": 1
},
{
"date": "2020-01-06",
"count": 1
},
{
"date": "2020-01-09",
"count": 1
},
{
"date": "2020-01-10",
"count": 1
},
{
"date": "2020-01-11",
"count": 2
},
{
"date": "2020-01-12",
"count": 1
},
{
"date": "2020-01-17",
"count": 1
},
{
"date": "2020-01-20",
"count": 1
},
{
"date": "2020-01-21",
"count": 1
},
{
"date": "2020-01-22",
"count": 1
},
{
"date": "2020-01-27",
"count": 2
},
{
"date": "2020-01-28",
"count": 3
},
{
"date": "2020-01-30",
"count": 1
},
{
"date": "2020-01-31",
"count": 1
},
{
"date": "2020-02-01",
"count": 1
},
{
"date": "2020-02-02",
"count": 1
},
{
"date": "2020-02-06",
"count": 1
},
{
"date": "2020-02-10",
"count": 1
},
{
"date": "2020-02-11",
"count": 2
},
{
"date": "2020-02-12",
"count": 1
},
{
"date": "2020-02-13",
"count": 1
},
{
"date": "2020-02-16",
"count": 1
},
{
"date": "2020-02-17",
"count": 1
},
{
"date": "2020-02-20",
"count": 1
},
{
"date": "2020-02-26",
"count": 1
},
{
"date": "2020-03-04",
"count": 1
},
{
"date": "2020-03-07",
"count": 2
},
{
"date": "2020-03-08",
"count": 1
},
{
"date": "2020-03-10",
"count": 1
},
{
"date": "2020-03-12",
"count": 1
},
{
"date": "2020-03-16",
"count": 1
},
{
"date": "2020-03-21",
"count": 1
},
{
"date": "2020-03-25",
"count": 1
},
{
"date": "2020-03-30",
"count": 1
},
{
"date": "2020-03-31",
"count": 1
},
{
"date": "2020-04-04",
"count": 1
},
{
"date": "2020-04-06",
"count": 2
},
{
"date": "2020-04-09",
"count": 2
},
{
"date": "2020-04-10",
"count": 2
},
{
"date": "2020-04-12",
"count": 1
},
{
"date": "2020-04-13",
"count": 1
},
{
"date": "2020-04-14",
"count": 1
},
{
"date": "2020-04-16",
"count": 1
},
{
"date": "2020-04-17",
"count": 1
},
{
"date": "2020-04-18",
"count": 1
},
{
"date": "2020-04-21",
"count": 2
},
{
"date": "2020-04-22",
"count": 1
},
{
"date": "2020-04-24",
"count": 1
},
{
"date": "2020-04-28",
"count": 2
},
{
"date": "2020-05-02",
"count": 2
},
{
"date": "2020-05-03",
"count": 2
},
{
"date": "2020-05-04",
"count": 1
},
{
"date": "2020-05-05",
"count": 2
},
{
"date": "2020-05-06",
"count": 1
},
{
"date": "2020-05-09",
"count": 3
},
{
"date": "2020-05-13",
"count": 1
},
{
"date": "2020-05-15",
"count": 1
},
{
"date": "2020-05-16",
"count": 2
},
{
"date": "2020-05-18",
"count": 1
},
{
"date": "2020-05-20",
"count": 1
},
{
"date": "2020-05-21",
"count": 1
},
{
"date": "2020-05-22",
"count": 1
},
{
"date": "2020-05-26",
"count": 1
},
{
"date": "2020-05-28",
"count": 1
},
{
"date": "2020-05-30",
"count": 2
},
{
"date": "2020-05-31",
"count": 1
},
{
"date": "2020-06-02",
"count": 1
},
{
"date": "2020-06-03",
"count": 3
},
{
"date": "2020-06-04",
"count": 1
},
{
"date": "2020-06-07",
"count": 2
},
{
"date": "2020-06-08",
"count": 1
},
{
"date": "2020-06-09",
"count": 1
},
{
"date": "2020-06-13",
"count": 1
},
{
"date": "2020-06-15",
"count": 1
},
{
"date": "2020-06-20",
"count": 1
},
{
"date": "2020-06-27",
"count": 1
},
{
"date": "2020-06-28",
"count": 1
},
{
"date": "2020-06-29",
"count": 1
},
{
"date": "2020-07-07",
"count": 1
},
{
"date": "2020-07-08",
"count": 1
},
{
"date": "2020-07-12",
"count": 2
},
{
"date": "2020-07-13",
"count": 1
},
{
"date": "2020-07-14",
"count": 1
},
{
"date": "2020-07-15",
"count": 4
},
{
"date": "2020-07-16",
"count": 1
},
{
"date": "2020-07-17",
"count": 2
},
{
"date": "2020-07-20",
"count": 1
},
{
"date": "2020-07-23",
"count": 1
},
{
"date": "2020-07-28",
"count": 1
},
{
"date": "2020-07-31",
"count": 1
},
{
"date": "2020-08-01",
"count": 1
},
{
"date": "2020-08-03",
"count": 1
},
{
"date": "2020-08-10",
"count": 1
},
{
"date": "2020-08-11",
"count": 1
},
{
"date": "2020-08-12",
"count": 1
},
{
"date": "2020-08-14",
"count": 2
},
{
"date": "2020-08-16",
"count": 1
},
{
"date": "2020-08-17",
"count": 1
},
{
"date": "2020-08-18",
"count": 1
},
{
"date": "2020-08-19",
"count": 1
},
{
"date": "2020-08-26",
"count": 3
},
{
"date": "2020-08-30",
"count": 1
},
{
"date": "2020-09-18",
"count": 1
},
{
"date": "2020-09-21",
"count": 1
},
{
"date": "2020-09-25",
"count": 2
},
{
"date": "2020-10-01",
"count": 1
},
{
"date": "2020-10-02",
"count": 2
},
{
"date": "2020-10-05",
"count": 1
},
{
"date": "2020-10-09",
"count": 3
},
{
"date": "2020-10-12",
"count": 1
},
{
"date": "2020-10-13",
"count": 2
},
{
"date": "2020-10-16",
"count": 1
},
{
"date": "2020-10-23",
"count": 1
},
{
"date": "2020-10-26",
"count": 1
},
{
"date": "2020-10-27",
"count": 1
},
{
"date": "2020-11-10",
"count": 1
},
{
"date": "2020-11-11",
"count": 1
},
{
"date": "2020-11-20",
"count": 1
},
{
"date": "2020-11-21",
"count": 1
},
{
"date": "2020-11-27",
"count": 1
},
{
"date": "2020-12-03",
"count": 1
},
{
"date": "2020-12-04",
"count": 1
},
{
"date": "2020-12-09",
"count": 1
},
{
"date": "2020-12-11",
"count": 1
},
{
"date": "2020-12-14",
"count": 1
},
{
"date": "2020-12-17",
"count": 1
},
{
"date": "2020-12-22",
"count": 1
},
{
"date": "2020-12-25",
"count": 2
},
{
"date": "2020-12-26",
"count": 1
},
{
"date": "2020-12-27",
"count": 1
},
{
"date": "2020-12-29",
"count": 1
},
{
"date": "2020-12-30",
"count": 1
},
{
"date": "2020-12-31",
"count": 1
},
{
"date": "2021-01-04",
"count": 1
},
{
"date": "2021-01-05",
"count": 1
},
{
"date": "2021-01-06",
"count": 1
},
{
"date": "2021-01-07",
"count": 1
},
{
"date": "2021-01-13",
"count": 1
},
{
"date": "2021-01-15",
"count": 1
},
{
"date": "2021-01-18",
"count": 1
},
{
"date": "2021-01-20",
"count": 1
},
{
"date": "2021-01-21",
"count": 2
},
{
"date": "2021-01-26",
"count": 1
},
{
"date": "2021-01-29",
"count": 1
},
{
"date": "2021-02-02",
"count": 1
},
{
"date": "2021-02-04",
"count": 1
},
{
"date": "2021-02-06",
"count": 1
},
{
"date": "2021-02-10",
"count": 1
},
{
"date": "2021-02-11",
"count": 1
},
{
"date": "2021-02-14",
"count": 1
},
{
"date": "2021-02-16",
"count": 1
},
{
"date": "2021-02-18",
"count": 1
},
{
"date": "2021-02-22",
"count": 1
},
{
"date": "2021-02-28",
"count": 1
},
{
"date": "2021-03-02",
"count": 2
},
{
"date": "2021-03-03",
"count": 1
},
{
"date": "2021-03-08",
"count": 2
},
{
"date": "2021-03-09",
"count": 2
},
{
"date": "2021-03-11",
"count": 1
},
{
"date": "2021-03-16",
"count": 1
},
{
"date": "2021-03-18",
"count": 1
},
{
"date": "2021-03-21",
"count": 1
},
{
"date": "2021-03-24",
"count": 2
},
{
"date": "2021-03-29",
"count": 1
},
{
"date": "2021-04-01",
"count": 1
},
{
"date": "2021-04-02",
"count": 1
},
{
"date": "2021-04-10",
"count": 1
},
{
"date": "2021-04-12",
"count": 1
},
{
"date": "2021-04-15",
"count": 1
},
{
"date": "2021-04-16",
"count": 2
},
{
"date": "2021-04-17",
"count": 1
},
{
"date": "2021-04-19",
"count": 1
},
{
"date": "2021-04-20",
"count": 1
},
{
"date": "2021-04-27",
"count": 1
},
{
"date": "2021-04-30",
"count": 1
},
{
"date": "2021-05-05",
"count": 1
},
{
"date": "2021-05-12",
"count": 1
},
{
"date": "2021-05-14",
"count": 1
},
{
"date": "2021-05-23",
"count": 1
},
{
"date": "2021-05-31",
"count": 2
},
{
"date": "2021-06-03",
"count": 1
},
{
"date": "2021-06-08",
"count": 2
},
{
"date": "2021-06-14",
"count": 1
},
{
"date": "2021-06-19",
"count": 1
},
{
"date": "2021-06-22",
"count": 1
},
{
"date": "2021-06-25",
"count": 1
},
{
"date": "2021-06-28",
"count": 1
},
{
"date": "2021-07-02",
"count": 2
},
{
"date": "2021-07-07",
"count": 1
},
{
"date": "2021-07-11",
"count": 2
},
{
"date": "2021-07-14",
"count": 1
},
{
"date": "2021-07-18",
"count": 1
},
{
"date": "2021-07-20",
"count": 1
},
{
"date": "2021-07-22",
"count": 3
},
{
"date": "2021-07-26",
"count": 1
},
{
"date": "2021-07-28",
"count": 1
},
{
"date": "2021-07-30",
"count": 1
},
{
"date": "2021-08-01",
"count": 1
},
{
"date": "2021-08-02",
"count": 1
},
{
"date": "2021-08-03",
"count": 1
},
{
"date": "2021-08-04",
"count": 1
},
{
"date": "2021-08-10",
"count": 1
},
{
"date": "2021-08-13",
"count": 2
},
{
"date": "2021-08-15",
"count": 1
},
{
"date": "2021-08-17",
"count": 1
},
{
"date": "2021-08-19",
"count": 2
},
{
"date": "2021-08-21",
"count": 1
},
{
"date": "2021-08-22",
"count": 1
},
{
"date": "2021-08-27",
"count": 1
},
{
"date": "2021-08-29",
"count": 1
},
{
"date": "2021-08-30",
"count": 1
},
{
"date": "2021-09-17",
"count": 1
},
{
"date": "2021-09-21",
"count": 1
},
{
"date": "2021-09-27",
"count": 1
},
{
"date": "2021-10-01",
"count": 1
},
{
"date": "2021-10-12",
"count": 2
},
{
"date": "2021-10-18",
"count": 1
},
{
"date": "2021-10-19",
"count": 2
},
{
"date": "2021-10-20",
"count": 1
},
{
"date": "2021-10-27",
"count": 2
},
{
"date": "2021-11-04",
"count": 1
},
{
"date": "2021-11-07",
"count": 1
},
{
"date": "2021-11-09",
"count": 1
},
{
"date": "2021-11-12",
"count": 1
},
{
"date": "2021-11-13",
"count": 1
},
{
"date": "2021-11-17",
"count": 1
},
{
"date": "2021-11-27",
"count": 1
},
{
"date": "2021-12-06",
"count": 3
},
{
"date": "2021-12-08",
"count": 1
},
{
"date": "2021-12-09",
"count": 1
},
{
"date": "2021-12-13",
"count": 1
},
{
"date": "2021-12-22",
"count": 1
},
{
"date": "2021-12-26",
"count": 2
},
{
"date": "2021-12-28",
"count": 1
},
{
"date": "2022-01-04",
"count": 1
},
{
"date": "2022-01-12",
"count": 1
},
{
"date": "2022-01-13",
"count": 1
},
{
"date": "2022-01-18",
"count": 1
},
{
"date": "2022-01-19",
"count": 1
},
{
"date": "2022-01-20",
"count": 1
},
{
"date": "2022-01-27",
"count": 1
},
{
"date": "2022-01-31",
"count": 1
},
{
"date": "2022-02-06",
"count": 1
},
{
"date": "2022-02-09",
"count": 1
},
{
"date": "2022-02-10",
"count": 1
},
{
"date": "2022-02-13",
"count": 1
},
{
"date": "2022-02-17",
"count": 1
},
{
"date": "2022-02-21",
"count": 1
},
{
"date": "2022-02-22",
"count": 1
},
{
"date": "2022-02-24",
"count": 1
},
{
"date": "2022-03-07",
"count": 1
},
{
"date": "2022-03-08",
"count": 1
},
{
"date": "2022-03-10",
"count": 1
},
{
"date": "2022-03-13",
"count": 1
},
{
"date": "2022-03-16",
"count": 1
},
{
"date": "2022-03-18",
"count": 1
},
{
"date": "2022-03-19",
"count": 1
},
{
"date": "2022-03-25",
"count": 1
},
{
"date": "2022-03-27",
"count": 1
},
{
"date": "2022-03-28",
"count": 1
},
{
"date": "2022-04-01",
"count": 2
},
{
"date": "2022-04-12",
"count": 1
},
{
"date": "2022-04-20",
"count": 1
},
{
"date": "2022-04-24",
"count": 1
},
{
"date": "2022-04-25",
"count": 1
},
{
"date": "2022-05-04",
"count": 1
},
{
"date": "2022-05-07",
"count": 2
},
{
"date": "2022-05-11",
"count": 1
},
{
"date": "2022-05-13",
"count": 1
},
{
"date": "2022-06-11",
"count": 1
},
{
"date": "2022-06-13",
"count": 2
},
{
"date": "2022-06-28",
"count": 1
},
{
"date": "2022-07-02",
"count": 1
},
{
"date": "2022-07-07",
"count": 1
},
{
"date": "2022-07-10",
"count": 2
},
{
"date": "2022-07-18",
"count": 1
},
{
"date": "2022-07-22",
"count": 2
},
{
"date": "2022-07-23",
"count": 1
},
{
"date": "2022-07-30",
"count": 1
},
{
"date": "2022-07-31",
"count": 1
},
{
"date": "2022-08-10",
"count": 1
},
{
"date": "2022-08-12",
"count": 1
},
{
"date": "2022-09-05",
"count": 1
},
{
"date": "2022-09-08",
"count": 1
},
{
"date": "2022-09-15",
"count": 2
},
{
"date": "2022-09-18",
"count": 1
},
{
"date": "2022-09-23",
"count": 1
},
{
"date": "2022-09-29",
"count": 2
},
{
"date": "2022-10-05",
"count": 1
},
{
"date": "2022-10-11",
"count": 1
},
{
"date": "2022-10-17",
"count": 1
},
{
"date": "2022-10-20",
"count": 1
},
{
"date": "2022-10-27",
"count": 1
},
{
"date": "2022-10-30",
"count": 1
},
{
"date": "2022-11-29",
"count": 1
},
{
"date": "2022-12-05",
"count": 2
},
{
"date": "2022-12-06",
"count": 1
},
{
"date": "2022-12-13",
"count": 1
},
{
"date": "2022-12-17",
"count": 1
},
{
"date": "2022-12-21",
"count": 1
},
{
"date": "2022-12-25",
"count": 1
},
{
"date": "2023-01-05",
"count": 1
},
{
"date": "2023-01-08",
"count": 1
},
{
"date": "2023-01-10",
"count": 1
},
{
"date": "2023-01-13",
"count": 1
},
{
"date": "2023-01-21",
"count": 1
},
{
"date": "2023-01-22",
"count": 1
},
{
"date": "2023-02-02",
"count": 1
},
{
"date": "2023-02-03",
"count": 1
},
{
"date": "2023-02-15",
"count": 1
},
{
"date": "2023-02-18",
"count": 1
},
{
"date": "2023-02-23",
"count": 1
},
{
"date": "2023-03-01",
"count": 1
},
{
"date": "2023-03-15",
"count": 1
},
{
"date": "2023-03-17",
"count": 1
},
{
"date": "2023-03-21",
"count": 1
},
{
"date": "2023-03-23",
"count": 1
},
{
"date": "2023-03-25",
"count": 1
},
{
"date": "2023-03-28",
"count": 1
},
{
"date": "2023-03-31",
"count": 1
},
{
"date": "2023-04-19",
"count": 1
},
{
"date": "2023-04-29",
"count": 1
},
{
"date": "2023-04-30",
"count": 1
},
{
"date": "2023-05-03",
"count": 1
},
{
"date": "2023-05-07",
"count": 1
},
{
"date": "2023-06-05",
"count": 1
},
{
"date": "2023-06-13",
"count": 1
},
{
"date": "2023-06-24",
"count": 1
},
{
"date": "2023-07-04",
"count": 1
},
{
"date": "2023-07-07",
"count": 1
},
{
"date": "2023-07-10",
"count": 1
},
{
"date": "2023-08-13",
"count": 1
},
{
"date": "2023-09-10",
"count": 1
},
{
"date": "2023-09-13",
"count": 1
},
{
"date": "2023-10-17",
"count": 1
},
{
"date": "2023-11-05",
"count": 1
},
{
"date": "2023-11-26",
"count": 1
},
{
"date": "2023-12-01",
"count": 1
},
{
"date": "2023-12-09",
"count": 1
},
{
"date": "2023-12-31",
"count": 1
},
{
"date": "2024-01-15",
"count": 1
},
{
"date": "2024-01-18",
"count": 1
},
{
"date": "2024-01-22",
"count": 1
},
{
"date": "2024-02-16",
"count": 1
},
{
"date": "2024-02-25",
"count": 1
},
{
"date": "2024-02-29",
"count": 1
},
{
"date": "2024-03-11",
"count": 1
},
{
"date": "2024-03-12",
"count": 1
},
{
"date": "2024-04-24",
"count": 1
},
{
"date": "2024-05-20",
"count": 1
},
{
"date": "2024-06-03",
"count": 1
},
{
"date": "2024-06-20",
"count": 1
},
{
"date": "2024-06-23",
"count": 1
},
{
"date": "2024-08-21",
"count": 1
},
{
"date": "2024-11-06",
"count": 1
},
{
"date": "2024-11-18",
"count": 1
},
{
"date": "2024-11-19",
"count": 1
},
{
"date": "2024-11-24",
"count": 1
},
{
"date": "2024-11-26",
"count": 3
},
{
"date": "2024-11-28",
"count": 1
},
{
"date": "2024-12-16",
"count": 1
},
{
"date": "2024-12-22",
"count": 1
},
{
"date": "2024-12-30",
"count": 1
},
{
"date": "2025-01-02",
"count": 1
},
{
"date": "2025-01-08",
"count": 1
},
{
"date": "2025-01-12",
"count": 1
},
{
"date": "2025-01-16",
"count": 1
},
{
"date": "2025-01-26",
"count": 1
},
{
"date": "2025-01-27",
"count": 1
},
{
"date": "2025-02-09",
"count": 1
},
{
"date": "2025-02-12",
"count": 1
},
{
"date": "2025-03-04",
"count": 1
},
{
"date": "2025-03-18",
"count": 1
},
{
"date": "2025-03-31",
"count": 1
},
{
"date": "2025-04-06",
"count": 1
},
{
"date": "2025-04-13",
"count": 1
},
{
"date": "2025-04-28",
"count": 1
},
{
"date": "2025-05-05",
"count": 1
},
{
"date": "2025-05-08",
"count": 1
},
{
"date": "2025-05-15",
"count": 1
},
{
"date": "2025-05-16",
"count": 1
},
{
"date": "2025-05-19",
"count": 1
},
{
"date": "2025-06-07",
"count": 1
},
{
"date": "2025-06-19",
"count": 1
},
{
"date": "2025-06-28",
"count": 1
},
{
"date": "2025-07-01",
"count": 1
},
{
"date": "2025-07-06",
"count": 1
},
{
"date": "2025-08-16",
"count": 1
},
{
"date": "2025-08-26",
"count": 1
},
{
"date": "2025-10-04",
"count": 1
},
{
"date": "2025-10-17",
"count": 1
},
{
"date": "2025-10-22",
"count": 1
},
{
"date": "2025-10-31",
"count": 1
},
{
"date": "2025-11-02",
"count": 1
},
{
"date": "2025-11-25",
"count": 1
},
{
"date": "2026-01-03",
"count": 1
},
{
"date": "2026-01-13",
"count": 1
},
{
"date": "2026-01-14",
"count": 1
},
{
"date": "2026-01-16",
"count": 1
},
{
"date": "2026-01-24",
"count": 2
},
{
"date": "2026-02-05",
"count": 1
},
{
"date": "2026-02-08",
"count": 1
},
{
"date": "2026-02-09",
"count": 1
},
{
"date": "2026-02-16",
"count": 1
},
{
"date": "2026-02-22",
"count": 1
},
{
"date": "2026-03-12",
"count": 1
},
{
"date": "2026-04-02",
"count": 1
},
{
"date": "2026-04-05",
"count": 1
},
{
"date": "2026-05-22",
"count": 2
},
{
"date": "2026-05-29",
"count": 1
},
{
"date": "2026-06-08",
"count": 1
},
{
"date": "2026-06-14",
"count": 1
},
{
"date": "2026-06-23",
"count": 1
},
{
"date": "2026-06-24",
"count": 1
},
{
"date": "2026-06-25",
"count": 1
},
{
"date": "2026-07-12",
"count": 1
},
{
"date": "2026-07-18",
"count": 1
}
],
"complete": false,
"collected": 1000,
"total_forks": 3368
},
"star_history": {
"days": [
{
"date": "2021-08-05",
"count": 2
},
{
"date": "2021-08-09",
"count": 1
},
{
"date": "2021-08-10",
"count": 3
},
{
"date": "2021-08-11",
"count": 2
},
{
"date": "2021-08-12",
"count": 1
},
{
"date": "2021-08-13",
"count": 1
},
{
"date": "2021-08-16",
"count": 1
},
{
"date": "2021-08-17",
"count": 2
},
{
"date": "2021-08-18",
"count": 1
},
{
"date": "2021-08-19",
"count": 2
},
{
"date": "2021-08-21",
"count": 1
},
{
"date": "2021-08-22",
"count": 1
},
{
"date": "2021-08-23",
"count": 1
},
{
"date": "2021-08-24",
"count": 3
},
{
"date": "2021-08-26",
"count": 2
},
{
"date": "2021-08-27",
"count": 1
},
{
"date": "2021-08-28",
"count": 1
},
{
"date": "2021-08-29",
"count": 1
},
{
"date": "2021-09-05",
"count": 1
},
{
"date": "2021-09-06",
"count": 2
},
{
"date": "2021-09-07",
"count": 3
},
{
"date": "2021-09-09",
"count": 2
},
{
"date": "2021-09-10",
"count": 1
},
{
"date": "2021-09-12",
"count": 5
},
{
"date": "2021-09-13",
"count": 2
},
{
"date": "2021-09-14",
"count": 1
},
{
"date": "2021-09-16",
"count": 1
},
{
"date": "2021-09-17",
"count": 1
},
{
"date": "2021-09-19",
"count": 1
},
{
"date": "2021-09-20",
"count": 1
},
{
"date": "2021-09-24",
"count": 1
},
{
"date": "2021-09-26",
"count": 1
},
{
"date": "2021-09-30",
"count": 2
},
{
"date": "2021-10-03",
"count": 1
},
{
"date": "2021-10-06",
"count": 2
},
{
"date": "2021-10-08",
"count": 1
},
{
"date": "2021-10-11",
"count": 1
},
{
"date": "2021-10-13",
"count": 1
},
{
"date": "2021-10-14",
"count": 1
},
{
"date": "2021-10-15",
"count": 3
},
{
"date": "2021-10-16",
"count": 1
},
{
"date": "2021-10-18",
"count": 1
},
{
"date": "2021-10-19",
"count": 1
},
{
"date": "2021-10-20",
"count": 2
},
{
"date": "2021-10-22",
"count": 1
},
{
"date": "2021-10-24",
"count": 2
},
{
"date": "2021-10-26",
"count": 2
},
{
"date": "2021-10-28",
"count": 1
},
{
"date": "2021-10-30",
"count": 1
},
{
"date": "2021-10-31",
"count": 1
},
{
"date": "2021-11-01",
"count": 1
},
{
"date": "2021-11-02",
"count": 3
},
{
"date": "2021-11-03",
"count": 2
},
{
"date": "2021-11-04",
"count": 1
},
{
"date": "2021-11-05",
"count": 1
},
{
"date": "2021-11-06",
"count": 1
},
{
"date": "2021-11-08",
"count": 1
},
{
"date": "2021-11-10",
"count": 1
},
{
"date": "2021-11-11",
"count": 2
},
{
"date": "2021-11-13",
"count": 1
},
{
"date": "2021-11-16",
"count": 2
},
{
"date": "2021-11-19",
"count": 3
},
{
"date": "2021-11-20",
"count": 1
},
{
"date": "2021-11-21",
"count": 1
},
{
"date": "2021-11-24",
"count": 1
},
{
"date": "2021-11-26",
"count": 1
},
{
"date": "2021-11-27",
"count": 1
},
{
"date": "2021-11-30",
"count": 4
},
{
"date": "2021-12-01",
"count": 1
},
{
"date": "2021-12-04",
"count": 1
},
{
"date": "2021-12-05",
"count": 1
},
{
"date": "2021-12-06",
"count": 2
},
{
"date": "2021-12-08",
"count": 2
},
{
"date": "2021-12-10",
"count": 1
},
{
"date": "2021-12-12",
"count": 1
},
{
"date": "2021-12-17",
"count": 2
},
{
"date": "2021-12-23",
"count": 2
},
{
"date": "2021-12-27",
"count": 1
},
{
"date": "2021-12-30",
"count": 1
},
{
"date": "2022-01-03",
"count": 2
},
{
"date": "2022-01-05",
"count": 3
},
{
"date": "2022-01-06",
"count": 1
},
{
"date": "2022-01-07",
"count": 2
},
{
"date": "2022-01-08",
"count": 1
},
{
"date": "2022-01-09",
"count": 2
},
{
"date": "2022-01-10",
"count": 1
},
{
"date": "2022-01-13",
"count": 1
},
{
"date": "2022-01-14",
"count": 2
},
{
"date": "2022-01-15",
"count": 1
},
{
"date": "2022-01-16",
"count": 1
},
{
"date": "2022-01-20",
"count": 1
},
{
"date": "2022-01-22",
"count": 1
},
{
"date": "2022-01-24",
"count": 1
},
{
"date": "2022-01-26",
"count": 3
},
{
"date": "2022-01-27",
"count": 1
},
{
"date": "2022-01-28",
"count": 2
},
{
"date": "2022-02-04",
"count": 3
},
{
"date": "2022-02-06",
"count": 2
},
{
"date": "2022-02-07",
"count": 1
},
{
"date": "2022-02-09",
"count": 1
},
{
"date": "2022-02-10",
"count": 1
},
{
"date": "2022-02-12",
"count": 2
},
{
"date": "2022-02-14",
"count": 1
},
{
"date": "2022-02-15",
"count": 1
},
{
"date": "2022-02-16",
"count": 2
},
{
"date": "2022-02-17",
"count": 1
},
{
"date": "2022-02-21",
"count": 2
},
{
"date": "2022-02-22",
"count": 3
},
{
"date": "2022-02-24",
"count": 2
},
{
"date": "2022-02-25",
"count": 1
},
{
"date": "2022-02-26",
"count": 2
},
{
"date": "2022-02-27",
"count": 3
},
{
"date": "2022-02-28",
"count": 2
},
{
"date": "2022-03-01",
"count": 3
},
{
"date": "2022-03-03",
"count": 2
},
{
"date": "2022-03-04",
"count": 1
},
{
"date": "2022-03-05",
"count": 1
},
{
"date": "2022-03-08",
"count": 1
},
{
"date": "2022-03-09",
"count": 1
},
{
"date": "2022-03-10",
"count": 1
},
{
"date": "2022-03-11",
"count": 2
},
{
"date": "2022-03-13",
"count": 2
},
{
"date": "2022-03-14",
"count": 2
},
{
"date": "2022-03-16",
"count": 1
},
{
"date": "2022-03-17",
"count": 1
},
{
"date": "2022-03-18",
"count": 1
},
{
"date": "2022-03-19",
"count": 2
},
{
"date": "2022-03-20",
"count": 1
},
{
"date": "2022-03-21",
"count": 1
},
{
"date": "2022-03-22",
"count": 1
},
{
"date": "2022-03-24",
"count": 1
},
{
"date": "2022-03-28",
"count": 1
},
{
"date": "2022-03-30",
"count": 1
},
{
"date": "2022-03-31",
"count": 2
},
{
"date": "2022-04-01",
"count": 1
},
{
"date": "2022-04-03",
"count": 2
},
{
"date": "2022-04-05",
"count": 1
},
{
"date": "2022-04-06",
"count": 1
},
{
"date": "2022-04-09",
"count": 2
},
{
"date": "2022-04-10",
"count": 1
},
{
"date": "2022-04-12",
"count": 2
},
{
"date": "2022-04-13",
"count": 1
},
{
"date": "2022-04-17",
"count": 1
},
{
"date": "2022-04-19",
"count": 1
},
{
"date": "2022-04-21",
"count": 1
},
{
"date": "2022-04-24",
"count": 1
},
{
"date": "2022-04-26",
"count": 1
},
{
"date": "2022-04-27",
"count": 1
},
{
"date": "2022-04-30",
"count": 1
},
{
"date": "2022-05-01",
"count": 3
},
{
"date": "2022-05-04",
"count": 2
},
{
"date": "2022-05-06",
"count": 2
},
{
"date": "2022-05-07",
"count": 1
},
{
"date": "2022-05-10",
"count": 1
},
{
"date": "2022-05-11",
"count": 1
},
{
"date": "2022-05-12",
"count": 1
},
{
"date": "2022-05-13",
"count": 2
},
{
"date": "2022-05-14",
"count": 1
},
{
"date": "2022-05-16",
"count": 3
},
{
"date": "2022-05-17",
"count": 3
},
{
"date": "2022-05-18",
"count": 3
},
{
"date": "2022-05-19",
"count": 1
},
{
"date": "2022-05-20",
"count": 1
},
{
"date": "2022-05-21",
"count": 1
},
{
"date": "2022-05-22",
"count": 1
},
{
"date": "2022-05-24",
"count": 2
},
{
"date": "2022-05-25",
"count": 1
},
{
"date": "2022-05-27",
"count": 2
},
{
"date": "2022-05-29",
"count": 1
},
{
"date": "2022-05-30",
"count": 2
},
{
"date": "2022-05-31",
"count": 5
},
{
"date": "2022-06-01",
"count": 1
},
{
"date": "2022-06-05",
"count": 1
},
{
"date": "2022-06-06",
"count": 1
},
{
"date": "2022-06-09",
"count": 1
},
{
"date": "2022-06-10",
"count": 3
},
{
"date": "2022-06-11",
"count": 1
},
{
"date": "2022-06-14",
"count": 1
},
{
"date": "2022-06-18",
"count": 1
},
{
"date": "2022-06-20",
"count": 1
},
{
"date": "2022-06-21",
"count": 1
},
{
"date": "2022-06-23",
"count": 2
},
{
"date": "2022-06-26",
"count": 2
},
{
"date": "2022-06-27",
"count": 3
},
{
"date": "2022-06-28",
"count": 1
},
{
"date": "2022-07-01",
"count": 1
},
{
"date": "2022-07-04",
"count": 1
},
{
"date": "2022-07-06",
"count": 1
},
{
"date": "2022-07-10",
"count": 2
},
{
"date": "2022-07-11",
"count": 2
},
{
"date": "2022-07-13",
"count": 2
},
{
"date": "2022-07-14",
"count": 1
},
{
"date": "2022-07-17",
"count": 2
},
{
"date": "2022-07-18",
"count": 1
},
{
"date": "2022-07-19",
"count": 3
},
{
"date": "2022-07-20",
"count": 2
},
{
"date": "2022-07-22",
"count": 1
},
{
"date": "2022-07-23",
"count": 1
},
{
"date": "2022-07-24",
"count": 1
},
{
"date": "2022-07-28",
"count": 1
},
{
"date": "2022-07-31",
"count": 1
},
{
"date": "2022-08-03",
"count": 1
},
{
"date": "2022-08-04",
"count": 1
},
{
"date": "2022-08-06",
"count": 1
},
{
"date": "2022-08-08",
"count": 1
},
{
"date": "2022-08-09",
"count": 2
},
{
"date": "2022-08-11",
"count": 1
},
{
"date": "2022-08-12",
"count": 1
},
{
"date": "2022-08-20",
"count": 1
},
{
"date": "2022-08-22",
"count": 1
},
{
"date": "2022-08-23",
"count": 3
},
{
"date": "2022-08-24",
"count": 1
},
{
"date": "2022-08-26",
"count": 1
},
{
"date": "2022-08-27",
"count": 1
},
{
"date": "2022-08-28",
"count": 1
},
{
"date": "2022-08-30",
"count": 1
},
{
"date": "2022-09-02",
"count": 2
},
{
"date": "2022-09-04",
"count": 1
},
{
"date": "2022-09-11",
"count": 1
},
{
"date": "2022-09-12",
"count": 1
},
{
"date": "2022-09-13",
"count": 1
},
{
"date": "2022-09-15",
"count": 1
},
{
"date": "2022-09-16",
"count": 4
},
{
"date": "2022-09-21",
"count": 2
},
{
"date": "2022-09-26",
"count": 2
},
{
"date": "2022-09-28",
"count": 2
},
{
"date": "2022-09-29",
"count": 1
},
{
"date": "2022-09-30",
"count": 2
},
{
"date": "2022-10-11",
"count": 1
},
{
"date": "2022-10-14",
"count": 1
},
{
"date": "2022-10-16",
"count": 1
},
{
"date": "2022-10-18",
"count": 1
},
{
"date": "2022-10-19",
"count": 1
},
{
"date": "2022-10-21",
"count": 2
},
{
"date": "2022-10-22",
"count": 1
},
{
"date": "2022-10-23",
"count": 3
},
{
"date": "2022-10-25",
"count": 1
},
{
"date": "2022-10-30",
"count": 1
},
{
"date": "2022-10-31",
"count": 1
},
{
"date": "2022-11-02",
"count": 1
},
{
"date": "2022-11-04",
"count": 1
},
{
"date": "2022-11-05",
"count": 1
},
{
"date": "2022-11-06",
"count": 1
},
{
"date": "2022-11-08",
"count": 1
},
{
"date": "2022-11-09",
"count": 1
},
{
"date": "2022-11-10",
"count": 1
},
{
"date": "2022-11-11",
"count": 1
},
{
"date": "2022-11-13",
"count": 1
},
{
"date": "2022-11-14",
"count": 1
},
{
"date": "2022-11-15",
"count": 1
},
{
"date": "2022-11-16",
"count": 2
},
{
"date": "2022-11-18",
"count": 1
},
{
"date": "2022-11-25",
"count": 2
},
{
"date": "2022-11-28",
"count": 2
},
{
"date": "2022-11-29",
"count": 1
},
{
"date": "2022-11-30",
"count": 1
},
{
"date": "2022-12-02",
"count": 2
},
{
"date": "2022-12-03",
"count": 2
},
{
"date": "2022-12-06",
"count": 2
},
{
"date": "2022-12-09",
"count": 2
},
{
"date": "2022-12-10",
"count": 1
},
{
"date": "2022-12-12",
"count": 2
},
{
"date": "2022-12-13",
"count": 1
},
{
"date": "2022-12-19",
"count": 1
},
{
"date": "2022-12-24",
"count": 2
},
{
"date": "2022-12-28",
"count": 1
},
{
"date": "2022-12-31",
"count": 1
},
{
"date": "2023-01-02",
"count": 2
},
{
"date": "2023-01-04",
"count": 1
},
{
"date": "2023-01-08",
"count": 1
},
{
"date": "2023-01-11",
"count": 1
},
{
"date": "2023-01-14",
"count": 2
},
{
"date": "2023-01-17",
"count": 3
},
{
"date": "2023-01-22",
"count": 1
},
{
"date": "2023-01-24",
"count": 4
},
{
"date": "2023-01-25",
"count": 1
},
{
"date": "2023-01-27",
"count": 1
},
{
"date": "2023-01-28",
"count": 2
},
{
"date": "2023-02-01",
"count": 3
},
{
"date": "2023-02-02",
"count": 1
},
{
"date": "2023-02-04",
"count": 1
},
{
"date": "2023-02-06",
"count": 1
},
{
"date": "2023-02-09",
"count": 2
},
{
"date": "2023-02-11",
"count": 1
},
{
"date": "2023-02-16",
"count": 1
},
{
"date": "2023-02-19",
"count": 1
},
{
"date": "2023-02-20",
"count": 1
},
{
"date": "2023-02-23",
"count": 1
},
{
"date": "2023-02-25",
"count": 1
},
{
"date": "2023-03-01",
"count": 3
},
{
"date": "2023-03-02",
"count": 1
},
{
"date": "2023-03-03",
"count": 2
},
{
"date": "2023-03-06",
"count": 3
},
{
"date": "2023-03-08",
"count": 1
},
{
"date": "2023-03-09",
"count": 3
},
{
"date": "2023-03-10",
"count": 1
},
{
"date": "2023-03-13",
"count": 2
},
{
"date": "2023-03-14",
"count": 1
},
{
"date": "2023-03-16",
"count": 2
},
{
"date": "2023-03-17",
"count": 2
},
{
"date": "2023-03-20",
"count": 1
},
{
"date": "2023-03-22",
"count": 1
},
{
"date": "2023-03-27",
"count": 1
},
{
"date": "2023-03-29",
"count": 1
},
{
"date": "2023-03-30",
"count": 2
},
{
"date": "2023-03-31",
"count": 3
},
{
"date": "2023-04-01",
"count": 1
},
{
"date": "2023-04-02",
"count": 1
},
{
"date": "2023-04-04",
"count": 1
},
{
"date": "2023-04-06",
"count": 2
},
{
"date": "2023-04-10",
"count": 2
},
{
"date": "2023-04-11",
"count": 1
},
{
"date": "2023-04-13",
"count": 1
},
{
"date": "2023-04-14",
"count": 1
},
{
"date": "2023-04-15",
"count": 1
},
{
"date": "2023-04-18",
"count": 1
},
{
"date": "2023-04-19",
"count": 2
},
{
"date": "2023-04-20",
"count": 2
},
{
"date": "2023-04-25",
"count": 1
},
{
"date": "2023-04-26",
"count": 2
},
{
"date": "2023-04-28",
"count": 2
},
{
"date": "2023-04-30",
"count": 1
},
{
"date": "2023-05-01",
"count": 1
},
{
"date": "2023-05-03",
"count": 1
},
{
"date": "2023-05-05",
"count": 1
},
{
"date": "2023-05-08",
"count": 1
},
{
"date": "2023-05-11",
"count": 1
},
{
"date": "2023-05-12",
"count": 2
},
{
"date": "2023-05-15",
"count": 1
},
{
"date": "2023-05-16",
"count": 1
},
{
"date": "2023-05-20",
"count": 1
},
{
"date": "2023-05-23",
"count": 1
},
{
"date": "2023-05-24",
"count": 1
},
{
"date": "2023-05-25",
"count": 1
},
{
"date": "2023-05-27",
"count": 1
},
{
"date": "2023-05-28",
"count": 1
},
{
"date": "2023-05-29",
"count": 1
},
{
"date": "2023-06-03",
"count": 1
},
{
"date": "2023-06-05",
"count": 1
},
{
"date": "2023-06-06",
"count": 3
},
{
"date": "2023-06-07",
"count": 2
},
{
"date": "2023-06-13",
"count": 1
},
{
"date": "2023-06-14",
"count": 2
},
{
"date": "2023-06-16",
"count": 1
},
{
"date": "2023-06-17",
"count": 1
},
{
"date": "2023-06-19",
"count": 1
},
{
"date": "2023-06-24",
"count": 1
},
{
"date": "2023-06-26",
"count": 1
},
{
"date": "2023-06-27",
"count": 1
},
{
"date": "2023-06-29",
"count": 1
},
{
"date": "2023-07-06",
"count": 1
},
{
"date": "2023-07-07",
"count": 1
},
{
"date": "2023-07-08",
"count": 1
},
{
"date": "2023-07-12",
"count": 1
},
{
"date": "2023-07-13",
"count": 1
},
{
"date": "2023-07-15",
"count": 1
},
{
"date": "2023-07-16",
"count": 2
},
{
"date": "2023-07-19",
"count": 1
},
{
"date": "2023-07-21",
"count": 1
},
{
"date": "2023-07-24",
"count": 1
},
{
"date": "2023-07-26",
"count": 1
},
{
"date": "2023-07-28",
"count": 1
},
{
"date": "2023-07-31",
"count": 1
},
{
"date": "2023-08-03",
"count": 1
},
{
"date": "2023-08-04",
"count": 1
},
{
"date": "2023-08-13",
"count": 1
},
{
"date": "2023-08-20",
"count": 1
},
{
"date": "2023-08-21",
"count": 1
},
{
"date": "2023-08-25",
"count": 2
},
{
"date": "2023-08-29",
"count": 1
},
{
"date": "2023-09-02",
"count": 1
},
{
"date": "2023-09-03",
"count": 1
},
{
"date": "2023-09-05",
"count": 1
},
{
"date": "2023-09-06",
"count": 2
},
{
"date": "2023-09-07",
"count": 1
},
{
"date": "2023-09-08",
"count": 1
},
{
"date": "2023-09-09",
"count": 1
},
{
"date": "2023-09-11",
"count": 1
},
{
"date": "2023-09-16",
"count": 1
},
{
"date": "2023-09-17",
"count": 1
},
{
"date": "2023-09-19",
"count": 1
},
{
"date": "2023-09-21",
"count": 1
},
{
"date": "2023-09-22",
"count": 2
},
{
"date": "2023-09-27",
"count": 2
},
{
"date": "2023-09-29",
"count": 1
},
{
"date": "2023-09-30",
"count": 1
},
{
"date": "2023-10-02",
"count": 1
},
{
"date": "2023-10-06",
"count": 1
},
{
"date": "2023-10-08",
"count": 1
},
{
"date": "2023-10-12",
"count": 1
},
{
"date": "2023-10-13",
"count": 3
},
{
"date": "2023-10-15",
"count": 1
},
{
"date": "2023-10-20",
"count": 1
},
{
"date": "2023-10-21",
"count": 1
},
{
"date": "2023-10-26",
"count": 1
},
{
"date": "2023-10-27",
"count": 2
},
{
"date": "2023-10-29",
"count": 1
},
{
"date": "2023-10-30",
"count": 2
},
{
"date": "2023-11-04",
"count": 1
},
{
"date": "2023-11-13",
"count": 1
},
{
"date": "2023-11-16",
"count": 1
},
{
"date": "2023-11-18",
"count": 1
},
{
"date": "2023-11-19",
"count": 1
},
{
"date": "2023-11-21",
"count": 1
},
{
"date": "2023-11-24",
"count": 1
},
{
"date": "2023-11-26",
"count": 1
},
{
"date": "2023-11-27",
"count": 1
},
{
"date": "2023-11-29",
"count": 1
},
{
"date": "2023-12-02",
"count": 1
},
{
"date": "2023-12-04",
"count": 2
},
{
"date": "2023-12-05",
"count": 1
},
{
"date": "2023-12-06",
"count": 1
},
{
"date": "2023-12-11",
"count": 1
},
{
"date": "2023-12-13",
"count": 1
},
{
"date": "2023-12-17",
"count": 1
},
{
"date": "2023-12-18",
"count": 2
},
{
"date": "2023-12-19",
"count": 1
},
{
"date": "2023-12-20",
"count": 1
},
{
"date": "2023-12-23",
"count": 1
},
{
"date": "2023-12-24",
"count": 1
},
{
"date": "2023-12-27",
"count": 1
},
{
"date": "2023-12-28",
"count": 1
},
{
"date": "2023-12-29",
"count": 2
},
{
"date": "2024-01-02",
"count": 1
},
{
"date": "2024-01-05",
"count": 1
},
{
"date": "2024-01-06",
"count": 1
},
{
"date": "2024-01-09",
"count": 2
},
{
"date": "2024-01-12",
"count": 1
},
{
"date": "2024-01-17",
"count": 1
},
{
"date": "2024-01-18",
"count": 1
},
{
"date": "2024-01-19",
"count": 2
},
{
"date": "2024-01-21",
"count": 1
},
{
"date": "2024-01-26",
"count": 1
},
{
"date": "2024-01-27",
"count": 1
},
{
"date": "2024-01-29",
"count": 1
},
{
"date": "2024-02-02",
"count": 3
},
{
"date": "2024-02-03",
"count": 2
},
{
"date": "2024-02-15",
"count": 1
},
{
"date": "2024-02-19",
"count": 1
},
{
"date": "2024-02-20",
"count": 2
},
{
"date": "2024-02-22",
"count": 2
},
{
"date": "2024-02-26",
"count": 1
},
{
"date": "2024-02-27",
"count": 1
},
{
"date": "2024-02-29",
"count": 3
},
{
"date": "2024-03-01",
"count": 1
},
{
"date": "2024-03-04",
"count": 3
},
{
"date": "2024-03-05",
"count": 1
},
{
"date": "2024-03-10",
"count": 1
},
{
"date": "2024-03-11",
"count": 3
},
{
"date": "2024-03-15",
"count": 1
},
{
"date": "2024-03-16",
"count": 1
},
{
"date": "2024-03-17",
"count": 2
},
{
"date": "2024-03-21",
"count": 1
},
{
"date": "2024-03-23",
"count": 1
},
{
"date": "2024-03-25",
"count": 1
},
{
"date": "2024-03-27",
"count": 2
},
{
"date": "2024-03-29",
"count": 1
},
{
"date": "2024-04-02",
"count": 1
},
{
"date": "2024-04-05",
"count": 2
},
{
"date": "2024-04-07",
"count": 1
},
{
"date": "2024-04-11",
"count": 1
},
{
"date": "2024-04-20",
"count": 2
},
{
"date": "2024-04-21",
"count": 1
},
{
"date": "2024-04-22",
"count": 2
},
{
"date": "2024-04-26",
"count": 1
},
{
"date": "2024-04-27",
"count": 1
},
{
"date": "2024-05-01",
"count": 3
},
{
"date": "2024-05-02",
"count": 1
},
{
"date": "2024-05-09",
"count": 1
},
{
"date": "2024-05-11",
"count": 1
},
{
"date": "2024-05-14",
"count": 1
},
{
"date": "2024-05-15",
"count": 2
},
{
"date": "2024-05-18",
"count": 1
},
{
"date": "2024-05-20",
"count": 2
},
{
"date": "2024-05-21",
"count": 3
},
{
"date": "2024-05-22",
"count": 1
},
{
"date": "2024-05-24",
"count": 1
},
{
"date": "2024-05-25",
"count": 1
},
{
"date": "2024-05-26",
"count": 1
},
{
"date": "2024-05-27",
"count": 1
},
{
"date": "2024-05-28",
"count": 2
},
{
"date": "2024-05-29",
"count": 1
},
{
"date": "2024-06-01",
"count": 1
},
{
"date": "2024-06-05",
"count": 1
},
{
"date": "2024-06-06",
"count": 1
},
{
"date": "2024-06-09",
"count": 1
},
{
"date": "2024-06-12",
"count": 1
},
{
"date": "2024-06-13",
"count": 2
},
{
"date": "2024-06-20",
"count": 1
},
{
"date": "2024-06-21",
"count": 1
},
{
"date": "2024-06-22",
"count": 1
},
{
"date": "2024-06-25",
"count": 2
},
{
"date": "2024-06-27",
"count": 1
},
{
"date": "2024-07-01",
"count": 1
},
{
"date": "2024-07-03",
"count": 1
},
{
"date": "2024-07-06",
"count": 1
},
{
"date": "2024-07-09",
"count": 2
},
{
"date": "2024-07-11",
"count": 1
},
{
"date": "2024-07-12",
"count": 1
},
{
"date": "2024-07-13",
"count": 1
},
{
"date": "2024-07-17",
"count": 2
},
{
"date": "2024-07-19",
"count": 1
},
{
"date": "2024-07-20",
"count": 1
},
{
"date": "2024-07-22",
"count": 1
},
{
"date": "2024-07-24",
"count": 1
},
{
"date": "2024-07-26",
"count": 1
},
{
"date": "2024-07-30",
"count": 1
},
{
"date": "2024-07-31",
"count": 1
},
{
"date": "2024-08-02",
"count": 1
},
{
"date": "2024-08-05",
"count": 1
},
{
"date": "2024-08-08",
"count": 2
},
{
"date": "2024-08-10",
"count": 1
},
{
"date": "2024-08-13",
"count": 1
},
{
"date": "2024-08-14",
"count": 2
},
{
"date": "2024-08-16",
"count": 2
},
{
"date": "2024-08-17",
"count": 1
},
{
"date": "2024-08-21",
"count": 1
},
{
"date": "2024-08-26",
"count": 1
},
{
"date": "2024-09-02",
"count": 1
},
{
"date": "2024-09-03",
"count": 1
},
{
"date": "2024-09-04",
"count": 1
},
{
"date": "2024-09-08",
"count": 1
},
{
"date": "2024-09-09",
"count": 1
},
{
"date": "2024-09-10",
"count": 1
},
{
"date": "2024-09-13",
"count": 2
},
{
"date": "2024-09-14",
"count": 1
},
{
"date": "2024-09-15",
"count": 1
},
{
"date": "2024-09-19",
"count": 1
},
{
"date": "2024-09-20",
"count": 1
},
{
"date": "2024-09-24",
"count": 1
},
{
"date": "2024-09-25",
"count": 1
},
{
"date": "2024-09-27",
"count": 1
},
{
"date": "2024-09-28",
"count": 1
},
{
"date": "2024-09-30",
"count": 1
},
{
"date": "2024-10-02",
"count": 1
},
{
"date": "2024-10-03",
"count": 1
},
{
"date": "2024-10-04",
"count": 1
},
{
"date": "2024-10-05",
"count": 1
},
{
"date": "2024-10-08",
"count": 2
},
{
"date": "2024-10-09",
"count": 1
},
{
"date": "2024-10-12",
"count": 1
},
{
"date": "2024-10-15",
"count": 1
},
{
"date": "2024-10-16",
"count": 2
},
{
"date": "2024-10-17",
"count": 1
},
{
"date": "2024-10-19",
"count": 1
},
{
"date": "2024-10-21",
"count": 4
},
{
"date": "2024-10-24",
"count": 1
},
{
"date": "2024-10-28",
"count": 1
},
{
"date": "2024-10-30",
"count": 1
},
{
"date": "2024-10-31",
"count": 1
},
{
"date": "2024-11-03",
"count": 1
},
{
"date": "2024-11-06",
"count": 1
},
{
"date": "2024-11-09",
"count": 3
},
{
"date": "2024-11-11",
"count": 1
},
{
"date": "2024-11-12",
"count": 1
},
{
"date": "2024-11-13",
"count": 1
},
{
"date": "2024-11-14",
"count": 1
},
{
"date": "2024-11-15",
"count": 1
},
{
"date": "2024-11-19",
"count": 1
},
{
"date": "2024-11-20",
"count": 1
},
{
"date": "2024-11-21",
"count": 2
},
{
"date": "2024-11-24",
"count": 1
},
{
"date": "2024-11-28",
"count": 1
},
{
"date": "2024-12-04",
"count": 1
},
{
"date": "2024-12-13",
"count": 1
},
{
"date": "2024-12-22",
"count": 1
},
{
"date": "2024-12-27",
"count": 1
},
{
"date": "2024-12-28",
"count": 1
},
{
"date": "2024-12-29",
"count": 1
},
{
"date": "2024-12-30",
"count": 1
},
{
"date": "2025-01-03",
"count": 1
},
{
"date": "2025-01-06",
"count": 1
},
{
"date": "2025-01-07",
"count": 1
},
{
"date": "2025-01-08",
"count": 1
},
{
"date": "2025-01-09",
"count": 1
},
{
"date": "2025-01-10",
"count": 1
},
{
"date": "2025-01-22",
"count": 1
},
{
"date": "2025-01-24",
"count": 1
},
{
"date": "2025-01-27",
"count": 3
},
{
"date": "2025-01-29",
"count": 1
},
{
"date": "2025-02-05",
"count": 2
},
{
"date": "2025-02-08",
"count": 3
},
{
"date": "2025-02-11",
"count": 1
},
{
"date": "2025-02-12",
"count": 2
},
{
"date": "2025-02-13",
"count": 1
},
{
"date": "2025-02-15",
"count": 2
},
{
"date": "2025-02-19",
"count": 1
},
{
"date": "2025-02-20",
"count": 1
},
{
"date": "2025-02-21",
"count": 1
},
{
"date": "2025-02-23",
"count": 1
},
{
"date": "2025-02-25",
"count": 1
},
{
"date": "2025-02-27",
"count": 1
},
{
"date": "2025-03-03",
"count": 1
},
{
"date": "2025-03-04",
"count": 1
},
{
"date": "2025-03-06",
"count": 1
},
{
"date": "2025-03-07",
"count": 1
},
{
"date": "2025-03-09",
"count": 1
},
{
"date": "2025-03-13",
"count": 1
},
{
"date": "2025-03-19",
"count": 1
},
{
"date": "2025-03-21",
"count": 1
},
{
"date": "2025-03-24",
"count": 2
},
{
"date": "2025-03-27",
"count": 1
},
{
"date": "2025-03-28",
"count": 1
},
{
"date": "2025-03-30",
"count": 2
},
{
"date": "2025-04-01",
"count": 1
},
{
"date": "2025-04-02",
"count": 1
},
{
"date": "2025-04-04",
"count": 1
},
{
"date": "2025-04-06",
"count": 2
},
{
"date": "2025-04-07",
"count": 1
},
{
"date": "2025-04-08",
"count": 1
},
{
"date": "2025-04-11",
"count": 1
},
{
"date": "2025-04-12",
"count": 1
},
{
"date": "2025-04-13",
"count": 1
},
{
"date": "2025-04-16",
"count": 1
},
{
"date": "2025-04-20",
"count": 1
},
{
"date": "2025-04-21",
"count": 2
},
{
"date": "2025-04-22",
"count": 2
},
{
"date": "2025-04-24",
"count": 1
},
{
"date": "2025-04-26",
"count": 2
},
{
"date": "2025-04-30",
"count": 1
},
{
"date": "2025-05-03",
"count": 1
},
{
"date": "2025-05-05",
"count": 1
},
{
"date": "2025-05-06",
"count": 1
},
{
"date": "2025-05-07",
"count": 1
},
{
"date": "2025-05-18",
"count": 1
},
{
"date": "2025-05-21",
"count": 1
},
{
"date": "2025-05-23",
"count": 2
},
{
"date": "2025-05-24",
"count": 1
},
{
"date": "2025-05-30",
"count": 1
},
{
"date": "2025-06-02",
"count": 1
},
{
"date": "2025-06-03",
"count": 1
},
{
"date": "2025-06-06",
"count": 1
},
{
"date": "2025-06-16",
"count": 1
},
{
"date": "2025-06-17",
"count": 3
},
{
"date": "2025-06-19",
"count": 1
},
{
"date": "2025-06-24",
"count": 1
},
{
"date": "2025-06-26",
"count": 1
},
{
"date": "2025-06-28",
"count": 1
},
{
"date": "2025-07-06",
"count": 1
},
{
"date": "2025-07-07",
"count": 1
},
{
"date": "2025-07-12",
"count": 1
},
{
"date": "2025-07-15",
"count": 1
},
{
"date": "2025-07-17",
"count": 1
},
{
"date": "2025-07-23",
"count": 1
},
{
"date": "2025-07-25",
"count": 1
},
{
"date": "2025-07-26",
"count": 1
},
{
"date": "2025-07-30",
"count": 1
},
{
"date": "2025-08-02",
"count": 1
},
{
"date": "2025-08-04",
"count": 1
},
{
"date": "2025-08-12",
"count": 1
},
{
"date": "2025-08-16",
"count": 1
},
{
"date": "2025-08-18",
"count": 2
},
{
"date": "2025-08-23",
"count": 1
},
{
"date": "2025-08-26",
"count": 2
},
{
"date": "2025-08-28",
"count": 2
},
{
"date": "2025-09-02",
"count": 1
},
{
"date": "2025-09-07",
"count": 1
},
{
"date": "2025-09-12",
"count": 1
},
{
"date": "2025-09-13",
"count": 2
},
{
"date": "2025-09-15",
"count": 1
},
{
"date": "2025-09-17",
"count": 1
},
{
"date": "2025-09-20",
"count": 2
},
{
"date": "2025-09-21",
"count": 1
},
{
"date": "2025-09-22",
"count": 1
},
{
"date": "2025-09-29",
"count": 1
},
{
"date": "2025-10-04",
"count": 2
},
{
"date": "2025-10-05",
"count": 1
},
{
"date": "2025-10-09",
"count": 2
},
{
"date": "2025-10-10",
"count": 1
},
{
"date": "2025-10-14",
"count": 2
},
{
"date": "2025-10-16",
"count": 1
},
{
"date": "2025-10-17",
"count": 1
},
{
"date": "2025-10-19",
"count": 1
},
{
"date": "2025-10-23",
"count": 1
},
{
"date": "2025-10-25",
"count": 1
},
{
"date": "2025-11-07",
"count": 2
},
{
"date": "2025-11-09",
"count": 3
},
{
"date": "2025-11-15",
"count": 1
},
{
"date": "2025-11-20",
"count": 1
},
{
"date": "2025-11-24",
"count": 1
},
{
"date": "2025-11-27",
"count": 1
},
{
"date": "2025-11-29",
"count": 1
},
{
"date": "2025-11-30",
"count": 2
},
{
"date": "2025-12-05",
"count": 1
},
{
"date": "2025-12-10",
"count": 1
},
{
"date": "2025-12-11",
"count": 1
},
{
"date": "2025-12-12",
"count": 1
},
{
"date": "2025-12-16",
"count": 2
},
{
"date": "2025-12-17",
"count": 1
},
{
"date": "2025-12-18",
"count": 1
},
{
"date": "2025-12-21",
"count": 1
},
{
"date": "2026-01-02",
"count": 1
},
{
"date": "2026-01-04",
"count": 2
},
{
"date": "2026-01-07",
"count": 1
},
{
"date": "2026-01-09",
"count": 2
},
{
"date": "2026-01-10",
"count": 1
},
{
"date": "2026-01-13",
"count": 1
},
{
"date": "2026-01-16",
"count": 1
},
{
"date": "2026-01-21",
"count": 1
},
{
"date": "2026-01-25",
"count": 1
},
{
"date": "2026-02-03",
"count": 1
},
{
"date": "2026-02-06",
"count": 1
},
{
"date": "2026-02-08",
"count": 2
},
{
"date": "2026-02-12",
"count": 1
},
{
"date": "2026-02-18",
"count": 1
},
{
"date": "2026-02-19",
"count": 1
},
{
"date": "2026-02-27",
"count": 1
},
{
"date": "2026-03-08",
"count": 1
},
{
"date": "2026-03-12",
"count": 1
},
{
"date": "2026-03-27",
"count": 1
},
{
"date": "2026-03-30",
"count": 1
},
{
"date": "2026-04-02",
"count": 2
},
{
"date": "2026-04-03",
"count": 1
},
{
"date": "2026-04-04",
"count": 2
},
{
"date": "2026-04-07",
"count": 1
},
{
"date": "2026-04-09",
"count": 1
},
{
"date": "2026-04-12",
"count": 1
},
{
"date": "2026-04-13",
"count": 1
},
{
"date": "2026-04-15",
"count": 1
},
{
"date": "2026-04-18",
"count": 1
},
{
"date": "2026-04-24",
"count": 1
},
{
"date": "2026-04-25",
"count": 2
},
{
"date": "2026-04-26",
"count": 1
},
{
"date": "2026-04-30",
"count": 1
},
{
"date": "2026-05-10",
"count": 2
},
{
"date": "2026-05-11",
"count": 1
},
{
"date": "2026-05-14",
"count": 1
},
{
"date": "2026-05-15",
"count": 2
},
{
"date": "2026-05-17",
"count": 2
},
{
"date": "2026-05-18",
"count": 1
},
{
"date": "2026-05-22",
"count": 1
},
{
"date": "2026-05-31",
"count": 1
},
{
"date": "2026-06-02",
"count": 2
},
{
"date": "2026-06-03",
"count": 1
},
{
"date": "2026-06-04",
"count": 1
},
{
"date": "2026-06-05",
"count": 1
},
{
"date": "2026-06-11",
"count": 1
},
{
"date": "2026-06-15",
"count": 1
},
{
"date": "2026-06-19",
"count": 1
},
{
"date": "2026-06-28",
"count": 1
},
{
"date": "2026-06-29",
"count": 1
},
{
"date": "2026-07-03",
"count": 1
},
{
"date": "2026-07-04",
"count": 1
},
{
"date": "2026-07-17",
"count": 1
},
{
"date": "2026-07-18",
"count": 1
},
{
"date": "2026-07-20",
"count": 2
}
],
"complete": false,
"collected": 1000,
"total_stars": 6037
},
"open_issues_and_prs": 23
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [],
"has_llms_txt": false,
"has_dockerfile": false,
"has_mcp_signal": false,
"bootstrap_files": [],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [],
"toolchain_manifests": [],
"largest_source_bytes": 14547,
"source_files_sampled": 11,
"oversized_source_files": 0,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"dependencies": {
"manifests": [
"Gemfile"
],
"advisories": {
"error": null,
"scope": "repository_graph",
"source": "osv",
"findings": [
{
"name": "concurrent-ruby",
"direct": false,
"version": "1.3.6",
"severity": "high",
"ecosystem": "rubygems",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-6wx8-w4f5-wwcr",
"GHSA-h8w8-99g7-qmvj",
"GHSA-wv3x-4vxv-whpp"
],
"fixed_version": "1.3.7",
"advisory_count": 3,
"oldest_advisory_days": 32
},
{
"name": "nokogiri",
"direct": false,
"version": "1.19.3",
"severity": "moderate",
"ecosystem": "rubygems",
"cvss_score": 6.5,
"advisory_ids": [
"GHSA-5prr-v3j2-97mh",
"GHSA-5v8h-3h3q-446p",
"GHSA-8678-w3jw-xfc2",
"GHSA-9cv2-cfxc-v4v2",
"GHSA-p67v-3w7g-wjg7",
"GHSA-phwj-rprq-35pp",
"GHSA-wfpw-mmfh-qq69",
"GHSA-wjv4-x9w8-wm3h"
],
"fixed_version": "1.19.4",
"advisory_count": 8,
"oldest_advisory_days": 32
}
],
"collected": true,
"malicious": [],
"truncated": false,
"by_severity": {
"high": 1,
"moderate": 1
},
"advisory_count": 11,
"affected_count": 2,
"assessed_count": 55,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 8,
"direct_affected_count": 0
},
"ecosystems": [
"rubygems"
],
"dependencies": [
{
"name": "redcarpet",
"manifest": "Gemfile",
"ecosystem": "rubygems",
"version_constraint": null
},
{
"name": "kramdown",
"manifest": "Gemfile",
"ecosystem": "rubygems",
"version_constraint": null
},
{
"name": "RedCloth",
"manifest": "Gemfile",
"ecosystem": "rubygems",
"version_constraint": null
},
{
"name": "commonmarker",
"manifest": "Gemfile",
"ecosystem": "rubygems",
"version_constraint": "~> 2.8.2"
},
{
"name": "rdoc",
"manifest": "Gemfile",
"ecosystem": "rubygems",
"version_constraint": "~> 7.2.0"
},
{
"name": "org-ruby",
"manifest": "Gemfile",
"ecosystem": "rubygems",
"version_constraint": "0.9.12"
},
{
"name": "creole",
"manifest": "Gemfile",
"ecosystem": "rubygems",
"version_constraint": "~>0.5.0"
},
{
"name": "wikicloth",
"manifest": "Gemfile",
"ecosystem": "rubygems",
"version_constraint": "=0.8.3"
},
{
"name": "twitter-text",
"manifest": "Gemfile",
"ecosystem": "rubygems",
"version_constraint": "~> 1.14"
},
{
"name": "asciidoctor",
"manifest": "Gemfile",
"ecosystem": "rubygems",
"version_constraint": "~> 2.0.26"
},
{
"name": "rexml",
"manifest": "Gemfile",
"ecosystem": "rubygems",
"version_constraint": null
}
],
"all_dependencies": {
"error": null,
"source": "github-sbom",
"packages": [
{
"name": "asciidoctor",
"direct": true,
"version": "2.0.26",
"ecosystem": "rubygems"
},
{
"name": "commonmarker",
"direct": true,
"version": "2.8.2",
"ecosystem": "rubygems"
},
{
"name": "creole",
"direct": true,
"version": "0.5.0",
"ecosystem": "rubygems"
},
{
"name": "org-ruby",
"direct": true,
"version": "0.9.12",
"ecosystem": "rubygems"
},
{
"name": "rdoc",
"direct": true,
"version": "7.2.0",
"ecosystem": "rubygems"
},
{
"name": "redcarpet",
"direct": true,
"version": "3.6.1",
"ecosystem": "rubygems"
},
{
"name": "RedCloth",
"direct": true,
"version": "4.3.4",
"ecosystem": "rubygems"
},
{
"name": "rexml",
"direct": true,
"version": "3.4.4",
"ecosystem": "rubygems"
},
{
"name": "twitter-text",
"direct": true,
"version": "1.14.7",
"ecosystem": "rubygems"
},
{
"name": "wikicloth",
"direct": true,
"version": "0.8.3",
"ecosystem": "rubygems"
},
{
"name": "activesupport",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "activesupport",
"direct": false,
"version": "8.1.3",
"ecosystem": "rubygems"
},
{
"name": "base64",
"direct": false,
"version": "0.3.0",
"ecosystem": "rubygems"
},
{
"name": "bigdecimal",
"direct": false,
"version": "4.1.2",
"ecosystem": "rubygems"
},
{
"name": "builder",
"direct": false,
"version": "3.3.0",
"ecosystem": "rubygems"
},
{
"name": "cgi",
"direct": false,
"version": "0.5.1",
"ecosystem": "rubygems"
},
{
"name": "charlock_holmes",
"direct": false,
"version": "0.7.9",
"ecosystem": "rubygems"
},
{
"name": "concurrent-ruby",
"direct": false,
"version": "1.3.6",
"ecosystem": "rubygems"
},
{
"name": "connection_pool",
"direct": false,
"version": "3.0.2",
"ecosystem": "rubygems"
},
{
"name": "date",
"direct": false,
"version": "3.5.1",
"ecosystem": "rubygems"
},
{
"name": "docile",
"direct": false,
"version": "1.4.1",
"ecosystem": "rubygems"
},
{
"name": "drb",
"direct": false,
"version": "2.2.3",
"ecosystem": "rubygems"
},
{
"name": "erb",
"direct": false,
"version": "6.0.4",
"ecosystem": "rubygems"
},
{
"name": "expression_parser",
"direct": false,
"version": "0.9.0",
"ecosystem": "rubygems"
},
{
"name": "github-linguist",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "github-linguist",
"direct": false,
"version": "9.5.0",
"ecosystem": "rubygems"
},
{
"name": "html-pipeline",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "html-pipeline",
"direct": false,
"version": "3.2.4",
"ecosystem": "rubygems"
},
{
"name": "htmlentities",
"direct": false,
"version": "4.3.4",
"ecosystem": "rubygems"
},
{
"name": "i18n",
"direct": false,
"version": "1.14.8",
"ecosystem": "rubygems"
},
{
"name": "json",
"direct": false,
"version": "2.19.5",
"ecosystem": "rubygems"
},
{
"name": "logger",
"direct": false,
"version": "1.7.0",
"ecosystem": "rubygems"
},
{
"name": "mini_mime",
"direct": false,
"version": "1.1.5",
"ecosystem": "rubygems"
},
{
"name": "mini_portile2",
"direct": false,
"version": "2.8.9",
"ecosystem": "rubygems"
},
{
"name": "minitest",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "minitest",
"direct": false,
"version": "6.0.6",
"ecosystem": "rubygems"
},
{
"name": "nokogiri",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "nokogiri",
"direct": false,
"version": "1.19.3",
"ecosystem": "rubygems"
},
{
"name": "nokogiri-diff",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "nokogiri-diff",
"direct": false,
"version": "0.3.0",
"ecosystem": "rubygems"
},
{
"name": "prism",
"direct": false,
"version": "1.9.0",
"ecosystem": "rubygems"
},
{
"name": "psych",
"direct": false,
"version": "5.3.1",
"ecosystem": "rubygems"
},
{
"name": "racc",
"direct": false,
"version": "1.8.1",
"ecosystem": "rubygems"
},
{
"name": "rake",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "rake",
"direct": false,
"version": "13.4.2",
"ecosystem": "rubygems"
},
{
"name": "rake-compiler-dock",
"direct": false,
"version": "1.12.0",
"ecosystem": "rubygems"
},
{
"name": "rb_sys",
"direct": false,
"version": "0.9.128",
"ecosystem": "rubygems"
},
{
"name": "rubypants",
"direct": false,
"version": "0.7.1",
"ecosystem": "rubygems"
},
{
"name": "rugged",
"direct": false,
"version": "1.9.0",
"ecosystem": "rubygems"
},
{
"name": "securerandom",
"direct": false,
"version": "0.4.1",
"ecosystem": "rubygems"
},
{
"name": "selma",
"direct": false,
"version": "0.5.0",
"ecosystem": "rubygems"
},
{
"name": "simplecov",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "simplecov",
"direct": false,
"version": "0.22.0",
"ecosystem": "rubygems"
},
{
"name": "simplecov-html",
"direct": false,
"version": "0.13.2",
"ecosystem": "rubygems"
},
{
"name": "simplecov_json_formatter",
"direct": false,
"version": "0.1.4",
"ecosystem": "rubygems"
},
{
"name": "stringio",
"direct": false,
"version": "3.2.0",
"ecosystem": "rubygems"
},
{
"name": "tdiff",
"direct": false,
"version": "0.4.0",
"ecosystem": "rubygems"
},
{
"name": "tsort",
"direct": false,
"version": "0.2.0",
"ecosystem": "rubygems"
},
{
"name": "tzinfo",
"direct": false,
"version": "2.0.6",
"ecosystem": "rubygems"
},
{
"name": "unf",
"direct": false,
"version": "0.1.4",
"ecosystem": "rubygems"
},
{
"name": "unf_ext",
"direct": false,
"version": "0.0.9.1",
"ecosystem": "rubygems"
},
{
"name": "uri",
"direct": false,
"version": "1.1.1",
"ecosystem": "rubygems"
},
{
"name": "zeitwerk",
"direct": false,
"version": "2.8.2",
"ecosystem": "rubygems"
}
],
"collected": true,
"truncated": false,
"total_count": 63,
"direct_count": 10,
"indirect_count": 53
}
},
"maintainership": {
"issues": {
"open_prs": 3,
"merged_prs": 206,
"open_issues": 20,
"closed_ratio": 0.983,
"closed_issues": 1170,
"closed_unmerged_prs": 210
},
"bus_factor": 4,
"bot_contributors": 1,
"top_contributors": [
{
"type": "User",
"login": "bkeepers",
"commits": 98,
"avatar_url": "https://avatars.githubusercontent.com/u/173?v=4"
},
{
"type": "User",
"login": "defunkt",
"commits": 91,
"avatar_url": "https://avatars.githubusercontent.com/u/2?v=4"
},
{
"type": "User",
"login": "gjtorikian",
"commits": 86,
"avatar_url": "https://avatars.githubusercontent.com/u/64050?v=4"
},
{
"type": "User",
"login": "zkoppert",
"commits": 65,
"avatar_url": "https://avatars.githubusercontent.com/u/6935431?v=4"
},
{
"type": "User",
"login": "kivikakk",
"commits": 53,
"avatar_url": "https://avatars.githubusercontent.com/u/1915?v=4"
},
{
"type": "User",
"login": "jmeridth",
"commits": 29,
"avatar_url": "https://avatars.githubusercontent.com/u/35014?v=4"
},
{
"type": "User",
"login": "theory",
"commits": 15,
"avatar_url": "https://avatars.githubusercontent.com/u/46604?v=4"
},
{
"type": "User",
"login": "maxbeizer",
"commits": 9,
"avatar_url": "https://avatars.githubusercontent.com/u/2006658?v=4"
},
{
"type": "User",
"login": "JJ",
"commits": 9,
"avatar_url": "https://avatars.githubusercontent.com/u/500?v=4"
},
{
"type": "User",
"login": "bartkamphorst",
"commits": 9,
"avatar_url": "https://avatars.githubusercontent.com/u/571173?v=4"
}
],
"contributors_sampled": 91,
"top_contributor_share": 0.155
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"ci.yml",
"stale.yml"
],
"has_docs_dir": false,
"linter_configs": [],
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"Gemfile.lock"
],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 10,
"reason": "no binaries found in the repo",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": 5,
"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": 10,
"reason": "13 out of 13 merged PRs checked by a CI test -- score normalized to 10",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
},
{
"name": "CII-Best-Practices",
"score": 0,
"reason": "no effort to earn an OpenSSF best practices badge detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
},
{
"name": "Code-Review",
"score": 3,
"reason": "Found 1/3 approved changesets -- score normalized to 3",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 10,
"reason": "project has 62 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 4 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": 4,
"reason": "dependency not pinned by hash detected -- score normalized to 4",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 10,
"reason": "SAST tool is run on all commits",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 10,
"reason": "security policy file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": 0,
"reason": "Project has not signed or included provenance with any releases.",
"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": 0,
"reason": "11 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "a365c64ef765f3677ed50947081d29b863b6ff4c",
"ran_at": "2026-07-22T00:38:56Z",
"aggregate_score": 6.5,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": false,
"has_dependabot_config": true
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-21T12:38:03Z",
"oldest_open_prs": [
{
"number": 1935,
"created_at": "2025-03-04T02:33:01Z",
"last_comment_at": "2026-04-25T15:43:02Z",
"last_comment_author": "jdknight"
},
{
"number": 2074,
"created_at": "2026-06-14T00:46:32Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 2076,
"created_at": "2026-06-21T04:08:20Z",
"last_comment_at": null,
"last_comment_author": null
}
],
"last_merged_pr_at": "2026-07-15T11:00:48Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": [
{
"number": 83,
"created_at": "2011-10-05T14:23:20Z",
"last_comment_at": "2026-07-12T12:39:28Z",
"last_comment_author": "marshallward"
},
{
"number": 1095,
"created_at": "2017-08-21T08:03:43Z",
"last_comment_at": "2026-06-05T15:47:42Z",
"last_comment_author": "jseguillon"
},
{
"number": 1253,
"created_at": "2019-01-23T12:57:15Z",
"last_comment_at": "2026-05-31T15:16:20Z",
"last_comment_author": "karenetheridge"
},
{
"number": 1286,
"created_at": "2019-07-28T03:17:13Z",
"last_comment_at": "2026-06-03T14:05:59Z",
"last_comment_author": "ysangkok"
},
{
"number": 1443,
"created_at": "2021-02-15T08:52:04Z",
"last_comment_at": "2026-07-18T16:01:01Z",
"last_comment_author": "BujuArena"
},
{
"number": 1689,
"created_at": "2023-05-03T19:29:38Z",
"last_comment_at": "2026-06-26T14:35:48Z",
"last_comment_author": "shoelzer"
},
{
"number": 1760,
"created_at": "2024-01-09T16:04:52Z",
"last_comment_at": "2026-04-24T06:05:11Z",
"last_comment_author": "zkoppert"
},
{
"number": 1774,
"created_at": "2024-02-03T12:02:06Z",
"last_comment_at": "2026-06-03T15:54:29Z",
"last_comment_author": "roke-julian-lockhart"
},
{
"number": 1851,
"created_at": "2024-08-04T18:49:07Z",
"last_comment_at": "2026-07-01T21:33:13Z",
"last_comment_author": "roke-julian-lockhart"
},
{
"number": 2006,
"created_at": "2025-10-26T13:56:28Z",
"last_comment_at": "2026-07-07T13:09:05Z",
"last_comment_author": "roke-julian-lockhart"
},
{
"number": 2025,
"created_at": "2026-01-15T13:04:14Z",
"last_comment_at": "2026-05-22T16:33:36Z",
"last_comment_author": "roke-julian-lockhart"
},
{
"number": 2029,
"created_at": "2026-02-27T11:28:24Z",
"last_comment_at": "2026-06-03T15:56:59Z",
"last_comment_author": "roke-julian-lockhart"
},
{
"number": 2037,
"created_at": "2026-03-18T14:43:19Z",
"last_comment_at": "2026-07-19T16:08:27Z",
"last_comment_author": "roke-julian-lockhart"
},
{
"number": 2038,
"created_at": "2026-03-31T17:41:44Z",
"last_comment_at": "2026-05-31T14:50:37Z",
"last_comment_author": "roke-julian-lockhart"
},
{
"number": 2044,
"created_at": "2026-04-16T20:04:16Z",
"last_comment_at": "2026-06-16T15:48:08Z",
"last_comment_author": "roke-julian-lockhart"
},
{
"number": 2045,
"created_at": "2026-04-17T17:52:31Z",
"last_comment_at": "2026-05-24T19:00:57Z",
"last_comment_author": "BraianS"
},
{
"number": 2054,
"created_at": "2026-04-24T16:16:08Z",
"last_comment_at": "2026-07-07T21:42:12Z",
"last_comment_author": "asclepiadae"
},
{
"number": 2077,
"created_at": "2026-06-22T02:20:55Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 2084,
"created_at": "2026-07-01T13:19:41Z",
"last_comment_at": "2026-07-07T02:31:22Z",
"last_comment_author": "bakano69-del"
},
{
"number": 2091,
"created_at": "2026-07-20T16:04:26Z",
"last_comment_at": "2026-07-21T01:18:01Z",
"last_comment_author": "galavizmoralessandrayesenia0-afk"
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/github/markup",
"host": "github.com",
"name": "markup",
"owner": "github"
},
"metrics": {
"overall": {
"key": "overall",
"band": "good",
"name": "Overall health",
"note": null,
"notes": [],
"value": 77,
"inputs": {
"security": 72,
"vitality": 75,
"community": 94,
"governance": 83,
"engineering": 61
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "good",
"name": "Vitality",
"value": 75,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "good",
"name": "Development activity",
"note": null,
"notes": [],
"value": 75,
"inputs": {
"commits_last_year": 91,
"human_commit_share": 0.7,
"days_since_last_push": 6,
"active_weeks_last_year": 17
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 6 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 6
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "17/52 weeks with commits",
"points": 11.8,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 17
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "91 commits in the last year",
"points": 17.6,
"status": "partial",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 91
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "30 commit(s) and 4 issue activity found in the last 90 days -- score normalized to 10",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "good",
"name": "Release discipline",
"note": null,
"notes": [],
"value": 76,
"inputs": {
"releases_count": 22,
"latest_release_tag": "v6.0.0",
"releases_from_tags": false,
"days_since_latest_release": 78,
"mean_days_between_releases": 306.6
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "22 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 22
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 78 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 78
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~306.6 days",
"points": 12.6,
"status": "partial",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 306.6
}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "Project has not signed or included provenance with any releases.",
"points": 0,
"status": "missed",
"details": [],
"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": 11,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "last human commit 11 days ago",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_maintained",
"params": {
"days": 11
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "excellent",
"name": "Community & Adoption",
"value": 94,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "excellent",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"forks": 3368,
"stars": 6037,
"watchers": 614,
"growth_state": "organic",
"growth_factor_pct": 100
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "6,037 stars",
"points": 60,
"status": "met",
"details": [
{
"code": "stars",
"params": {
"count": 6037
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "3,368 forks",
"points": 25,
"status": "met",
"details": [
{
"code": "forks",
"params": {
"count": 3368
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "614 watchers",
"points": 15,
"status": "met",
"details": [
{
"code": "watchers",
"params": {
"count": 614
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "excellent",
"name": "Community health",
"note": null,
"notes": [],
"value": 85,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": true,
"has_issue_template": false,
"has_code_of_conduct": true,
"has_pull_request_template": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "recognized license (MIT)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "MIT"
}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 18,
"status": "met",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 13.5,
"status": "met",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.3
}
]
},
{
"key": "ecosystem_adoption",
"band": "excellent",
"name": "Ecosystem adoption (downloads)",
"note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"registry_dependents"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 97,
"inputs": {
"packages": [
"github-markup"
],
"dependents": null,
"ecosystems": "rubygems",
"total_downloads": 30915099,
"monthly_downloads": null
},
"components": [
{
"key": "total_downloads",
"name": "Total downloads",
"detail": "30,915,099 downloads all-time across rubygems",
"points": 77.8,
"status": "partial",
"details": [
{
"code": "downloads_total",
"params": {
"count": 30915099,
"ecosystems": "rubygems"
}
}
],
"max_points": 80
},
{
"key": "registry_dependents",
"name": "Registry dependents",
"detail": "not reported by this ecosystem",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_reported_by_this_ecosystem",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "good",
"name": "Sustainability & Governance",
"value": 83,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "excellent",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 86,
"inputs": {
"bus_factor": 4,
"contributors_sampled": 91,
"top_contributor_share": 0.155
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "4 contributor(s) cover half of all commits",
"points": 43.2,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 4
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 16% of commits",
"points": 19,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 16
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "91 contributors",
"points": 13.5,
"status": "met",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 91
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 62 contributing companies or organizations",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "moderate",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 69,
"inputs": {
"merged_prs": 206,
"open_issues": 20,
"closed_issues": 1170,
"issue_closed_ratio": 0.983,
"closed_unmerged_prs": 210
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "98% of issues closed",
"points": 46,
"status": "partial",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 98
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "206/416 decided PRs merged",
"points": 18.9,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 206,
"decided": 416
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 1/3 approved changesets -- score normalized to 3",
"points": 4.5,
"status": "partial",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "good",
"name": "Ownership & stewardship",
"note": null,
"notes": [],
"value": 80,
"inputs": {
"followers": 80388,
"owner_type": "Organization",
"is_verified": null,
"owner_login": "github",
"public_repos": 556,
"account_age_days": 6645
},
"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": "80,388 followers of github",
"points": 25,
"status": "met",
"details": [
{
"code": "owner_followers",
"params": {
"count": 80388,
"login": "github"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "556 public repos, account ~18 yr old",
"points": 25,
"status": "met",
"details": [
{
"code": "public_repos",
"params": {
"count": 556
}
},
{
"code": "account_age_years",
"params": {
"years": 18
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"github-markup"
],
"ecosystems": "rubygems",
"any_deprecated": false,
"min_days_since_publish": 77
},
"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 77 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 77
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "66 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 66
}
}
],
"max_points": 20
},
{
"key": "not_deprecated",
"name": "Not deprecated",
"detail": "active, not deprecated or yanked",
"points": 20,
"status": "met",
"details": [
{
"code": "package_not_deprecated",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "moderate",
"name": "Engineering Quality",
"value": 61,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "moderate",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 68,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "2 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 2
}
}
],
"max_points": 24
},
{
"key": "tests_present",
"name": "Tests present",
"detail": null,
"points": 24,
"status": "met",
"details": [],
"max_points": 24
},
{
"key": "linter_config",
"name": "Linter config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 16
},
{
"key": "pre_commit_hooks",
"name": "Pre-commit hooks",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 9.6
},
{
"key": "editorconfig",
"name": ".editorconfig",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "13 out of 13 merged PRs checked by a CI test -- score normalized to 10",
"points": 20,
"status": "met",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "moderate",
"name": "Documentation",
"note": null,
"notes": [],
"value": 50,
"inputs": {
"topics": [
"readme"
],
"has_wiki": false,
"homepage": null,
"has_readme": true,
"has_docs_dir": false,
"has_description": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 30,
"status": "met",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": "1 topics",
"points": 10,
"status": "met",
"details": [
{
"code": "topics_count",
"params": {
"count": 1
}
}
],
"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": 72,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "moderate",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): Packaging. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"packaging"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 65,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 17,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 1,
"scorecard_aggregate": 6.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": 3.8,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "13 out of 13 merged PRs checked by a CI test -- score normalized to 10",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "cii_best_practices",
"name": "CII-Best-Practices",
"detail": "no effort to earn an OpenSSF best practices badge detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "code_review",
"name": "Code-Review",
"detail": "Found 1/3 approved changesets -- score normalized to 3",
"points": 2.2,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 62 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 4 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": "dependency not pinned by hash detected -- score normalized to 4",
"points": 2,
"status": "partial",
"details": [],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "SAST tool is run on all commits",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file detected",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "Project has not signed or included provenance with any releases.",
"points": 0,
"status": "missed",
"details": [],
"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": "11 existing vulnerabilities detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "dependency_advisories",
"band": "excellent",
"name": "Dependency advisories",
"note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories, No advisories left outstanding. Remaining weights renormalized. Matched 55 resolved dependencies against OSV; 8 could not be assessed (no resolved version, an unsupported ecosystem, or beyond the reported package list). This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"indirect_dependencies_free_of_known_advisories",
"no_advisories_left_outstanding"
]
}
},
{
"code": "weights_renormalized",
"params": {}
},
{
"code": "advisories_scope_repository",
"params": {
"assessed": 55
}
},
{
"code": "advisories_unassessed",
"params": {
"count": 8
}
},
{
"code": "advisories_repo_graph_caveat",
"params": {}
},
{
"code": "advisories_reachability",
"params": {}
}
],
"value": 100,
"inputs": {
"source": "osv",
"advisories": 11,
"affected_packages": 2,
"assessed_packages": 55,
"unassessed_packages": 8,
"affected_by_severity": "high 1, moderate 1",
"direct_affected_packages": 0
},
"components": [
{
"key": "direct_dependencies_free_of_known_advisories",
"name": "Direct dependencies free of known advisories",
"detail": "no direct dependency carries a known advisory",
"points": 35,
"status": "met",
"details": [
{
"code": "no_direct_advisories",
"params": {}
}
],
"max_points": 35
},
{
"key": "indirect_dependencies_free_of_known_advisories",
"name": "Indirect dependencies free of known advisories",
"detail": "transitive set not separable from development and test dependencies in this scope",
"points": 0,
"status": "excluded",
"details": [
{
"code": "advisories_scope_not_separable",
"params": {}
}
],
"max_points": 25
},
{
"key": "no_advisories_left_outstanding",
"name": "No advisories left outstanding",
"detail": "no advisory carries a publication date",
"points": 0,
"status": "excluded",
"details": [
{
"code": "advisories_no_publication_date",
"params": {}
}
],
"max_points": 40
}
]
},
{
"key": "malicious_dependencies",
"band": "excellent",
"name": "Malicious dependencies",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"source": "osv",
"meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
"packages": [],
"red_flag": false,
"assessed_packages": 55,
"malicious_packages": 0,
"direct_malicious_packages": 0,
"withdrawn_malicious_packages": 0,
"installable_malicious_packages": 0
},
"components": [
{
"key": "no_dependency_reported_as_a_malicious_package",
"name": "No dependency reported as a malicious package",
"detail": "no dependency is reported as a malicious package",
"points": 100,
"status": "met",
"details": [
{
"code": "no_malicious_dependencies",
"params": {}
}
],
"max_points": 100
}
]
},
{
"key": "high_risk_jurisdiction_exposure",
"band": "excellent",
"name": "High-Risk Jurisdiction Exposure",
"note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
"notes": [
{
"code": "jurisdiction_evidence_limits",
"params": {}
}
],
"value": 100,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": false,
"exposures": [],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"review_only_matches": 0,
"assessed_self_published_locations": 23
},
"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": 49,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "at_risk",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.986,
"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": "69 of 70 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 69,
"sampled": 70
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "moderate",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 54,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"Gemfile.lock"
],
"has_dockerfile": false,
"typed_language": false,
"bootstrap_files": [],
"has_devcontainer": false,
"has_linter_config": false,
"typecheck_configs": [],
"agent_commit_share": 0.32,
"toolchain_manifests": [],
"dependency_bot_commit_share": 0.3
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "automated_tests",
"name": "Automated tests",
"detail": null,
"points": 22,
"status": "met",
"details": [],
"max_points": 22
},
{
"key": "lint_format_config",
"name": "Lint / format config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": "lockfile",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "lockfile"
}
}
],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "32 of the last 100 commits agent-authored or agent-credited",
"points": 10,
"status": "met",
"details": [
{
"code": "agent_authored_commits",
"params": {
"count": 32,
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "30 of the last 100 commits are automated dependency updates",
"points": 8,
"status": "met",
"details": [
{
"code": "dependency_bot_commits",
"params": {
"count": 30,
"sampled": 100
}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 4",
"points": 4,
"status": "partial",
"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": 14547,
"source_files_sampled": 11,
"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/11 source files over 60KB",
"points": 55,
"status": "met",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 11,
"oversized": 0
}
}
],
"max_points": 55
}
]
}
],
"description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
}
],
"metrics_version": "1.13.0"
},
"warnings": [],
"report_type": "repository",
"generated_at": "2026-07-22T00:39:27.377314Z",
"schema_version": "0.26.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/g/github/markup.svg",
"full_name": "github/markup",
"license_state": "standard",
"license_spdx": "MIT"
}