{"id":470,"name":null,"description":"Attach comments to ActiveRecord's SQL queries","url":"https://github.com/basecamp/marginalia","last_synced_at":"2026-04-30T04:02:31.155Z","repository":{"id":2696536,"uuid":"3689879","full_name":"basecamp/marginalia","owner":"basecamp","description":"Attach comments to ActiveRecord's SQL queries","archived":false,"fork":false,"pushed_at":"2026-04-13T21:06:36.000Z","size":219,"stargazers_count":1772,"open_issues_count":11,"forks_count":147,"subscribers_count":18,"default_branch":"master","last_synced_at":"2026-04-19T23:10:22.903Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/basecamp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2012-03-11T21:35:11.000Z","updated_at":"2026-04-14T19:52:26.000Z","dependencies_parsed_at":"2023-02-16T10:30:43.014Z","dependency_job_id":"eff73f21-8561-4d05-823d-f5e4be47f60e","html_url":"https://github.com/basecamp/marginalia","commit_stats":{"total_commits":206,"total_committers":52,"mean_commits":"3.9615384615384617","dds":0.7475728155339806,"last_synced_commit":"226f93234b0ca58f548c5af23e229bdf3bf15ad5"},"previous_names":["37signals/marginalia"],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/basecamp/marginalia","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/basecamp","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/sbom","scorecard":{"id":226593,"data":{"date":"2025-08-11","repo":{"name":"github.com/basecamp/marginalia","commit":"226f93234b0ca58f548c5af23e229bdf3bf15ad5"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/basecamp/marginalia/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/basecamp/marginalia/ci.yml/master?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":4,"reason":"Found 7/17 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 22 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T03:55:53.640Z","repository_id":2696536,"created_at":"2025-08-17T03:55:53.641Z","updated_at":"2025-08-17T03:55:53.641Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32283294,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T18:29:39.964Z","status":"online","status_checked_at":"2026-04-26T02:00:05.962Z","response_time":129,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"basecamp","name":"Basecamp","uuid":"13131","kind":"organization","description":"HEY! It's in Basecamp!","email":"support@basecamp.com","website":"https://basecamp.com/","location":"Chicago, IL","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/13131?v=4","repositories_count":223,"last_synced_at":"2026-01-17T16:53:57.403Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/basecamp","funding_links":[],"total_stars":102425,"followers":2404,"following":0,"created_at":"2022-11-02T16:17:13.935Z","updated_at":"2026-01-17T16:53:57.403Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/basecamp","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/basecamp/repositories"},"packages":[{"id":13804726,"name":"ruby-marginalia","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/basecamp/marginalia","licenses":"mit","normalized_licenses":["MIT"],"repository_url":"https://github.com/basecamp/marginalia","keywords_array":["universe/misc"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-13T18:25:10.529Z","latest_release_published_at":"2026-02-13T18:25:10.529Z","latest_release_number":"1.11.1-1","last_synced_at":"2026-03-13T19:23:54.433Z","created_at":"2026-02-13T18:25:10.247Z","updated_at":"2026-03-13T19:23:54.737Z","registry_url":"https://launchpad.net/ubuntu/+source/ruby-marginalia","install_command":"apt-get install ruby-marginalia","documentation_url":null,"metadata":{"component":"universe","architecture":"all","priority":"optional","binary":"ruby-marginalia","standards_version":"4.6.1","maintainer":"Debian Ruby Team \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper-compat (= 13), gem2deb, rake, ruby-activejob, ruby-actionpack (\u003e= 2.3), ruby-activerecord (\u003e= 2.3), ruby-mocha, ruby-mysql2, ruby-railties, ruby-sidekiq","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":2696536,"uuid":"3689879","full_name":"basecamp/marginalia","owner":"basecamp","description":"Attach comments to ActiveRecord's SQL queries","archived":false,"fork":false,"pushed_at":"2024-08-05T02:12:32.000Z","size":206,"stargazers_count":1768,"open_issues_count":10,"forks_count":146,"subscribers_count":19,"default_branch":"master","last_synced_at":"2026-02-07T19:28:06.734Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/basecamp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2012-03-11T21:35:11.000Z","updated_at":"2026-02-03T10:23:01.000Z","dependencies_parsed_at":"2023-02-16T10:30:43.014Z","dependency_job_id":"eff73f21-8561-4d05-823d-f5e4be47f60e","html_url":"https://github.com/basecamp/marginalia","commit_stats":{"total_commits":206,"total_committers":52,"mean_commits":"3.9615384615384617","dds":0.7475728155339806,"last_synced_commit":"226f93234b0ca58f548c5af23e229bdf3bf15ad5"},"previous_names":["37signals/marginalia"],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/basecamp/marginalia","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/basecamp","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/sbom","scorecard":{"id":226593,"data":{"date":"2025-08-11","repo":{"name":"github.com/basecamp/marginalia","commit":"226f93234b0ca58f548c5af23e229bdf3bf15ad5"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/basecamp/marginalia/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/basecamp/marginalia/ci.yml/master?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":4,"reason":"Found 7/17 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 22 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T03:55:53.640Z","repository_id":2696536,"created_at":"2025-08-17T03:55:53.641Z","updated_at":"2025-08-17T03:55:53.641Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29266070,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-09T12:53:16.161Z","status":"ssl_error","status_checked_at":"2026-02-09T12:52:30.244Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"repo_metadata_updated_at":"2026-02-13T18:25:57.919Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:deb/ubuntu/ruby-marginalia?arch=source\u0026distro=ubuntu-23.10\u0026repository_url=https://launchpad.net/ubuntu/mantic","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/ruby-marginalia","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/ruby-marginalia","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/ruby-marginalia/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/ruby-marginalia/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/ruby-marginalia/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/ruby-marginalia/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/ruby-marginalia/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/ruby-marginalia/codemeta","maintainers":[],"registry":{"name":"ubuntu-23.10","url":"https://launchpad.net/ubuntu/mantic","ecosystem":"ubuntu","default":false,"packages_count":36642,"maintainers_count":0,"namespaces_count":4,"keywords_count":0,"github":"ubuntu","metadata":{"codename":"mantic","mirror":"http://old-releases.ubuntu.com/ubuntu"},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:48.636Z","updated_at":"2026-04-27T18:20:38.051Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/namespaces"}},{"id":12269821,"name":"marginalia","ecosystem":"rubygems","description":"Attach comments to your ActiveRecord queries.","homepage":"https://github.com/basecamp/marginalia","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/basecamp/marginalia","keywords_array":[],"namespace":null,"versions_count":23,"first_release_published_at":"2012-04-24T17:38:18.864Z","latest_release_published_at":"2021-08-20T03:39:48.639Z","latest_release_number":"1.11.1","last_synced_at":"2026-04-29T02:01:25.954Z","created_at":"2025-10-07T04:10:44.868Z","updated_at":"2026-04-29T02:03:14.313Z","registry_url":"https://gem.coop/gems/marginalia","install_command":"gem install marginalia -s https://gem.coop","documentation_url":"http://www.rubydoc.info/gems/marginalia/","metadata":{"funding":null},"repo_metadata":{"id":2696536,"uuid":"3689879","full_name":"basecamp/marginalia","owner":"basecamp","description":"Attach comments to ActiveRecord's SQL queries","archived":false,"fork":false,"pushed_at":"2026-04-13T21:06:36.000Z","size":219,"stargazers_count":1772,"open_issues_count":11,"forks_count":147,"subscribers_count":18,"default_branch":"master","last_synced_at":"2026-04-19T23:10:22.903Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/basecamp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2012-03-11T21:35:11.000Z","updated_at":"2026-04-14T19:52:26.000Z","dependencies_parsed_at":"2023-02-16T10:30:43.014Z","dependency_job_id":"eff73f21-8561-4d05-823d-f5e4be47f60e","html_url":"https://github.com/basecamp/marginalia","commit_stats":{"total_commits":206,"total_committers":52,"mean_commits":"3.9615384615384617","dds":0.7475728155339806,"last_synced_commit":"226f93234b0ca58f548c5af23e229bdf3bf15ad5"},"previous_names":["37signals/marginalia"],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/basecamp/marginalia","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/basecamp","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/sbom","scorecard":{"id":226593,"data":{"date":"2025-08-11","repo":{"name":"github.com/basecamp/marginalia","commit":"226f93234b0ca58f548c5af23e229bdf3bf15ad5"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/basecamp/marginalia/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/basecamp/marginalia/ci.yml/master?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":4,"reason":"Found 7/17 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 22 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T03:55:53.640Z","repository_id":2696536,"created_at":"2025-08-17T03:55:53.641Z","updated_at":"2025-08-17T03:55:53.641Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32283294,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T18:29:39.964Z","status":"online","status_checked_at":"2026-04-26T02:00:05.962Z","response_time":129,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"basecamp","name":"Basecamp","uuid":"13131","kind":"organization","description":"HEY! It's in Basecamp!","email":"support@basecamp.com","website":"https://basecamp.com/","location":"Chicago, IL","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/13131?v=4","repositories_count":223,"last_synced_at":"2026-01-17T16:53:57.403Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/basecamp","funding_links":[],"total_stars":102425,"followers":2404,"following":0,"created_at":"2022-11-02T16:17:13.935Z","updated_at":"2026-01-17T16:53:57.403Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/basecamp","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/basecamp/repositories"},"tags":[{"name":"v1.11.1","sha":"adc34ade565164273fcc256cb40b871cf790a252","kind":"commit","published_at":"2021-08-20T03:39:06.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.11.1","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.11.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.11.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.11.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.11.1/manifests"},{"name":"v1.11.0","sha":"5f8895e758baca7a0dc2b00b8ae7fb0aa8004e51","kind":"commit","published_at":"2021-08-14T01:14:24.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.11.0","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.11.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.11.0/manifests"},{"name":"v1.10.1","sha":"8c1e8ecc75b09aab01c94290581cb4b1b5267f7d","kind":"tag","published_at":"2021-02-17T10:05:24.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.10.1","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.10.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.10.1/manifests"},{"name":"v1.10.0","sha":"700d30c5dbaa634b32d9c957c29b4bc6215f1c00","kind":"tag","published_at":"2021-01-04T18:53:43.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.10.0","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.10.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.10.0/manifests"},{"name":"v1.9.0","sha":"64b8185e88be2755c9502fa6e63dbb61a1c4bfa3","kind":"tag","published_at":"2020-08-05T23:26:17.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.9.0","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.9.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.9.0/manifests"},{"name":"v1.8.0","sha":"318ddfc974d846d4b41d06c3c4c3b71b4dfbf244","kind":"tag","published_at":"2019-03-25T21:54:25.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.8.0","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.8.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.8.0/manifests"},{"name":"v1.7.1","sha":"a25edb22820b50cef25a5ebc918c00976be13461","kind":"tag","published_at":"2019-03-19T13:39:41.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.7.1","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.7.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.7.1/manifests"},{"name":"v1.7.0","sha":"c829cdafeea03e41d56972aa22c903f5a531c461","kind":"tag","published_at":"2019-03-15T19:53:18.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.7.0","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.7.0/manifests"},{"name":"v1.6.0","sha":"5fae25d0ab09736ba067ce767f48f4614d50f469","kind":"tag","published_at":"2018-09-24T16:02:09.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.6.0","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.6.0/manifests"},{"name":"v1.5.0","sha":"e87f5564e03f1bd366457e182303b705e3b0a4b7","kind":"tag","published_at":"2017-09-19T18:28:58.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.5.0","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.5.0/manifests"},{"name":"v1.4.0","sha":"e019caf128fb519950e7635645c4f4fca9927dd9","kind":"tag","published_at":"2016-08-15T16:28:25.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.4.0","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.4.0/manifests"},{"name":"v1.3.0","sha":"2b995f80d68411ae081938a121568013d0dd44fa","kind":"tag","published_at":"2015-02-24T15:18:32.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.3.0","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"7046193a04d1e20bf024f71d1422e834312ce07c","kind":"tag","published_at":"2015-01-20T15:46:42.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.2.0","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.2.0/manifests"},{"name":"v1.1.5","sha":"ddae21d13a0fe686054f3cdfb060dad45af477d3","kind":"tag","published_at":"2014-02-07T19:16:44.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.1.5","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.1.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.1.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.1.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.1.5/manifests"},{"name":"v1.1.4","sha":"75d4a338bbeaa0b41f750bf77f734b36f0e2fd7d","kind":"tag","published_at":"2013-12-30T14:44:08.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.1.4","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.1.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.1.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.1.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.1.4/manifests"},{"name":"v1.1.3","sha":"b38e8b51fea5db065d6d281c452b59c59f56cb5c","kind":"tag","published_at":"2013-10-07T18:49:13.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.1.3","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.1.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.1.3/manifests"},{"name":"v1.1.2","sha":"ba97ce2612a3e6cdfcdb8f79e764441af5cb65c4","kind":"tag","published_at":"2013-03-16T18:05:40.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.1.2","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.1.2/manifests"},{"name":"v1.1.1","sha":"20d07f628171abec143fb8f64bba7142f5a0cf42","kind":"tag","published_at":"2013-03-16T17:54:34.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.1.1","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.1.1/manifests"},{"name":"v1.1.0","sha":"a60b4ea50ec4f2c3edebb46234493191f556fa5b","kind":"tag","published_at":"2012-04-30T22:05:05.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.1.0","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.1.0/manifests"},{"name":"v1.0.3","sha":"b4d340f1bc70ee35965069c7baed0137ce578d31","kind":"tag","published_at":"2012-04-29T20:31:46.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.0.3","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.0.3/manifests"},{"name":"v1.0.2","sha":"a4a504a17889407cf19586853969aef982e9edc5","kind":"tag","published_at":"2012-04-25T11:56:36.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.0.2","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.0.2/manifests"},{"name":"v1.0.1","sha":"793f4e24ef05200863921355a687d45e8af6aaf7","kind":"tag","published_at":"2012-04-25T11:46:56.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.0.1","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.0.1/manifests"},{"name":"v1.0.0","sha":"d6db872cd0f4b85bc928378b25c50d335a230072","kind":"tag","published_at":"2012-04-24T17:38:05.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.0.0","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-04-29T02:03:14.312Z","dependent_packages_count":0,"downloads":70841572,"downloads_period":"total","dependent_repos_count":0,"rankings":{"downloads":0.40981612339898676,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":0.3184455101345689,"average":0.18206540838338892},"purl":"pkg:gem/marginalia?repository_url=https://gem.coop","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/rubygems/marginalia","docker_dependents_count":159,"docker_downloads_count":434231565,"usage_url":"https://repos.ecosyste.ms/usage/rubygems/marginalia","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/rubygems/marginalia/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-04-28T00:06:02.038Z","issues_count":37,"pull_requests_count":81,"avg_time_to_close_issue":44108850.09677419,"avg_time_to_close_pull_request":15835063.070422536,"issues_closed_count":31,"pull_requests_closed_count":71,"pull_request_authors_count":51,"issue_authors_count":36,"avg_comments_per_issue":1.8918918918918919,"avg_comments_per_pull_request":2.2098765432098766,"merged_pull_requests_count":43,"bot_issues_count":0,"bot_pull_requests_count":4,"past_year_issues_count":0,"past_year_pull_requests_count":6,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":1032604.5,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":2,"past_year_pull_request_authors_count":2,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":0.3333333333333333,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":4,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/issues","maintainers":[{"login":"sj26","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/sj26"},{"login":"jeremy","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jeremy"},{"login":"arthurnn","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/arthurnn"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/marginalia/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/marginalia/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/marginalia/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/marginalia/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/marginalia/codemeta","maintainers":[{"uuid":"46413","login":"byroot","name":null,"email":null,"url":null,"packages_count":105,"html_url":"https://gem.coop/profiles/byroot","role":null,"created_at":"2025-10-07T22:52:35.296Z","updated_at":"2025-10-07T22:52:35.296Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/byroot/packages"},{"uuid":"38263","login":"sj26","name":null,"email":null,"url":null,"packages_count":28,"html_url":"https://gem.coop/profiles/sj26","role":null,"created_at":"2025-10-07T22:52:35.255Z","updated_at":"2025-10-07T22:52:35.255Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/sj26/packages"},{"uuid":"59104","login":"arthurnn","name":null,"email":null,"url":null,"packages_count":23,"html_url":"https://gem.coop/profiles/arthurnn","role":null,"created_at":"2025-10-07T22:52:35.427Z","updated_at":"2025-10-07T22:52:35.427Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/arthurnn/packages"},{"uuid":"58183","login":"noahhl","name":null,"email":null,"url":null,"packages_count":1,"html_url":"https://gem.coop/profiles/noahhl","role":null,"created_at":"2025-10-07T22:52:35.385Z","updated_at":"2025-10-07T22:52:35.385Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/noahhl/packages"}],"registry":{"name":"gem.coop","url":"https://gem.coop","ecosystem":"rubygems","default":false,"packages_count":190401,"maintainers_count":67480,"namespaces_count":0,"keywords_count":0,"github":"gem-coop","metadata":{"funded_packages_count":6507},"icon_url":"https://github.com/gem-coop.png","created_at":"2025-10-06T17:24:20.932Z","updated_at":"2026-04-03T06:45:05.763Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/namespaces"}},{"id":13751315,"name":"ruby-marginalia","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/basecamp/marginalia","licenses":null,"normalized_licenses":[],"repository_url":"https://github.com/basecamp/marginalia","keywords_array":["universe/misc"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-13T07:17:25.758Z","latest_release_published_at":"2026-02-13T07:17:25.758Z","latest_release_number":"1.8.0-2","last_synced_at":"2026-03-13T13:25:35.508Z","created_at":"2026-02-13T07:17:25.582Z","updated_at":"2026-03-13T13:25:35.509Z","registry_url":"https://launchpad.net/ubuntu/+source/ruby-marginalia","install_command":"apt-get install ruby-marginalia","documentation_url":null,"metadata":{"component":"universe","architecture":"all","priority":"optional","binary":"ruby-marginalia","standards_version":"4.4.1","maintainer":"Debian Ruby Extras Maintainers \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper-compat (= 12), gem2deb, rake, ruby-activejob, ruby-actionpack (\u003e= 2.3), ruby-activerecord (\u003e= 2.3), ruby-mocha, ruby-mysql2, ruby-railties, ruby-sidekiq","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{},"repo_metadata_updated_at":"2026-02-13T07:17:26.443Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:deb/ubuntu/ruby-marginalia?arch=source\u0026distro=ubuntu-20.04\u0026repository_url=https://launchpad.net/ubuntu/focal","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/ruby-marginalia","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/ruby-marginalia","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/ruby-marginalia/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/packages/ruby-marginalia/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/packages/ruby-marginalia/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/packages/ruby-marginalia/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/packages/ruby-marginalia/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/packages/ruby-marginalia/codemeta","maintainers":[],"registry":{"name":"ubuntu-20.04","url":"https://launchpad.net/ubuntu/focal","ecosystem":"ubuntu","default":false,"packages_count":30789,"maintainers_count":0,"namespaces_count":4,"keywords_count":0,"github":"ubuntu","metadata":{"codename":"focal"},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:47.233Z","updated_at":"2026-04-27T18:20:36.874Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/namespaces"}},{"id":13466952,"name":"ruby-marginalia","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/basecamp/marginalia","licenses":null,"normalized_licenses":[],"repository_url":"https://github.com/basecamp/marginalia","keywords_array":["universe/misc"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-09T16:53:21.500Z","latest_release_published_at":"2026-02-09T16:53:21.500Z","latest_release_number":"1.11.1-1","last_synced_at":"2026-03-09T17:07:21.253Z","created_at":"2026-02-09T16:53:18.999Z","updated_at":"2026-03-09T17:32:00.853Z","registry_url":"https://launchpad.net/ubuntu/+source/ruby-marginalia","install_command":"apt-get install ruby-marginalia","documentation_url":null,"metadata":{"component":"universe","architecture":"all","priority":"optional","binary":"ruby-marginalia","standards_version":"4.6.1","maintainer":"Debian Ruby Team \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper-compat (= 13), gem2deb, rake, ruby-activejob, ruby-actionpack (\u003e= 2.3), ruby-activerecord (\u003e= 2.3), ruby-mocha, ruby-mysql2, ruby-railties, ruby-sidekiq","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{},"repo_metadata_updated_at":null,"dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:deb/ubuntu/ruby-marginalia?arch=source\u0026distro=ubuntu-24.10\u0026repository_url=https://launchpad.net/ubuntu/oracular","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/ruby-marginalia","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/ruby-marginalia","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/ruby-marginalia/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/ruby-marginalia/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/ruby-marginalia/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/ruby-marginalia/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/ruby-marginalia/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/ruby-marginalia/codemeta","maintainers":[],"registry":{"name":"ubuntu-24.10","url":"https://launchpad.net/ubuntu/oracular","ecosystem":"ubuntu","default":false,"packages_count":38437,"maintainers_count":0,"namespaces_count":4,"keywords_count":0,"github":"ubuntu","metadata":{"codename":"oracular","mirror":"http://old-releases.ubuntu.com/ubuntu"},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:48.028Z","updated_at":"2026-04-27T18:20:37.303Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/namespaces"}},{"id":13530554,"name":"ruby-marginalia","ecosystem":"debian","description":null,"homepage":"https://github.com/basecamp/marginalia","licenses":"mit","normalized_licenses":["MIT"],"repository_url":"https://github.com/basecamp/marginalia","keywords_array":["misc"],"namespace":"main","versions_count":1,"first_release_published_at":"2026-02-10T23:33:43.112Z","latest_release_published_at":"2026-02-10T23:33:43.112Z","latest_release_number":"1.9.0-1","last_synced_at":"2026-03-14T04:24:24.414Z","created_at":"2026-02-10T23:33:42.909Z","updated_at":"2026-03-14T04:24:24.414Z","registry_url":"https://tracker.debian.org/pkg/ruby-marginalia","install_command":"apt-get install ruby-marginalia","documentation_url":"https://packages.debian.org/bullseye/ruby-marginalia","metadata":{"component":"main","architecture":"all","priority":"extra","binary":"ruby-marginalia","standards_version":"4.5.0","maintainer":"Debian Ruby Team \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper-compat (= 13), gem2deb, rake, ruby-activejob, ruby-actionpack (\u003e= 2.3), ruby-activerecord (\u003e= 2.3), ruby-mocha, ruby-mysql2, ruby-railties, ruby-sidekiq","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":2696536,"uuid":"3689879","full_name":"basecamp/marginalia","owner":"basecamp","description":"Attach comments to ActiveRecord's SQL queries","archived":false,"fork":false,"pushed_at":"2024-08-05T02:12:32.000Z","size":206,"stargazers_count":1768,"open_issues_count":10,"forks_count":146,"subscribers_count":19,"default_branch":"master","last_synced_at":"2026-02-07T19:28:06.734Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/basecamp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2012-03-11T21:35:11.000Z","updated_at":"2026-02-03T10:23:01.000Z","dependencies_parsed_at":"2023-02-16T10:30:43.014Z","dependency_job_id":"eff73f21-8561-4d05-823d-f5e4be47f60e","html_url":"https://github.com/basecamp/marginalia","commit_stats":{"total_commits":206,"total_committers":52,"mean_commits":"3.9615384615384617","dds":0.7475728155339806,"last_synced_commit":"226f93234b0ca58f548c5af23e229bdf3bf15ad5"},"previous_names":["37signals/marginalia"],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/basecamp/marginalia","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/basecamp","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/sbom","scorecard":{"id":226593,"data":{"date":"2025-08-11","repo":{"name":"github.com/basecamp/marginalia","commit":"226f93234b0ca58f548c5af23e229bdf3bf15ad5"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/basecamp/marginalia/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/basecamp/marginalia/ci.yml/master?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":4,"reason":"Found 7/17 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 22 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T03:55:53.640Z","repository_id":2696536,"created_at":"2025-08-17T03:55:53.641Z","updated_at":"2025-08-17T03:55:53.641Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29266070,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-09T12:53:16.161Z","status":"ssl_error","status_checked_at":"2026-02-09T12:52:30.244Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"repo_metadata_updated_at":"2026-02-11T14:26:40.583Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:deb/debian/ruby-marginalia?arch=source\u0026distro=debian-11\u0026repository_url=https://packages.debian.org/bullseye","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/debian/ruby-marginalia","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/debian/ruby-marginalia","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/debian/ruby-marginalia/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages/ruby-marginalia/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages/ruby-marginalia/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages/ruby-marginalia/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages/ruby-marginalia/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages/ruby-marginalia/codemeta","maintainers":[],"registry":{"name":"debian-11","url":"https://packages.debian.org/bullseye","ecosystem":"debian","default":false,"packages_count":31268,"maintainers_count":0,"namespaces_count":3,"keywords_count":0,"github":"debian","metadata":{"codename":"bullseye"},"icon_url":"https://github.com/debian.png","created_at":"2026-02-04T11:01:49.702Z","updated_at":"2026-04-27T18:20:39.352Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/namespaces"}},{"id":250283,"name":"marginalia","ecosystem":"rubygems","description":"Attach comments to your ActiveRecord queries.","homepage":"https://github.com/basecamp/marginalia","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/basecamp/marginalia","keywords_array":[],"namespace":null,"versions_count":23,"first_release_published_at":"2012-04-24T17:38:18.864Z","latest_release_published_at":"2021-08-20T03:39:48.639Z","latest_release_number":"1.11.1","last_synced_at":"2026-04-29T09:44:14.481Z","created_at":"2022-04-06T03:55:22.658Z","updated_at":"2026-04-29T09:44:17.759Z","registry_url":"https://rubygems.org/gems/marginalia","install_command":"gem install marginalia -s https://rubygems.org","documentation_url":"http://www.rubydoc.info/gems/marginalia/","metadata":{"funding":null},"repo_metadata":{"id":2696536,"uuid":"3689879","full_name":"basecamp/marginalia","owner":"basecamp","description":"Attach comments to ActiveRecord's SQL queries","archived":false,"fork":false,"pushed_at":"2026-04-13T21:06:36.000Z","size":219,"stargazers_count":1772,"open_issues_count":11,"forks_count":147,"subscribers_count":18,"default_branch":"master","last_synced_at":"2026-04-19T23:10:22.903Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/basecamp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2012-03-11T21:35:11.000Z","updated_at":"2026-04-14T19:52:26.000Z","dependencies_parsed_at":"2023-02-16T10:30:43.014Z","dependency_job_id":"eff73f21-8561-4d05-823d-f5e4be47f60e","html_url":"https://github.com/basecamp/marginalia","commit_stats":{"total_commits":206,"total_committers":52,"mean_commits":"3.9615384615384617","dds":0.7475728155339806,"last_synced_commit":"226f93234b0ca58f548c5af23e229bdf3bf15ad5"},"previous_names":["37signals/marginalia"],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/basecamp/marginalia","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/basecamp","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/sbom","scorecard":{"id":226593,"data":{"date":"2025-08-11","repo":{"name":"github.com/basecamp/marginalia","commit":"226f93234b0ca58f548c5af23e229bdf3bf15ad5"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/basecamp/marginalia/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/basecamp/marginalia/ci.yml/master?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":4,"reason":"Found 7/17 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 22 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T03:55:53.640Z","repository_id":2696536,"created_at":"2025-08-17T03:55:53.641Z","updated_at":"2025-08-17T03:55:53.641Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32283294,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T18:29:39.964Z","status":"online","status_checked_at":"2026-04-26T02:00:05.962Z","response_time":129,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"basecamp","name":"Basecamp","uuid":"13131","kind":"organization","description":"HEY! It's in Basecamp!","email":"support@basecamp.com","website":"https://basecamp.com/","location":"Chicago, IL","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/13131?v=4","repositories_count":223,"last_synced_at":"2026-01-17T16:53:57.403Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/basecamp","funding_links":[],"total_stars":102425,"followers":2404,"following":0,"created_at":"2022-11-02T16:17:13.935Z","updated_at":"2026-01-17T16:53:57.403Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/basecamp","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/basecamp/repositories"},"tags":[{"name":"v1.11.1","sha":"adc34ade565164273fcc256cb40b871cf790a252","kind":"commit","published_at":"2021-08-20T03:39:06.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.11.1","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.11.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.11.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.11.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.11.1/manifests"},{"name":"v1.11.0","sha":"5f8895e758baca7a0dc2b00b8ae7fb0aa8004e51","kind":"commit","published_at":"2021-08-14T01:14:24.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.11.0","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.11.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.11.0/manifests"},{"name":"v1.10.1","sha":"8c1e8ecc75b09aab01c94290581cb4b1b5267f7d","kind":"tag","published_at":"2021-02-17T10:05:24.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.10.1","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.10.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.10.1/manifests"},{"name":"v1.10.0","sha":"700d30c5dbaa634b32d9c957c29b4bc6215f1c00","kind":"tag","published_at":"2021-01-04T18:53:43.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.10.0","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.10.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.10.0/manifests"},{"name":"v1.9.0","sha":"64b8185e88be2755c9502fa6e63dbb61a1c4bfa3","kind":"tag","published_at":"2020-08-05T23:26:17.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.9.0","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.9.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.9.0/manifests"},{"name":"v1.8.0","sha":"318ddfc974d846d4b41d06c3c4c3b71b4dfbf244","kind":"tag","published_at":"2019-03-25T21:54:25.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.8.0","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.8.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.8.0/manifests"},{"name":"v1.7.1","sha":"a25edb22820b50cef25a5ebc918c00976be13461","kind":"tag","published_at":"2019-03-19T13:39:41.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.7.1","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.7.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.7.1/manifests"},{"name":"v1.7.0","sha":"c829cdafeea03e41d56972aa22c903f5a531c461","kind":"tag","published_at":"2019-03-15T19:53:18.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.7.0","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.7.0/manifests"},{"name":"v1.6.0","sha":"5fae25d0ab09736ba067ce767f48f4614d50f469","kind":"tag","published_at":"2018-09-24T16:02:09.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.6.0","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.6.0/manifests"},{"name":"v1.5.0","sha":"e87f5564e03f1bd366457e182303b705e3b0a4b7","kind":"tag","published_at":"2017-09-19T18:28:58.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.5.0","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.5.0/manifests"},{"name":"v1.4.0","sha":"e019caf128fb519950e7635645c4f4fca9927dd9","kind":"tag","published_at":"2016-08-15T16:28:25.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.4.0","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.4.0/manifests"},{"name":"v1.3.0","sha":"2b995f80d68411ae081938a121568013d0dd44fa","kind":"tag","published_at":"2015-02-24T15:18:32.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.3.0","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"7046193a04d1e20bf024f71d1422e834312ce07c","kind":"tag","published_at":"2015-01-20T15:46:42.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.2.0","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.2.0/manifests"},{"name":"v1.1.5","sha":"ddae21d13a0fe686054f3cdfb060dad45af477d3","kind":"tag","published_at":"2014-02-07T19:16:44.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.1.5","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.1.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.1.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.1.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.1.5/manifests"},{"name":"v1.1.4","sha":"75d4a338bbeaa0b41f750bf77f734b36f0e2fd7d","kind":"tag","published_at":"2013-12-30T14:44:08.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.1.4","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.1.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.1.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.1.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.1.4/manifests"},{"name":"v1.1.3","sha":"b38e8b51fea5db065d6d281c452b59c59f56cb5c","kind":"tag","published_at":"2013-10-07T18:49:13.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.1.3","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.1.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.1.3/manifests"},{"name":"v1.1.2","sha":"ba97ce2612a3e6cdfcdb8f79e764441af5cb65c4","kind":"tag","published_at":"2013-03-16T18:05:40.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.1.2","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.1.2/manifests"},{"name":"v1.1.1","sha":"20d07f628171abec143fb8f64bba7142f5a0cf42","kind":"tag","published_at":"2013-03-16T17:54:34.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.1.1","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.1.1/manifests"},{"name":"v1.1.0","sha":"a60b4ea50ec4f2c3edebb46234493191f556fa5b","kind":"tag","published_at":"2012-04-30T22:05:05.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.1.0","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.1.0/manifests"},{"name":"v1.0.3","sha":"b4d340f1bc70ee35965069c7baed0137ce578d31","kind":"tag","published_at":"2012-04-29T20:31:46.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.0.3","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.0.3/manifests"},{"name":"v1.0.2","sha":"a4a504a17889407cf19586853969aef982e9edc5","kind":"tag","published_at":"2012-04-25T11:56:36.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.0.2","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.0.2/manifests"},{"name":"v1.0.1","sha":"793f4e24ef05200863921355a687d45e8af6aaf7","kind":"tag","published_at":"2012-04-25T11:46:56.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.0.1","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.0.1/manifests"},{"name":"v1.0.0","sha":"d6db872cd0f4b85bc928378b25c50d335a230072","kind":"tag","published_at":"2012-04-24T17:38:05.000Z","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/v1.0.0","html_url":"https://github.com/basecamp/marginalia/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/basecamp/marginalia@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-04-29T09:44:17.732Z","dependent_packages_count":4,"downloads":70850214,"downloads_period":"total","dependent_repos_count":845,"rankings":{"downloads":0.43375965923662757,"dependent_repos_count":1.1379221908765513,"dependent_packages_count":3.2827466241455827,"stargazers_count":1.2338176425329779,"forks_count":2.102452024397587,"docker_downloads_count":0.3785640213646146,"average":1.4282103604256566},"purl":"pkg:gem/marginalia","advisories":[{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLWhyajUtcXA3eC1ycGc2","url":"https://github.com/advisories/GHSA-hrj5-qp7x-rpg6","title":"SQL Injection in marginalia","description":"marginalia \u003c 1.6 is affected by SQL Injection. The impact is an injection of any SQL queries when a user controller argument is added as a component. This issue affects users that add a component that is user controller, for instance a parameter or a header. The attack vector is inputting of SQL to a vulnerable vector (header, http parameter, etc). The fixed version is 1.6.","origin":"UNSPECIFIED","severity":"CRITICAL","published_at":"2019-07-26T16:10:15.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":9.8,"cvss_vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","references":["https://nvd.nist.gov/vuln/detail/CVE-2019-1010191","https://github.com/basecamp/marginalia/pull/73","https://github.com/rubysec/ruby-advisory-db/blob/master/gems/marginalia/CVE-2019-1010191.yml","https://github.com/advisories/GHSA-hrj5-qp7x-rpg6"],"source_kind":"github","identifiers":["GHSA-hrj5-qp7x-rpg6","CVE-2019-1010191"],"repository_url":"https://github.com/basecamp/marginalia","blast_radius":0.0,"created_at":"2022-12-21T16:13:28.765Z","updated_at":"2026-04-05T20:08:14.204Z","epss_percentage":0.00282,"epss_percentile":0.51505,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLWhyajUtcXA3eC1ycGc2","html_url":"https://advisories.ecosyste.ms/advisories/MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLWhyajUtcXA3eC1ycGc2","packages":[{"ecosystem":"rubygems","package_name":"marginalia","versions":[{"first_patched_version":"1.6","vulnerable_version_range":"\u003c 1.6"}],"purl":"pkg:gem/marginalia"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLWhyajUtcXA3eC1ycGc2/related_packages","related_advisories":[]}],"docker_usage_url":"https://docker.ecosyste.ms/usage/rubygems/marginalia","docker_dependents_count":159,"docker_downloads_count":434231565,"usage_url":"https://repos.ecosyste.ms/usage/rubygems/marginalia","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/rubygems/marginalia/dependencies","status":null,"funding_links":[],"critical":true,"issue_metadata":{"last_synced_at":"2026-04-26T02:01:18.844Z","issues_count":37,"pull_requests_count":80,"avg_time_to_close_issue":44108850.09677419,"avg_time_to_close_pull_request":15835063.070422536,"issues_closed_count":31,"pull_requests_closed_count":71,"pull_request_authors_count":51,"issue_authors_count":36,"avg_comments_per_issue":1.8918918918918919,"avg_comments_per_pull_request":2.2375,"merged_pull_requests_count":43,"bot_issues_count":0,"bot_pull_requests_count":3,"past_year_issues_count":0,"past_year_pull_requests_count":5,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":1032604.5,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":2,"past_year_pull_request_authors_count":2,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":0.4,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":3,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/issues","maintainers":[{"login":"sj26","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/sj26"},{"login":"jeremy","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jeremy"},{"login":"arthurnn","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/arthurnn"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/marginalia/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/marginalia/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/marginalia/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/marginalia/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/marginalia/codemeta","maintainers":[{"uuid":"46413","login":"byroot","name":null,"email":null,"url":null,"packages_count":103,"html_url":"https://rubygems.org/profiles/byroot","role":null,"created_at":"2022-11-09T09:39:43.619Z","updated_at":"2022-11-09T09:39:43.619Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/byroot/packages"},{"uuid":"38263","login":"sj26","name":null,"email":null,"url":null,"packages_count":28,"html_url":"https://rubygems.org/profiles/sj26","role":null,"created_at":"2022-11-09T09:39:43.609Z","updated_at":"2022-11-09T09:39:43.609Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/sj26/packages"},{"uuid":"59104","login":"arthurnn","name":null,"email":null,"url":null,"packages_count":23,"html_url":"https://rubygems.org/profiles/arthurnn","role":null,"created_at":"2022-11-09T09:39:43.635Z","updated_at":"2022-11-09T09:39:43.635Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/arthurnn/packages"},{"uuid":"58183","login":"noahhl","name":null,"email":null,"url":null,"packages_count":1,"html_url":"https://rubygems.org/profiles/noahhl","role":null,"created_at":"2022-11-09T09:39:43.630Z","updated_at":"2022-11-09T09:39:43.630Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/noahhl/packages"}],"registry":{"name":"rubygems.org","url":"https://rubygems.org","ecosystem":"rubygems","default":true,"packages_count":205548,"maintainers_count":68472,"namespaces_count":0,"keywords_count":0,"github":"rubygems","metadata":{"funded_packages_count":7260},"icon_url":"https://github.com/rubygems.png","created_at":"2022-04-04T15:19:23.446Z","updated_at":"2026-04-03T06:42:17.024Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/namespaces"}},{"id":13566724,"name":"ruby-marginalia","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/basecamp/marginalia","licenses":"mit","normalized_licenses":["MIT"],"repository_url":"https://github.com/basecamp/marginalia","keywords_array":["universe/misc"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-11T06:43:02.971Z","latest_release_published_at":"2026-02-11T06:43:02.971Z","latest_release_number":"1.11.1-1","last_synced_at":"2026-03-12T07:03:58.768Z","created_at":"2026-02-11T06:43:02.804Z","updated_at":"2026-03-12T07:03:58.960Z","registry_url":"https://launchpad.net/ubuntu/+source/ruby-marginalia","install_command":"apt-get install ruby-marginalia","documentation_url":null,"metadata":{"component":"universe","architecture":"all","priority":"optional","binary":"ruby-marginalia","standards_version":"4.6.1","maintainer":"Debian Ruby Team \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper-compat (= 13), gem2deb, rake, ruby-activejob, ruby-actionpack (\u003e= 2.3), ruby-activerecord (\u003e= 2.3), ruby-mocha, ruby-mysql2, ruby-railties, ruby-sidekiq","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":2696536,"uuid":"3689879","full_name":"basecamp/marginalia","owner":"basecamp","description":"Attach comments to ActiveRecord's SQL queries","archived":false,"fork":false,"pushed_at":"2024-08-05T02:12:32.000Z","size":206,"stargazers_count":1768,"open_issues_count":10,"forks_count":146,"subscribers_count":19,"default_branch":"master","last_synced_at":"2026-02-07T19:28:06.734Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/basecamp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2012-03-11T21:35:11.000Z","updated_at":"2026-02-03T10:23:01.000Z","dependencies_parsed_at":"2023-02-16T10:30:43.014Z","dependency_job_id":"eff73f21-8561-4d05-823d-f5e4be47f60e","html_url":"https://github.com/basecamp/marginalia","commit_stats":{"total_commits":206,"total_committers":52,"mean_commits":"3.9615384615384617","dds":0.7475728155339806,"last_synced_commit":"226f93234b0ca58f548c5af23e229bdf3bf15ad5"},"previous_names":["37signals/marginalia"],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/basecamp/marginalia","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/basecamp","download_url":"https://codeload.github.com/basecamp/marginalia/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/sbom","scorecard":{"id":226593,"data":{"date":"2025-08-11","repo":{"name":"github.com/basecamp/marginalia","commit":"226f93234b0ca58f548c5af23e229bdf3bf15ad5"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/basecamp/marginalia/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/basecamp/marginalia/ci.yml/master?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":4,"reason":"Found 7/17 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 22 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T03:55:53.640Z","repository_id":2696536,"created_at":"2025-08-17T03:55:53.641Z","updated_at":"2025-08-17T03:55:53.641Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29266070,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-09T12:53:16.161Z","status":"ssl_error","status_checked_at":"2026-02-09T12:52:30.244Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"repo_metadata_updated_at":"2026-02-11T14:56:50.577Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:deb/ubuntu/ruby-marginalia?arch=source\u0026distro=ubuntu-23.04\u0026repository_url=https://launchpad.net/ubuntu/lunar","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/ruby-marginalia","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/ruby-marginalia","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/ruby-marginalia/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/ruby-marginalia/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/ruby-marginalia/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/ruby-marginalia/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/ruby-marginalia/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/ruby-marginalia/codemeta","maintainers":[],"registry":{"name":"ubuntu-23.04","url":"https://launchpad.net/ubuntu/lunar","ecosystem":"ubuntu","default":false,"packages_count":36116,"maintainers_count":0,"namespaces_count":4,"keywords_count":0,"github":"ubuntu","metadata":{"codename":"lunar","mirror":"http://old-releases.ubuntu.com/ubuntu"},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:49.117Z","updated_at":"2026-04-27T18:20:38.741Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/namespaces"}},{"id":13779222,"name":"ruby-marginalia","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/basecamp/marginalia","licenses":null,"normalized_licenses":[],"repository_url":"https://github.com/basecamp/marginalia","keywords_array":["universe/misc"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-13T13:20:13.332Z","latest_release_published_at":"2026-02-13T13:20:13.332Z","latest_release_number":"1.10.1-2","last_synced_at":"2026-03-13T22:38:29.371Z","created_at":"2026-02-13T13:20:13.146Z","updated_at":"2026-03-13T22:38:29.372Z","registry_url":"https://launchpad.net/ubuntu/+source/ruby-marginalia","install_command":"apt-get install ruby-marginalia","documentation_url":null,"metadata":{"component":"universe","architecture":"all","priority":"optional","binary":"ruby-marginalia","standards_version":"4.6.0","maintainer":"Debian Ruby Team \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper-compat (= 13), gem2deb, rake, ruby-activejob, ruby-actionpack (\u003e= 2.3), ruby-activerecord (\u003e= 2.3), ruby-mocha, ruby-mysql2, ruby-railties, ruby-sidekiq","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{},"repo_metadata_updated_at":"2026-02-13T13:20:14.001Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:deb/ubuntu/ruby-marginalia?arch=source\u0026distro=ubuntu-22.04\u0026repository_url=https://launchpad.net/ubuntu/jammy","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/ruby-marginalia","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/ruby-marginalia","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/ruby-marginalia/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/ruby-marginalia/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/ruby-marginalia/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/ruby-marginalia/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/ruby-marginalia/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/ruby-marginalia/codemeta","maintainers":[],"registry":{"name":"ubuntu-22.04","url":"https://launchpad.net/ubuntu/jammy","ecosystem":"ubuntu","default":false,"packages_count":34289,"maintainers_count":0,"namespaces_count":4,"keywords_count":0,"github":"ubuntu","metadata":{"codename":"jammy"},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:46.486Z","updated_at":"2026-04-27T18:20:36.155Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/namespaces"}},{"id":13712741,"name":"ruby-marginalia","ecosystem":"debian","description":null,"homepage":"https://github.com/basecamp/marginalia","licenses":null,"normalized_licenses":[],"repository_url":"https://github.com/basecamp/marginalia","keywords_array":["misc"],"namespace":"main","versions_count":1,"first_release_published_at":"2026-02-12T23:34:47.150Z","latest_release_published_at":"2026-02-12T23:34:47.150Z","latest_release_number":"1.11.1-1","last_synced_at":"2026-03-13T03:29:06.783Z","created_at":"2026-02-12T23:34:46.979Z","updated_at":"2026-03-13T03:30:18.518Z","registry_url":"https://tracker.debian.org/pkg/ruby-marginalia","install_command":"apt-get install ruby-marginalia","documentation_url":"https://packages.debian.org/bookworm/ruby-marginalia","metadata":{"component":"main","architecture":"all","priority":"extra","binary":"ruby-marginalia","standards_version":"4.6.1","maintainer":"Debian Ruby Team \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper-compat (= 13), gem2deb, rake, ruby-activejob, ruby-actionpack (\u003e= 2.3), ruby-activerecord (\u003e= 2.3), ruby-mocha, ruby-mysql2, ruby-railties, ruby-sidekiq","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{},"repo_metadata_updated_at":"2026-02-12T23:34:47.828Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:deb/debian/ruby-marginalia?arch=source\u0026distro=debian-12","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/debian/ruby-marginalia","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/debian/ruby-marginalia","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/debian/ruby-marginalia/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/ruby-marginalia/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/ruby-marginalia/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/ruby-marginalia/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/ruby-marginalia/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/ruby-marginalia/codemeta","maintainers":[],"registry":{"name":"debian-12","url":"https://packages.debian.org/bookworm","ecosystem":"debian","default":true,"packages_count":34734,"maintainers_count":0,"namespaces_count":4,"keywords_count":0,"github":"debian","metadata":{"codename":"bookworm"},"icon_url":"https://github.com/debian.png","created_at":"2026-02-04T11:01:49.459Z","updated_at":"2026-04-27T18:20:38.992Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/namespaces"}},{"id":13406893,"name":"ruby-marginalia","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/basecamp/marginalia","licenses":null,"normalized_licenses":[],"repository_url":"https://github.com/basecamp/marginalia","keywords_array":["universe/misc"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-06T15:30:20.690Z","latest_release_published_at":"2026-02-06T15:30:20.690Z","latest_release_number":"1.11.1-1","last_synced_at":"2026-03-06T16:01:04.789Z","created_at":"2026-02-06T15:30:20.421Z","updated_at":"2026-03-06T16:01:04.789Z","registry_url":"https://launchpad.net/ubuntu/+source/ruby-marginalia","install_command":"apt-get install ruby-marginalia","documentation_url":null,"metadata":{"component":"universe","architecture":"all","priority":"optional","binary":"ruby-marginalia","standards_version":"4.6.1","maintainer":"Debian Ruby Team \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper-compat (= 13), gem2deb, rake, ruby-activejob, ruby-actionpack (\u003e= 2.3), ruby-activerecord (\u003e= 2.3), ruby-mocha, ruby-mysql2, ruby-railties, ruby-sidekiq","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{},"repo_metadata_updated_at":null,"dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{},"purl":"pkg:deb/ubuntu/ruby-marginalia?arch=source\u0026distro=ubuntu-24.04","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/ruby-marginalia","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/ruby-marginalia","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/ruby-marginalia/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/ruby-marginalia/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/ruby-marginalia/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/ruby-marginalia/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/ruby-marginalia/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/ruby-marginalia/codemeta","maintainers":[],"registry":{"name":"ubuntu-24.04","url":"https://launchpad.net/ubuntu/noble","ecosystem":"ubuntu","default":true,"packages_count":37306,"maintainers_count":0,"namespaces_count":4,"keywords_count":0,"github":"ubuntu","metadata":{"codename":"noble"},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:45.928Z","updated_at":"2026-04-27T18:20:35.701Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/namespaces"}},{"id":13669146,"name":"ruby-marginalia","ecosystem":"debian","description":null,"homepage":"https://github.com/basecamp/marginalia","licenses":null,"normalized_licenses":[],"repository_url":"https://github.com/basecamp/marginalia","keywords_array":["misc"],"namespace":"main","versions_count":1,"first_release_published_at":"2026-02-12T12:30:06.042Z","latest_release_published_at":"2026-02-12T12:30:06.042Z","latest_release_number":"1.11.1-1","last_synced_at":"2026-03-14T18:09:57.725Z","created_at":"2026-02-12T12:30:05.779Z","updated_at":"2026-03-14T18:09:57.726Z","registry_url":"https://tracker.debian.org/pkg/ruby-marginalia","install_command":"apt-get install ruby-marginalia","documentation_url":"https://packages.debian.org/trixie/ruby-marginalia","metadata":{"component":"main","architecture":"all","priority":"extra","binary":"ruby-marginalia","standards_version":"4.6.1","maintainer":"Debian Ruby Team \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper-compat (= 13), gem2deb, rake, ruby-activejob, ruby-actionpack (\u003e= 2.3), ruby-activerecord (\u003e= 2.3), ruby-mocha, ruby-mysql2, ruby-railties, ruby-sidekiq","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{},"repo_metadata_updated_at":"2026-02-12T12:30:06.740Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:deb/debian/ruby-marginalia?arch=source\u0026distro=debian-13\u0026repository_url=https://packages.debian.org/trixie","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/debian/ruby-marginalia","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/debian/ruby-marginalia","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/debian/ruby-marginalia/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/ruby-marginalia/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/ruby-marginalia/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/ruby-marginalia/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/ruby-marginalia/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/ruby-marginalia/codemeta","maintainers":[],"registry":{"name":"debian-13","url":"https://packages.debian.org/trixie","ecosystem":"debian","default":false,"packages_count":38024,"maintainers_count":0,"namespaces_count":4,"keywords_count":0,"github":"debian","metadata":{"codename":"trixie"},"icon_url":"https://github.com/debian.png","created_at":"2026-02-04T11:01:50.448Z","updated_at":"2026-04-27T18:20:39.853Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/namespaces"}}],"commits":{"id":19300,"full_name":"basecamp/marginalia","default_branch":"master","total_commits":207,"total_committers":51,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":4.0588235294117645,"dds":0.748792270531401,"past_year_total_commits":1,"past_year_total_committers":1,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":1.0,"past_year_dds":0.0,"last_synced_at":"2026-04-29T02:09:43.016Z","last_synced_commit":"b14a9be47f4b946d9bc31392b4cb4ac707cc3024","created_at":"2023-03-07T11:40:38.868Z","updated_at":"2026-04-29T02:08:23.311Z","committers":[{"name":"Arthur Neves","email":"arthurnn@gmail.com","login":"arthurnn","count":52},{"name":"Noah Lorang","email":"noah@datarobots.com","login":"noahhl","count":38},{"name":"Nick Quaranto","email":"nick@quaran.to","login":"qrush","count":17},{"name":"Samuel Cochran","email":"sj26@sj26.com","login":"sj26","count":15},{"name":"Chris Sinjakli","email":"chris@sinjakli.co.uk","login":"Sinjo","count":9},{"name":"Orien Madgwick","email":"_@orien.io","login":"orien","count":5},{"name":"Matt Yoho","email":"mby@mattyoho.com","login":"mattyoho","count":4},{"name":"Stanisław Pitucha","email":"stan.pitucha@envato.com","login":"viraptor","count":4},{"name":"Dylan Thacker-Smith","email":"Dylan.Smith@shopify.com","login":"dylanahsmith","count":3},{"name":"Jean Boussier","email":"jean.boussier@gmail.com","login":"byroot","count":3},{"name":"Nate Sullivan","email":"nate@academia.edu","login":"nate00","count":3},{"name":"Stan Hu","email":"stanhu@gmail.com","login":"stanhu","count":3},{"name":"eileencodes","email":"eileencodes@gmail.com","login":"eileencodes","count":3},{"name":"Jason Hiltz-Laforge","email":"jason.hl@shopify.com","login":"jasonhl","count":2},{"name":"Laust Rud Jacobsen","email":"laust@object.io","login":"rud","count":2},{"name":"Rustam Sharshenov","email":"rustam@sharshenov.com","login":"sharshenov","count":2},{"name":"Shane O'Grady","email":"shane@ogrady.ie","login":"shaneog","count":2},{"name":"Ted Nyman","email":"ted@ted.io","login":"tnm","count":2},{"name":"Igor","email":"igorwwwwwwwwwwwwwwwwwwww","login":"igorwwwwwwwwwwwwwwwwwwww","count":2},{"name":"Douglas Robertson","email":"dr@edgeoftheearth.com","login":"douglasr","count":2},{"name":"Brian Palmer","email":"brianp@instructure.com","login":"codekitchen","count":2},{"name":"Andrew Kane","email":"acekane1@gmail.com","login":"ankane","count":2},{"name":"Jason Katz-Brown","email":"jason@airbnb.com","login":null,"count":2},{"name":"risk danger olson","email":"technoweenie@gmail.com","login":"technoweenie","count":1},{"name":"Arthur Nogueira Neves","email":"github@arthurnn.com","login":null,"count":1},{"name":"Chris Sinjakli","email":"chris@gocardless.com","login":null,"count":1},{"name":"Igor Wiedler","email":"igor@travis-ci.org","login":null,"count":1},{"name":"Keeran Raj Hawoldar","email":"keeran@github.com","login":null,"count":1},{"name":"rilian","email":"dmitriyis@gmail.com","login":"rilian","count":1},{"name":"fatkodima","email":"fatkodima123@gmail.com","login":"fatkodima","count":1},{"name":"bala","email":"bala@freshdesk.com","login":"sribalakumar","count":1},{"name":"Thong Kuah","email":"kuahyeow@gmail.com","login":"kuahyeow","count":1},{"name":"Steve Klabnik","email":"steve@steveklabnik.com","login":"steveklabnik","count":1},{"name":"Rodion Chauskin","email":"r.chauskin@gmail.com","login":"roodion","count":1},{"name":"Noah Horton","email":"noah@unsupervised.com","login":"nhorton","count":1},{"name":"Nick Ragaz","email":"nick.ragaz@gmail.com","login":"nragaz","count":1},{"name":"Mikhail Grachev","email":"work@mgrachev.com","login":"mgrachev","count":1},{"name":"Mike Dalessio","email":"mike.dalessio@gmail.com","login":"flavorjones","count":1},{"name":"Mark Josef","email":"mcphage@gmail.com","login":"mark","count":1},{"name":"Klaus Meyer","email":"spam@klaus-meyer.net","login":"klausmeyer","count":1},{"name":"Josh Kalderimis","email":"josh.kalderimis@gmail.com","login":"joshk","count":1},{"name":"Jonathan Roes","email":"jroes@jroes.net","login":"jroes","count":1},{"name":"Joe Horsnell","email":"github@joehorsnell.com","login":"joehorsnell","count":1},{"name":"Jeremy Daer","email":"jeremydaer@gmail.com","login":"jeremy","count":1},{"name":"Jean-Philipep Caissy","email":"jpcaissy@piji.ca","login":"jpcaissy","count":1},{"name":"Javier Honduvilla Coto","email":"javierhonduco@gmail.com","login":"javierhonduco","count":1},{"name":"Geoff Harcourt","email":"geoff.harcourt@gmail.com","login":"geoffharcourt","count":1},{"name":"Eugene Kenny","email":"elkenny@gmail.com","login":"eugeneius","count":1},{"name":"Akira Matsuda","email":"ronnie@dio.jp","login":"amatsuda","count":1},{"name":"Aditya Kapoor","email":"adityakapoor.mait@gmail.com","login":"aditya-kapoor","count":1},{"name":"Aaron Patterson","email":"aaron.patterson@gmail.com","login":"tenderlove","count":1}],"past_year_committers":[{"name":"Mike Dalessio","email":"mike.dalessio@gmail.com","login":"flavorjones","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-30T00:00:07.427Z","repositories_count":6223400,"commits_count":900013610,"contributors_count":34899913,"owners_count":1147632,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"basecamp/marginalia","html_url":"https://github.com/basecamp/marginalia","last_synced_at":"2026-04-28T00:06:02.038Z","status":"active","issues_count":37,"pull_requests_count":81,"avg_time_to_close_issue":44108850.09677419,"avg_time_to_close_pull_request":15835063.070422536,"issues_closed_count":31,"pull_requests_closed_count":71,"pull_request_authors_count":51,"issue_authors_count":36,"avg_comments_per_issue":1.8918918918918919,"avg_comments_per_pull_request":2.2098765432098766,"merged_pull_requests_count":43,"bot_issues_count":0,"bot_pull_requests_count":4,"past_year_issues_count":0,"past_year_pull_requests_count":6,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":1032604.5,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":2,"past_year_pull_request_authors_count":2,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":0.3333333333333333,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":4,"past_year_merged_pull_requests_count":0,"created_at":"2023-05-12T12:19:44.506Z","updated_at":"2026-04-28T00:06:02.038Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/basecamp%2Fmarginalia/issues","issue_labels_count":{},"pull_request_labels_count":{"github_actions":4,"dependencies":4},"issue_author_associations_count":{"NONE":30,"CONTRIBUTOR":6,"COLLABORATOR":1},"pull_request_author_associations_count":{"CONTRIBUTOR":45,"NONE":31,"COLLABORATOR":4,"MEMBER":1},"issue_authors":{"keithpitt":2,"nhorton":1,"venkateshan-niladri":1,"ukd1":1,"klausmeyer":1,"tobstarr":1,"joehorsnell":1,"dennisvandehoef":1,"bcherry":1,"shaneog":1,"kwent":1,"anmolarora":1,"guillaumebriday":1,"PikachuEXE":1,"FlintOFF":1,"clayallsopp":1,"berniechiu":1,"rromanchuk":1,"simonrentzke":1,"philsmy":1,"geoffharcourt":1,"NielsKSchjoedt":1,"bheemreddy181-zz":1,"ghiculescu":1,"kylesnowschwartz":1,"jacobbednarz":1,"aitizazk":1,"aishwarya-avudaiappan":1,"ngan":1,"viraptor":1,"cbliard":1,"arthurnn":1,"tysliu":1,"fidalgo":1,"ryanstuhl805":1,"JoeSouthan":1},"pull_request_authors":{"dependabot[bot]":4,"Sinjo":4,"sj26":4,"geoffharcourt":3,"ankane":3,"gogainda":3,"eileencodes":3,"joshuay03":2,"orien":2,"casperisfine":2,"nate00":2,"glebm":2,"ghiculescu":2,"viraptor":2,"keeran":2,"rud":2,"jwkicklighter":2,"fatkodima":2,"dotai2012":2,"mattyoho":2,"shaneog":1,"eugeneius":1,"masa-iwasaki":1,"modulitos":1,"idl3":1,"joehorsnell":1,"jpcaissy":1,"roodion":1,"joshk":1,"clekstro":1,"mgrachev":1,"aditya-kapoor":1,"tahsin352":1,"aclemons":1,"sribalakumar":1,"dylanahsmith":1,"sharshenov":1,"jeremy":1,"tenderlove":1,"hmcfletch":1,"stanhu":1,"jacobbednarz":1,"nhorton":1,"javierhonduco":1,"igorwwwwwwwwwwwwwwwwwwww":1,"bf4":1,"bbuchalter":1,"codekitchen":1,"amatsuda":1,"zmoazeni":1,"compwron":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-28T00:00:08.715Z","repositories_count":14435147,"issues_count":34366597,"pull_requests_count":112638795,"authors_count":11247416,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{"dependencies":4,"github_actions":4},"past_year_issue_author_associations_count":{},"past_year_pull_request_author_associations_count":{"NONE":6},"past_year_issue_authors":{},"past_year_pull_request_authors":{"dependabot[bot]":4,"joshuay03":2},"maintainers":[{"login":"sj26","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/sj26"},{"login":"jeremy","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jeremy"},{"login":"arthurnn","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/arthurnn"}],"active_maintainers":[]},"events":{"total":{"DeleteEvent":1,"PullRequestEvent":11,"ForkEvent":2,"IssuesEvent":4,"WatchEvent":32,"IssueCommentEvent":3,"PushEvent":1,"PullRequestReviewEvent":2,"PullRequestReviewCommentEvent":5,"CreateEvent":2},"last_year":{"DeleteEvent":1,"PullRequestEvent":11,"ForkEvent":2,"IssuesEvent":2,"WatchEvent":12,"IssueCommentEvent":3,"PushEvent":1,"PullRequestReviewEvent":2,"PullRequestReviewCommentEvent":5,"CreateEvent":2}},"keywords":[],"dependencies":[{"ecosystem":"rubygems","filepath":"Gemfile","sha":null,"kind":"manifest","created_at":"2022-08-06T12:31:05.195Z","updated_at":"2022-08-06T12:31:05.195Z","repository_link":"https://github.com/basecamp/marginalia/blob/master/Gemfile","dependencies":[{"id":585034924,"package_name":"rails","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"rubygems","filepath":"marginalia.gemspec","sha":null,"kind":"manifest","created_at":"2022-08-06T12:31:05.214Z","updated_at":"2022-08-06T12:31:05.214Z","repository_link":"https://github.com/basecamp/marginalia/blob/master/marginalia.gemspec","dependencies":[{"id":585034931,"package_name":"actionpack","ecosystem":"rubygems","requirements":"\u003e= 5.2","direct":true,"kind":"runtime","optional":false},{"id":585034932,"package_name":"activerecord","ecosystem":"rubygems","requirements":"\u003e= 5.2","direct":true,"kind":"runtime","optional":false},{"id":585034933,"package_name":"rake","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":585034934,"package_name":"mysql2","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":585034935,"package_name":"pg","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":585034936,"package_name":"sqlite3","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":585034937,"package_name":"minitest","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":585034938,"package_name":"mocha","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":585034939,"package_name":"sidekiq","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/ci.yml","sha":null,"kind":"manifest","created_at":"2023-01-13T12:01:48.165Z","updated_at":"2023-01-13T12:01:48.165Z","repository_link":"https://github.com/basecamp/marginalia/blob/master/.github/workflows/ci.yml","dependencies":[{"id":6875758954,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":6875758955,"package_name":"ruby/setup-ruby","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":6875758956,"package_name":"mysql","ecosystem":"actions","requirements":"*","direct":true,"kind":"docker","optional":false},{"id":6875758957,"package_name":"postgres","ecosystem":"actions","requirements":"*","direct":true,"kind":"docker","optional":false}]}],"score":32.15124894803088,"created_at":"2024-12-15T21:38:08.121Z","updated_at":"2026-04-30T04:02:31.164Z","avatar_url":"https://github.com/basecamp.png","language":"Ruby","monthly_downloads":0,"readme":"# marginalia [![Build Status](https://github.com/basecamp/marginalia/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/basecamp/marginalia/actions/workflows/ci.yml)\n\nAttach comments to your ActiveRecord queries. By default, it adds the application, controller, and action names as a\ncomment at the end of each query.\n\nThis helps when searching log files for queries, and seeing where slow queries came from.\n\nFor example, once enabled, your logs will look like:\n\n    Account Load (0.3ms)  SELECT `accounts`.* FROM `accounts` \n    WHERE `accounts`.`queenbee_id` = 1234567890 \n    LIMIT 1 \n    /*application:BCX,controller:project_imports,action:show*/\n\nYou can also use these query comments along with a tool like [pt-query-digest](http://www.percona.com/doc/percona-toolkit/2.1/pt-query-digest.html#query-reviews) \nto automate identification of controllers and actions that are hotspots for slow queries.\n\nThis gem was created at 37signals. You can read more about how we use it [on\nour blog](http://37signals.com/svn/posts/3130-tech-note-mysql-query-comments-in-rails).\n\nThis has been tested and used in production with the mysql2 and pg gems, and is\ntested on Rails 5.2 through 6.1, and Ruby 2.6 through 3.0. It is also tested\nfor sqlite3. **As of Rails 7, [Marginalia is a part of Rails itself](https://api.rubyonrails.org/classes/ActiveRecord/QueryLogs.html) and does not need to be separately included.**\n\nRails version support will follow supported versions in the [Ruby on Rails maintenance policy](https://guides.rubyonrails.org/maintenance_policy.html)\nand Ruby support will follow maintained versions in the [Ruby maintenance policy](https://www.ruby-lang.org/en/downloads/branches/).\n\nPatches are welcome for other database adapters. \n\n## Installation\n\n    # Gemfile\n    gem 'marginalia'\n\n### Customization\nOptionally, you can set the application name shown in the log like so in an initializer (e.g. `config/initializers/marginalia.rb`):\n\n    Marginalia.application_name = \"BCX\"\n\nThe name will default to your Rails application name.\n\n#### Components\n\nYou can also configure the components of the comment that will be appended,\nby setting `Marginalia::Comment.components`. By default, this is set to:\n\n    Marginalia::Comment.components = [:application, :controller, :action]\n\nWhich results in a comment of\n`application:#{application_name},controller:#{controller.name},action:#{action_name}`.\n\nYou can re-order or remove these components. You can also add additional\ncomment components of your desire by defining new module methods for\n`Marginalia::Comment` which return a string. For example:\n\n    module Marginalia\n      module Comment\n        def self.mycommentcomponent\n          \"TEST\"\n        end\n      end\n    end\n\n    Marginalia::Comment.components = [:application, :mycommentcomponent]\n\nWhich will result in a comment like\n`application:#{application_name},mycommentcomponent:TEST`\nThe calling controller is available to these methods via `@controller`.\n\nMarginalia ships with `:application`, `:controller`, and `:action` enabled by\ndefault. In addition, implementation is provided for:\n  * `:line` (for file and line number calling query). :line supports\n    a configuration by setting a regexp in `Marginalia::Comment.lines_to_ignore`\n    to exclude parts of the stacktrace from inclusion in the line comment.\n  * `:controller_with_namespace` to include the full classname (including namespace)\n    of the controller.\n  * `:job` to include the classname of the ActiveJob being performed.\n  * `:hostname` to include ```Socket.gethostname```.\n  * `:pid` to include current process id. \n  * `:db_host` to include the configured database hostname.\n  * `:socket` to include the configured database socket.\n  * `:database` to include the configured database name.\n\nPull requests for other included comment components are welcome.\n\n#### Prepend comments\n\nBy default marginalia appends the comments at the end of the query. Certain databases, such as MySQL will truncate\nthe query text. This is the case for slow query logs and the results of querying some InnoDB internal tables where the\nlength of the query is more than 1024 bytes.\n\nIn order to not lose the marginalia comments from your logs, you can prepend the comments using this option:\n\n    Marginalia::Comment.prepend_comment = true\n\n#### Inline query annotations\n\nIn addition to the request or job-level component-based annotations,\nMarginalia may be used to add inline annotations to specific queries using a\nblock-based API.\n\nFor example, the following code:\n\n    Marginalia.with_annotation(\"foo\") do\n      Account.where(queenbee_id: 1234567890).first\n    end\n\nwill issue this query:\n\n    Account Load (0.3ms)  SELECT `accounts`.* FROM `accounts`\n    WHERE `accounts`.`queenbee_id` = 1234567890\n    LIMIT 1\n    /*application:BCX,controller:project_imports,action:show*/ /*foo*/\n\nNesting `with_annotation` blocks will concatenate the comment strings.\n\n### Caveats\n\n#### Prepared statements\n\nBe careful when using Marginalia with prepared statements. If you use a component\nlike `request_id` then every query will be unique and so ActiveRecord will create\na new prepared statement for each potentially exhausting system resources.\n[Disable prepared statements](https://guides.rubyonrails.org/configuring.html#configuring-a-postgresql-database)\nif you wish to use components with high cardinality values.\n\n## Contributing\n\nStart by bundling and creating the test database:\n\n    bundle\n    rake db:mysql:create\n    rake db:postgresql:create\n\nThen, running `rake` will run the tests on all the database adapters (`mysql`, `mysql2`, `postgresql` and `sqlite`):\n\n    rake\n\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["activejob","activerecord","mvc","rubygem","background-jobs","rack","crash-reporting","sidekiq","sinatra","jobs"],"project_url":"https://ruby.ecosyste.ms/api/v1/projects/470","html_url":"https://ruby.ecosyste.ms/projects/470"}