{"id":589,"name":null,"description":"Find the mime type of files, examining file, filename and declared type","url":"https://github.com/rails/marcel","last_synced_at":"2026-04-30T04:03:13.752Z","repository":{"id":40400589,"uuid":"82847042","full_name":"rails/marcel","owner":"rails","description":"Find the mime type of files, examining file, filename and declared type","archived":false,"fork":false,"pushed_at":"2026-01-23T20:33:01.000Z","size":5308,"stargazers_count":440,"open_issues_count":35,"forks_count":77,"subscribers_count":26,"default_branch":"main","last_synced_at":"2026-04-25T07:08:17.220Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rails.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"MIT-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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-02-22T20:02:09.000Z","updated_at":"2026-04-24T10:39:44.000Z","dependencies_parsed_at":"2026-03-18T07:01:28.510Z","dependency_job_id":null,"html_url":"https://github.com/rails/marcel","commit_stats":{"total_commits":138,"total_committers":30,"mean_commits":4.6,"dds":0.6086956521739131,"last_synced_commit":"170458c687ed22f07d8829043a04e008a2b1936b"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/rails/marcel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rails","download_url":"https://codeload.github.com/rails/marcel/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/sbom","scorecard":{"id":759284,"data":{"date":"2025-08-11","repo":{"name":"github.com/rails/marcel","commit":"170458c687ed22f07d8829043a04e008a2b1936b"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.7,"checks":[{"name":"Code-Review","score":3,"reason":"Found 8/26 approved changesets -- score normalized to 3","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":"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":"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":"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":"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":"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":"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":"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":"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: APACHE-LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: APACHE-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":"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:27: update your workflow using https://app.stepsecurity.io/secureworkflow/rails/marcel/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/rails/marcel/ci.yml/main?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":"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 'main'"],"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 14 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-22T22:49:26.687Z","repository_id":40400589,"created_at":"2025-08-22T22:49:26.687Z","updated_at":"2025-08-22T22:49:26.687Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32454170,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T22:27:22.272Z","status":"online","status_checked_at":"2026-04-30T02:00:05.929Z","response_time":57,"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":"rails","name":"Ruby on Rails","uuid":"4223","kind":"organization","description":"","email":null,"website":"https://rubyonrails.org/","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/4223?v=4","repositories_count":116,"last_synced_at":"2023-04-09T03:40:20.529Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/rails","funding_links":[],"total_stars":114333,"followers":null,"following":null,"created_at":"2022-11-02T16:17:13.297Z","updated_at":"2023-04-09T03:40:20.550Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rails","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rails/repositories"},"packages":[{"id":12269775,"name":"marcel","ecosystem":"rubygems","description":"Simple mime type detection using magic numbers, filenames, and extensions","homepage":"https://github.com/rails/marcel","licenses":"MIT,Apache-2.0","normalized_licenses":["MIT","Apache-2.0"],"repository_url":"https://github.com/rails/marcel","keywords_array":[],"namespace":null,"versions_count":10,"first_release_published_at":"2018-01-12T15:56:35.487Z","latest_release_published_at":"2025-09-16T18:04:56.736Z","latest_release_number":"1.1.0","last_synced_at":"2026-04-19T20:00:51.245Z","created_at":"2025-10-07T04:10:32.122Z","updated_at":"2026-04-19T20:03:56.375Z","registry_url":"https://gem.coop/gems/marcel","install_command":"gem install marcel -s https://gem.coop","documentation_url":"http://www.rubydoc.info/gems/marcel/","metadata":{"funding":null},"repo_metadata":{"id":40400589,"uuid":"82847042","full_name":"rails/marcel","owner":"rails","description":"Find the mime type of files, examining file, filename and declared type","archived":false,"fork":false,"pushed_at":"2026-01-23T20:33:01.000Z","size":5308,"stargazers_count":438,"open_issues_count":35,"forks_count":78,"subscribers_count":26,"default_branch":"main","last_synced_at":"2026-04-11T05:10:18.245Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rails.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"MIT-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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-02-22T20:02:09.000Z","updated_at":"2026-04-08T18:08:00.000Z","dependencies_parsed_at":"2026-03-18T07:01:28.510Z","dependency_job_id":null,"html_url":"https://github.com/rails/marcel","commit_stats":{"total_commits":138,"total_committers":30,"mean_commits":4.6,"dds":0.6086956521739131,"last_synced_commit":"170458c687ed22f07d8829043a04e008a2b1936b"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/rails/marcel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rails","download_url":"https://codeload.github.com/rails/marcel/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/sbom","scorecard":{"id":759284,"data":{"date":"2025-08-11","repo":{"name":"github.com/rails/marcel","commit":"170458c687ed22f07d8829043a04e008a2b1936b"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.7,"checks":[{"name":"Code-Review","score":3,"reason":"Found 8/26 approved changesets -- score normalized to 3","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":"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":"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":"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":"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":"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":"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":"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":"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: APACHE-LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: APACHE-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":"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:27: update your workflow using https://app.stepsecurity.io/secureworkflow/rails/marcel/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/rails/marcel/ci.yml/main?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":"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 'main'"],"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 14 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-22T22:49:26.687Z","repository_id":40400589,"created_at":"2025-08-22T22:49:26.687Z","updated_at":"2025-08-22T22:49:26.687Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31691503,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-11T13:07:20.380Z","status":"ssl_error","status_checked_at":"2026-04-11T13:06:47.903Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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"},"owner_record":{"login":"rails","name":"Ruby on Rails","uuid":"4223","kind":"organization","description":"","email":null,"website":"https://rubyonrails.org/","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/4223?v=4","repositories_count":116,"last_synced_at":"2023-04-09T03:40:20.529Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/rails","funding_links":[],"total_stars":114333,"followers":null,"following":null,"created_at":"2022-11-02T16:17:13.297Z","updated_at":"2023-04-09T03:40:20.550Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rails","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rails/repositories"},"tags":[{"name":"v1.1.0","sha":"3d3c5dce088cefea93c337d292cb52b40c3728f1","kind":"tag","published_at":"2025-09-16T18:03:09.000Z","download_url":"https://codeload.github.com/rails/marcel/tar.gz/v1.1.0","html_url":"https://github.com/rails/marcel/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/marcel@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v1.1.0/manifests"},{"name":"v1.0.4","sha":"cdf0e659c87f81e5d2b393cff3569f870bd71c47","kind":"commit","published_at":"2024-03-01T16:56:16.000Z","download_url":"https://codeload.github.com/rails/marcel/tar.gz/v1.0.4","html_url":"https://github.com/rails/marcel/releases/tag/v1.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/marcel@v1.0.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v1.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v1.0.4/manifests"},{"name":"v1.0.3","sha":"59d23fd7e900e26043e3e814b4925aa665d6d1d5","kind":"tag","published_at":"2024-02-28T18:40:48.000Z","download_url":"https://codeload.github.com/rails/marcel/tar.gz/v1.0.3","html_url":"https://github.com/rails/marcel/releases/tag/v1.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/marcel@v1.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v1.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v1.0.3/manifests"},{"name":"v1.0.2","sha":"fc69a19d17de4fedca354b2404b04834b16eacd8","kind":"tag","published_at":"2021-09-20T22:11:02.000Z","download_url":"https://codeload.github.com/rails/marcel/tar.gz/v1.0.2","html_url":"https://github.com/rails/marcel/releases/tag/v1.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/marcel@v1.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v1.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v1.0.2/manifests"},{"name":"v1.0.1","sha":"949e9d6890d0ed52b75962280634670d102aa8dd","kind":"commit","published_at":"2021-04-02T13:00:30.000Z","download_url":"https://codeload.github.com/rails/marcel/tar.gz/v1.0.1","html_url":"https://github.com/rails/marcel/releases/tag/v1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/marcel@v1.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v1.0.1/manifests"},{"name":"v1.0.0","sha":"e7f73d031554aa9b618bcb9a5df9663f30791871","kind":"commit","published_at":"2021-03-26T14:40:36.000Z","download_url":"https://codeload.github.com/rails/marcel/tar.gz/v1.0.0","html_url":"https://github.com/rails/marcel/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/marcel@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v1.0.0/manifests"},{"name":"v0.3.3","sha":"3d06a6043c1acee4b1ed29283cbafdf34078a137","kind":"commit","published_at":"2018-09-15T03:04:22.000Z","download_url":"https://codeload.github.com/rails/marcel/tar.gz/v0.3.3","html_url":"https://github.com/rails/marcel/releases/tag/v0.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/marcel@v0.3.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v0.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v0.3.3/manifests"},{"name":"v0.3.2","sha":"11045e0cf8915ef5f0472c903b3fcc7e00bbdc9f","kind":"commit","published_at":"2018-03-26T21:18:10.000Z","download_url":"https://codeload.github.com/rails/marcel/tar.gz/v0.3.2","html_url":"https://github.com/rails/marcel/releases/tag/v0.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/marcel@v0.3.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v0.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v0.3.2/manifests"},{"name":"v0.3.1","sha":"facc7541fc9ad72e7b5ad493c3d23f3bd4c47bca","kind":"commit","published_at":"2018-01-12T21:45:49.000Z","download_url":"https://codeload.github.com/rails/marcel/tar.gz/v0.3.1","html_url":"https://github.com/rails/marcel/releases/tag/v0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/marcel@v0.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v0.3.1/manifests"}]},"repo_metadata_updated_at":"2026-04-19T20:03:56.374Z","dependent_packages_count":0,"downloads":437839391,"downloads_period":"total","dependent_repos_count":0,"rankings":{"downloads":0.05785003325025276,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":0.0454149793740302,"average":0.025816253156070737},"purl":"pkg:gem/marcel?repository_url=https://gem.coop","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/rubygems/marcel","docker_dependents_count":1452,"docker_downloads_count":2992047790,"usage_url":"https://repos.ecosyste.ms/usage/rubygems/marcel","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/rubygems/marcel/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-03-24T10:01:30.408Z","issues_count":54,"pull_requests_count":93,"avg_time_to_close_issue":18516559.606060605,"avg_time_to_close_pull_request":8144693.054054054,"issues_closed_count":33,"pull_requests_closed_count":74,"pull_request_authors_count":45,"issue_authors_count":53,"avg_comments_per_issue":2.037037037037037,"avg_comments_per_pull_request":0.8924731182795699,"merged_pull_requests_count":58,"bot_issues_count":0,"bot_pull_requests_count":3,"past_year_issues_count":3,"past_year_pull_requests_count":18,"past_year_avg_time_to_close_issue":7266801.0,"past_year_avg_time_to_close_pull_request":3879644.8571428573,"past_year_issues_closed_count":1,"past_year_pull_requests_closed_count":7,"past_year_pull_request_authors_count":5,"past_year_issue_authors_count":3,"past_year_avg_comments_per_issue":0.3333333333333333,"past_year_avg_comments_per_pull_request":0.8888888888888888,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":5,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/issues","maintainers":[{"login":"gmcgibbon","count":11,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/gmcgibbon"},{"login":"jeremy","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jeremy"},{"login":"rafaelfranca","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/rafaelfranca"},{"login":"vipulnsward","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/vipulnsward"},{"login":"pedrofurtado","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pedrofurtado"},{"login":"y-yagi","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/y-yagi"},{"login":"eileencodes","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/eileencodes"}],"active_maintainers":[{"login":"rafaelfranca","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/rafaelfranca"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/marcel/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/marcel/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/marcel/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/marcel/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/marcel/codemeta","maintainers":[{"uuid":"1550","login":"webster132","name":null,"email":null,"url":null,"packages_count":82,"html_url":"https://gem.coop/profiles/webster132","role":null,"created_at":"2025-10-07T22:52:13.391Z","updated_at":"2025-10-07T22:52:13.391Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/webster132/packages"},{"uuid":"43998","login":"guilleiguaran","name":null,"email":null,"url":null,"packages_count":85,"html_url":"https://gem.coop/profiles/guilleiguaran","role":null,"created_at":"2025-10-07T22:52:13.035Z","updated_at":"2025-10-07T22:52:13.035Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/guilleiguaran/packages"},{"uuid":"32977","login":"fxn","name":null,"email":null,"url":null,"packages_count":62,"html_url":"https://gem.coop/profiles/fxn","role":null,"created_at":"2025-10-07T22:52:13.249Z","updated_at":"2025-10-07T22:52:13.249Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/fxn/packages"},{"uuid":"429","login":"cantoniodasilva","name":null,"email":null,"url":null,"packages_count":67,"html_url":"https://gem.coop/profiles/cantoniodasilva","role":null,"created_at":"2025-10-07T22:52:13.342Z","updated_at":"2025-10-07T22:52:13.342Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/cantoniodasilva/packages"},{"uuid":"47349","login":"rafaelfranca","name":null,"email":null,"url":null,"packages_count":107,"html_url":"https://gem.coop/profiles/rafaelfranca","role":null,"created_at":"2025-10-07T22:52:13.296Z","updated_at":"2025-10-07T22:52:13.296Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/rafaelfranca/packages"},{"uuid":"337","login":"jeremydaer","name":null,"email":null,"url":null,"packages_count":63,"html_url":"https://gem.coop/profiles/jeremydaer","role":null,"created_at":"2025-10-07T22:52:13.191Z","updated_at":"2025-10-07T22:52:13.191Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/jeremydaer/packages"},{"uuid":"528","login":"matthewd","name":null,"email":null,"url":null,"packages_count":66,"html_url":"https://gem.coop/profiles/matthewd","role":null,"created_at":"2025-10-07T22:52:13.083Z","updated_at":"2025-10-07T22:52:13.083Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/matthewd/packages"},{"uuid":"96878","login":"eileencodes","name":null,"email":null,"url":null,"packages_count":54,"html_url":"https://gem.coop/profiles/eileencodes","role":null,"created_at":"2025-10-07T22:52:13.134Z","updated_at":"2025-10-07T22:52:13.134Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/eileencodes/packages"},{"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:13.484Z","updated_at":"2025-10-07T22:52:13.484Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/byroot/packages"},{"uuid":"43492","login":"jhawthorn","name":null,"email":null,"url":null,"packages_count":150,"html_url":"https://gem.coop/profiles/jhawthorn","role":null,"created_at":"2025-10-07T22:52:13.529Z","updated_at":"2025-10-07T22:52:13.529Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/jhawthorn/packages"},{"uuid":"54617","login":"kamipo","name":null,"email":null,"url":null,"packages_count":61,"html_url":"https://gem.coop/profiles/kamipo","role":null,"created_at":"2025-10-07T22:52:13.579Z","updated_at":"2025-10-07T22:52:13.579Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/kamipo/packages"},{"uuid":"1343","login":"tomafro","name":null,"email":null,"url":null,"packages_count":13,"html_url":"https://gem.coop/profiles/tomafro","role":null,"created_at":"2025-10-07T22:52:13.437Z","updated_at":"2025-10-07T22:52:13.437Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/tomafro/packages"}],"registry":{"name":"gem.coop","url":"https://gem.coop","ecosystem":"rubygems","default":false,"packages_count":190118,"maintainers_count":67397,"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":13669145,"name":"ruby-marcel","ecosystem":"debian","description":null,"homepage":"https://github.com/rails/marcel","licenses":"apache-2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/rails/marcel","keywords_array":["misc"],"namespace":"main","versions_count":1,"first_release_published_at":"2026-02-12T12:30:05.062Z","latest_release_published_at":"2026-02-12T12:30:05.062Z","latest_release_number":"1.0.4+dfsg-2","last_synced_at":"2026-03-14T15:02:42.383Z","created_at":"2026-02-12T12:30:04.614Z","updated_at":"2026-03-14T15:02:42.384Z","registry_url":"https://tracker.debian.org/pkg/ruby-marcel","install_command":"apt-get install ruby-marcel","documentation_url":"https://packages.debian.org/trixie/ruby-marcel","metadata":{"component":"main","architecture":"all","priority":"extra","binary":"ruby-marcel","standards_version":"4.7.0","maintainer":"Debian Ruby Team \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper-compat (= 13), gem2deb (\u003e= 1), rake, ruby-rack, ruby-nokogiri, ruby-byebug","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":40400589,"uuid":"82847042","full_name":"rails/marcel","owner":"rails","description":"Find the mime type of files, examining file, filename and declared type","archived":false,"fork":false,"pushed_at":"2026-01-23T20:33:01.000Z","size":5308,"stargazers_count":434,"open_issues_count":35,"forks_count":77,"subscribers_count":26,"default_branch":"main","last_synced_at":"2026-02-09T18:48:16.915Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rails.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"MIT-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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-02-22T20:02:09.000Z","updated_at":"2026-01-23T20:33:06.000Z","dependencies_parsed_at":"2024-02-28T03:28:24.620Z","dependency_job_id":"a9b6f819-af04-454c-becb-0cdfd5e216c1","html_url":"https://github.com/rails/marcel","commit_stats":{"total_commits":138,"total_committers":30,"mean_commits":4.6,"dds":0.6086956521739131,"last_synced_commit":"170458c687ed22f07d8829043a04e008a2b1936b"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/rails/marcel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rails","download_url":"https://codeload.github.com/rails/marcel/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/sbom","scorecard":{"id":759284,"data":{"date":"2025-08-11","repo":{"name":"github.com/rails/marcel","commit":"170458c687ed22f07d8829043a04e008a2b1936b"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.7,"checks":[{"name":"Code-Review","score":3,"reason":"Found 8/26 approved changesets -- score normalized to 3","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":"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":"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":"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":"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":"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":"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":"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":"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: APACHE-LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: APACHE-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":"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:27: update your workflow using https://app.stepsecurity.io/secureworkflow/rails/marcel/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/rails/marcel/ci.yml/main?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":"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 'main'"],"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 14 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-22T22:49:26.687Z","repository_id":40400589,"created_at":"2025-08-22T22:49:26.687Z","updated_at":"2025-08-22T22:49:26.687Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29333905,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-11T12:42:24.625Z","status":"ssl_error","status_checked_at":"2026-02-11T12:41:23.344Z","response_time":97,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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-12T12:30:05.406Z","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":0.7378706199460916,"forks_count":0.6053268765133172,"docker_downloads_count":null,"average":0.33579937411485217},"purl":"pkg:deb/debian/ruby-marcel?arch=source\u0026distro=debian-13\u0026repository_url=https://packages.debian.org/trixie","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/debian/ruby-marcel","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/debian/ruby-marcel","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/debian/ruby-marcel/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/ruby-marcel/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/ruby-marcel/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/ruby-marcel/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/ruby-marcel/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/ruby-marcel/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","funded_packages_count":282},"icon_url":"https://github.com/debian.png","created_at":"2026-02-04T11:01:50.448Z","updated_at":"2026-03-31T06:41:13.743Z","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"}},{"id":8614660,"name":"github.com/rails/marcel","ecosystem":"go","description":null,"homepage":null,"licenses":"apache-2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/rails/marcel","keywords_array":[],"namespace":null,"versions_count":9,"first_release_published_at":"2023-12-02T02:14:50.209Z","latest_release_published_at":"2025-09-16T18:02:44.000Z","latest_release_number":"v1.1.0","last_synced_at":"2026-04-17T22:01:35.218Z","created_at":"2023-12-02T02:14:47.953Z","updated_at":"2026-04-17T22:01:35.218Z","registry_url":"https://pkg.go.dev/github.com/rails/marcel","install_command":"go get github.com/rails/marcel","documentation_url":"https://pkg.go.dev/github.com/rails/marcel#section-documentation","metadata":{},"repo_metadata":{"id":40400589,"uuid":"82847042","full_name":"rails/marcel","owner":"rails","description":"Find the mime type of files, examining file, filename and declared type","archived":false,"fork":false,"pushed_at":"2025-09-16T18:03:15.000Z","size":5424,"stargazers_count":424,"open_issues_count":33,"forks_count":74,"subscribers_count":27,"default_branch":"main","last_synced_at":"2025-10-21T05:37:01.919Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rails.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"MIT-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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-02-22T20:02:09.000Z","updated_at":"2025-10-15T19:23:38.000Z","dependencies_parsed_at":"2024-02-28T03:28:24.620Z","dependency_job_id":"a9b6f819-af04-454c-becb-0cdfd5e216c1","html_url":"https://github.com/rails/marcel","commit_stats":{"total_commits":138,"total_committers":30,"mean_commits":4.6,"dds":0.6086956521739131,"last_synced_commit":"170458c687ed22f07d8829043a04e008a2b1936b"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/rails/marcel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rails","download_url":"https://codeload.github.com/rails/marcel/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/sbom","scorecard":{"id":759284,"data":{"date":"2025-08-11","repo":{"name":"github.com/rails/marcel","commit":"170458c687ed22f07d8829043a04e008a2b1936b"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.7,"checks":[{"name":"Code-Review","score":3,"reason":"Found 8/26 approved changesets -- score normalized to 3","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":"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":"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":"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":"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":"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":"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":"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":"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: APACHE-LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: APACHE-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":"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:27: update your workflow using https://app.stepsecurity.io/secureworkflow/rails/marcel/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/rails/marcel/ci.yml/main?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":"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 'main'"],"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 14 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-22T22:49:26.687Z","repository_id":40400589,"created_at":"2025-08-22T22:49:26.687Z","updated_at":"2025-08-22T22:49:26.687Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280581754,"owners_count":26355046,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-23T02:00:06.710Z","response_time":142,"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":"rails","name":"Ruby on Rails","uuid":"4223","kind":"organization","description":"","email":null,"website":"https://rubyonrails.org/","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/4223?v=4","repositories_count":116,"last_synced_at":"2023-04-09T03:40:20.529Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/rails","funding_links":[],"total_stars":114333,"followers":null,"following":null,"created_at":"2022-11-02T16:17:13.297Z","updated_at":"2023-04-09T03:40:20.550Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rails","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rails/repositories"},"tags":[]},"repo_metadata_updated_at":"2025-10-23T12:12:31.891Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":10.801592556016239,"dependent_packages_count":9.575730298247606,"stargazers_count":2.964278341527355,"forks_count":3.095397641707045,"docker_downloads_count":null,"average":6.609249709374561},"purl":"pkg:golang/github.com/rails/marcel","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/rails/marcel","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/rails/marcel","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/rails/marcel/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-10-14T19:14:20.297Z","issues_count":52,"pull_requests_count":91,"avg_time_to_close_issue":18868114.5625,"avg_time_to_close_pull_request":8156736.178082191,"issues_closed_count":32,"pull_requests_closed_count":73,"pull_request_authors_count":43,"issue_authors_count":51,"avg_comments_per_issue":2.0576923076923075,"avg_comments_per_pull_request":0.9120879120879121,"merged_pull_requests_count":57,"bot_issues_count":0,"bot_pull_requests_count":3,"past_year_issues_count":8,"past_year_pull_requests_count":16,"past_year_avg_time_to_close_issue":5655784.666666667,"past_year_avg_time_to_close_pull_request":3315328.1666666665,"past_year_issues_closed_count":3,"past_year_pull_requests_closed_count":6,"past_year_pull_request_authors_count":3,"past_year_issue_authors_count":8,"past_year_avg_comments_per_issue":0.625,"past_year_avg_comments_per_pull_request":1.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":4,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/issues","maintainers":[{"login":"gmcgibbon","count":11,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/gmcgibbon"},{"login":"jeremy","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jeremy"},{"login":"rafaelfranca","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/rafaelfranca"},{"login":"vipulnsward","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/vipulnsward"},{"login":"pedrofurtado","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pedrofurtado"},{"login":"y-yagi","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/y-yagi"},{"login":"eileencodes","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/eileencodes"}],"active_maintainers":[{"login":"rafaelfranca","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/rafaelfranca"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Frails%2Fmarcel/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Frails%2Fmarcel/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Frails%2Fmarcel/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Frails%2Fmarcel/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Frails%2Fmarcel/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":2101880,"maintainers_count":0,"namespaces_count":782439,"keywords_count":112823,"github":"golang","metadata":{"funded_packages_count":53495},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2026-04-19T05:14:45.920Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/namespaces"}},{"id":13950840,"name":"ruby-marcel","ecosystem":"guix","description":"MIME type detection using magic numbers, filenames and extensions","homepage":"https://github.com/rails/marcel","licenses":"expat","normalized_licenses":["Other"],"repository_url":"https://github.com/rails/marcel","keywords_array":[],"namespace":null,"versions_count":1,"first_release_published_at":"2026-03-02T19:04:00.239Z","latest_release_published_at":"2026-03-02T19:04:00.239Z","latest_release_number":"1.0.4","last_synced_at":"2026-04-03T01:22:13.598Z","created_at":"2026-03-02T19:04:00.025Z","updated_at":"2026-04-03T01:25:03.105Z","registry_url":"https://packages.guix.gnu.org/packages/ruby-marcel/1.0.4/","install_command":"guix install ruby-marcel","documentation_url":"https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/rails.scm#n1036","metadata":{"location":"gnu/packages/rails.scm:1036","variable_name":"ruby-marcel"},"repo_metadata":{"id":40400589,"uuid":"82847042","full_name":"rails/marcel","owner":"rails","description":"Find the mime type of files, examining file, filename and declared type","archived":false,"fork":false,"pushed_at":"2026-01-23T20:33:01.000Z","size":5308,"stargazers_count":435,"open_issues_count":35,"forks_count":77,"subscribers_count":26,"default_branch":"main","last_synced_at":"2026-02-24T00:05:06.654Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rails.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"MIT-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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-02-22T20:02:09.000Z","updated_at":"2026-02-18T03:39:04.000Z","dependencies_parsed_at":"2024-02-28T03:28:24.620Z","dependency_job_id":"a9b6f819-af04-454c-becb-0cdfd5e216c1","html_url":"https://github.com/rails/marcel","commit_stats":{"total_commits":138,"total_committers":30,"mean_commits":4.6,"dds":0.6086956521739131,"last_synced_commit":"170458c687ed22f07d8829043a04e008a2b1936b"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/rails/marcel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rails","download_url":"https://codeload.github.com/rails/marcel/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/sbom","scorecard":{"id":759284,"data":{"date":"2025-08-11","repo":{"name":"github.com/rails/marcel","commit":"170458c687ed22f07d8829043a04e008a2b1936b"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.7,"checks":[{"name":"Code-Review","score":3,"reason":"Found 8/26 approved changesets -- score normalized to 3","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":"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":"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":"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":"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":"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":"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":"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":"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: APACHE-LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: APACHE-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":"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:27: update your workflow using https://app.stepsecurity.io/secureworkflow/rails/marcel/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/rails/marcel/ci.yml/main?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":"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 'main'"],"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 14 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-22T22:49:26.687Z","repository_id":40400589,"created_at":"2025-08-22T22:49:26.687Z","updated_at":"2025-08-22T22:49:26.687Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29769174,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-24T01:40:24.820Z","status":"online","status_checked_at":"2026-02-24T02:00:07.497Z","response_time":75,"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"}},"repo_metadata_updated_at":"2026-04-03T01:25:03.083Z","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:guix/ruby-marcel","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/guix/ruby-marcel","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/guix/ruby-marcel","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/guix/ruby-marcel/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-02-13T15:00:42.899Z","issues_count":54,"pull_requests_count":93,"avg_time_to_close_issue":18516559.606060605,"avg_time_to_close_pull_request":8144693.054054054,"issues_closed_count":33,"pull_requests_closed_count":74,"pull_request_authors_count":45,"issue_authors_count":53,"avg_comments_per_issue":2.037037037037037,"avg_comments_per_pull_request":0.8924731182795699,"merged_pull_requests_count":58,"bot_issues_count":0,"bot_pull_requests_count":3,"past_year_issues_count":8,"past_year_pull_requests_count":18,"past_year_avg_time_to_close_issue":6058538.75,"past_year_avg_time_to_close_pull_request":3879644.8571428573,"past_year_issues_closed_count":4,"past_year_pull_requests_closed_count":7,"past_year_pull_request_authors_count":5,"past_year_issue_authors_count":8,"past_year_avg_comments_per_issue":0.75,"past_year_avg_comments_per_pull_request":0.8888888888888888,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":5,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/issues","maintainers":[{"login":"gmcgibbon","count":11,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/gmcgibbon"},{"login":"jeremy","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jeremy"},{"login":"rafaelfranca","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/rafaelfranca"},{"login":"vipulnsward","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/vipulnsward"},{"login":"pedrofurtado","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pedrofurtado"},{"login":"y-yagi","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/y-yagi"},{"login":"eileencodes","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/eileencodes"}],"active_maintainers":[{"login":"rafaelfranca","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/rafaelfranca"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/ruby-marcel/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/ruby-marcel/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/ruby-marcel/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/ruby-marcel/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/ruby-marcel/codemeta","maintainers":[],"registry":{"name":"guix","url":"https://guix.gnu.org","ecosystem":"guix","default":true,"packages_count":31107,"maintainers_count":0,"namespaces_count":0,"keywords_count":0,"github":"guix-mirror","metadata":{"funded_packages_count":286},"icon_url":"https://github.com/guix-mirror.png","created_at":"2026-03-02T16:23:46.981Z","updated_at":"2026-04-03T06:23:21.396Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/guix/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/guix/namespaces"}},{"id":250235,"name":"marcel","ecosystem":"rubygems","description":"Simple mime type detection using magic numbers, filenames, and extensions","homepage":"https://github.com/rails/marcel","licenses":"MIT,Apache-2.0","normalized_licenses":["MIT","Apache-2.0"],"repository_url":"https://github.com/rails/marcel","keywords_array":[],"namespace":null,"versions_count":10,"first_release_published_at":"2018-01-12T15:56:35.487Z","latest_release_published_at":"2025-09-16T18:04:56.736Z","latest_release_number":"1.1.0","last_synced_at":"2026-04-18T22:31:20.264Z","created_at":"2022-04-06T03:55:01.687Z","updated_at":"2026-04-18T22:33:31.738Z","registry_url":"https://rubygems.org/gems/marcel","install_command":"gem install marcel -s https://rubygems.org","documentation_url":"http://www.rubydoc.info/gems/marcel/","metadata":{"funding":null},"repo_metadata":{"id":40400589,"uuid":"82847042","full_name":"rails/marcel","owner":"rails","description":"Find the mime type of files, examining file, filename and declared type","archived":false,"fork":false,"pushed_at":"2026-01-23T20:33:01.000Z","size":5308,"stargazers_count":438,"open_issues_count":35,"forks_count":78,"subscribers_count":26,"default_branch":"main","last_synced_at":"2026-04-11T05:10:18.245Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rails.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"MIT-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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-02-22T20:02:09.000Z","updated_at":"2026-04-08T18:08:00.000Z","dependencies_parsed_at":"2026-03-18T07:01:28.510Z","dependency_job_id":null,"html_url":"https://github.com/rails/marcel","commit_stats":{"total_commits":138,"total_committers":30,"mean_commits":4.6,"dds":0.6086956521739131,"last_synced_commit":"170458c687ed22f07d8829043a04e008a2b1936b"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/rails/marcel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rails","download_url":"https://codeload.github.com/rails/marcel/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/sbom","scorecard":{"id":759284,"data":{"date":"2025-08-11","repo":{"name":"github.com/rails/marcel","commit":"170458c687ed22f07d8829043a04e008a2b1936b"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.7,"checks":[{"name":"Code-Review","score":3,"reason":"Found 8/26 approved changesets -- score normalized to 3","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":"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":"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":"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":"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":"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":"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":"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":"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: APACHE-LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: APACHE-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":"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:27: update your workflow using https://app.stepsecurity.io/secureworkflow/rails/marcel/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/rails/marcel/ci.yml/main?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":"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 'main'"],"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 14 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-22T22:49:26.687Z","repository_id":40400589,"created_at":"2025-08-22T22:49:26.687Z","updated_at":"2025-08-22T22:49:26.687Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31691503,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-11T13:07:20.380Z","status":"ssl_error","status_checked_at":"2026-04-11T13:06:47.903Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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"},"owner_record":{"login":"rails","name":"Ruby on Rails","uuid":"4223","kind":"organization","description":"","email":null,"website":"https://rubyonrails.org/","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/4223?v=4","repositories_count":116,"last_synced_at":"2023-04-09T03:40:20.529Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/rails","funding_links":[],"total_stars":114333,"followers":null,"following":null,"created_at":"2022-11-02T16:17:13.297Z","updated_at":"2023-04-09T03:40:20.550Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rails","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rails/repositories"},"tags":[{"name":"v1.1.0","sha":"3d3c5dce088cefea93c337d292cb52b40c3728f1","kind":"tag","published_at":"2025-09-16T18:03:09.000Z","download_url":"https://codeload.github.com/rails/marcel/tar.gz/v1.1.0","html_url":"https://github.com/rails/marcel/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/marcel@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v1.1.0/manifests"},{"name":"v1.0.4","sha":"cdf0e659c87f81e5d2b393cff3569f870bd71c47","kind":"commit","published_at":"2024-03-01T16:56:16.000Z","download_url":"https://codeload.github.com/rails/marcel/tar.gz/v1.0.4","html_url":"https://github.com/rails/marcel/releases/tag/v1.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/marcel@v1.0.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v1.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v1.0.4/manifests"},{"name":"v1.0.3","sha":"59d23fd7e900e26043e3e814b4925aa665d6d1d5","kind":"tag","published_at":"2024-02-28T18:40:48.000Z","download_url":"https://codeload.github.com/rails/marcel/tar.gz/v1.0.3","html_url":"https://github.com/rails/marcel/releases/tag/v1.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/marcel@v1.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v1.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v1.0.3/manifests"},{"name":"v1.0.2","sha":"fc69a19d17de4fedca354b2404b04834b16eacd8","kind":"tag","published_at":"2021-09-20T22:11:02.000Z","download_url":"https://codeload.github.com/rails/marcel/tar.gz/v1.0.2","html_url":"https://github.com/rails/marcel/releases/tag/v1.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/marcel@v1.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v1.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v1.0.2/manifests"},{"name":"v1.0.1","sha":"949e9d6890d0ed52b75962280634670d102aa8dd","kind":"commit","published_at":"2021-04-02T13:00:30.000Z","download_url":"https://codeload.github.com/rails/marcel/tar.gz/v1.0.1","html_url":"https://github.com/rails/marcel/releases/tag/v1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/marcel@v1.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v1.0.1/manifests"},{"name":"v1.0.0","sha":"e7f73d031554aa9b618bcb9a5df9663f30791871","kind":"commit","published_at":"2021-03-26T14:40:36.000Z","download_url":"https://codeload.github.com/rails/marcel/tar.gz/v1.0.0","html_url":"https://github.com/rails/marcel/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/marcel@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v1.0.0/manifests"},{"name":"v0.3.3","sha":"3d06a6043c1acee4b1ed29283cbafdf34078a137","kind":"commit","published_at":"2018-09-15T03:04:22.000Z","download_url":"https://codeload.github.com/rails/marcel/tar.gz/v0.3.3","html_url":"https://github.com/rails/marcel/releases/tag/v0.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/marcel@v0.3.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v0.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v0.3.3/manifests"},{"name":"v0.3.2","sha":"11045e0cf8915ef5f0472c903b3fcc7e00bbdc9f","kind":"commit","published_at":"2018-03-26T21:18:10.000Z","download_url":"https://codeload.github.com/rails/marcel/tar.gz/v0.3.2","html_url":"https://github.com/rails/marcel/releases/tag/v0.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/marcel@v0.3.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v0.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v0.3.2/manifests"},{"name":"v0.3.1","sha":"facc7541fc9ad72e7b5ad493c3d23f3bd4c47bca","kind":"commit","published_at":"2018-01-12T21:45:49.000Z","download_url":"https://codeload.github.com/rails/marcel/tar.gz/v0.3.1","html_url":"https://github.com/rails/marcel/releases/tag/v0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/marcel@v0.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/tags/v0.3.1/manifests"}]},"repo_metadata_updated_at":"2026-04-18T22:33:31.711Z","dependent_packages_count":48,"downloads":437752219,"downloads_period":"total","dependent_repos_count":290032,"rankings":{"downloads":0.0685763985682586,"dependent_repos_count":0.08418728604721179,"dependent_packages_count":0.6110547384618816,"stargazers_count":2.9482276067394433,"forks_count":3.3608010615403487,"docker_downloads_count":0.0691339302639355,"average":1.1903301702701798},"purl":"pkg:gem/marcel","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/rubygems/marcel","docker_dependents_count":1452,"docker_downloads_count":2992047790,"usage_url":"https://repos.ecosyste.ms/usage/rubygems/marcel","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/rubygems/marcel/dependencies","status":null,"funding_links":[],"critical":true,"issue_metadata":{"last_synced_at":"2026-03-24T10:01:30.408Z","issues_count":54,"pull_requests_count":93,"avg_time_to_close_issue":18516559.606060605,"avg_time_to_close_pull_request":8144693.054054054,"issues_closed_count":33,"pull_requests_closed_count":74,"pull_request_authors_count":45,"issue_authors_count":53,"avg_comments_per_issue":2.037037037037037,"avg_comments_per_pull_request":0.8924731182795699,"merged_pull_requests_count":58,"bot_issues_count":0,"bot_pull_requests_count":3,"past_year_issues_count":3,"past_year_pull_requests_count":18,"past_year_avg_time_to_close_issue":7266801.0,"past_year_avg_time_to_close_pull_request":3879644.8571428573,"past_year_issues_closed_count":1,"past_year_pull_requests_closed_count":7,"past_year_pull_request_authors_count":5,"past_year_issue_authors_count":3,"past_year_avg_comments_per_issue":0.3333333333333333,"past_year_avg_comments_per_pull_request":0.8888888888888888,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":5,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/issues","maintainers":[{"login":"gmcgibbon","count":11,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/gmcgibbon"},{"login":"jeremy","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jeremy"},{"login":"rafaelfranca","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/rafaelfranca"},{"login":"vipulnsward","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/vipulnsward"},{"login":"pedrofurtado","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pedrofurtado"},{"login":"y-yagi","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/y-yagi"},{"login":"eileencodes","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/eileencodes"}],"active_maintainers":[{"login":"rafaelfranca","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/rafaelfranca"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/marcel/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/marcel/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/marcel/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/marcel/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/marcel/codemeta","maintainers":[{"uuid":"43492","login":"jhawthorn","name":null,"email":null,"url":null,"packages_count":150,"html_url":"https://rubygems.org/profiles/jhawthorn","role":null,"created_at":"2022-11-09T09:39:43.027Z","updated_at":"2022-11-09T09:39:43.027Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/jhawthorn/packages"},{"uuid":"54617","login":"kamipo","name":null,"email":null,"url":null,"packages_count":61,"html_url":"https://rubygems.org/profiles/kamipo","role":null,"created_at":"2022-11-09T09:39:43.021Z","updated_at":"2022-11-09T09:39:43.021Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/kamipo/packages"},{"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.035Z","updated_at":"2022-11-09T09:39:43.035Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/byroot/packages"},{"uuid":"1550","login":"webster132","name":null,"email":null,"url":null,"packages_count":81,"html_url":"https://rubygems.org/profiles/webster132","role":null,"created_at":"2022-11-09T09:39:43.251Z","updated_at":"2022-11-09T09:39:43.251Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/webster132/packages"},{"uuid":"43998","login":"guilleiguaran","name":null,"email":null,"url":null,"packages_count":85,"html_url":"https://rubygems.org/profiles/guilleiguaran","role":null,"created_at":"2022-11-09T09:39:43.060Z","updated_at":"2022-11-09T09:39:43.060Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/guilleiguaran/packages"},{"uuid":"32977","login":"fxn","name":null,"email":null,"url":null,"packages_count":61,"html_url":"https://rubygems.org/profiles/fxn","role":null,"created_at":"2022-11-09T09:39:43.197Z","updated_at":"2022-11-09T09:39:43.197Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/fxn/packages"},{"uuid":"429","login":"cantoniodasilva","name":null,"email":null,"url":null,"packages_count":67,"html_url":"https://rubygems.org/profiles/cantoniodasilva","role":null,"created_at":"2022-11-09T09:39:43.237Z","updated_at":"2022-11-09T09:39:43.237Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/cantoniodasilva/packages"},{"uuid":"47349","login":"rafaelfranca","name":null,"email":null,"url":null,"packages_count":120,"html_url":"https://rubygems.org/profiles/rafaelfranca","role":null,"created_at":"2022-11-09T09:39:43.226Z","updated_at":"2022-11-09T09:39:43.226Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/rafaelfranca/packages"},{"uuid":"337","login":"jeremydaer","name":null,"email":null,"url":null,"packages_count":68,"html_url":"https://rubygems.org/profiles/jeremydaer","role":null,"created_at":"2022-11-09T09:39:43.168Z","updated_at":"2022-11-09T09:39:43.168Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/jeremydaer/packages"},{"uuid":"528","login":"matthewd","name":null,"email":null,"url":null,"packages_count":66,"html_url":"https://rubygems.org/profiles/matthewd","role":null,"created_at":"2022-11-09T09:39:43.107Z","updated_at":"2022-11-09T09:39:43.107Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/matthewd/packages"},{"uuid":"96878","login":"eileencodes","name":null,"email":null,"url":null,"packages_count":53,"html_url":"https://rubygems.org/profiles/eileencodes","role":null,"created_at":"2022-11-09T09:39:43.134Z","updated_at":"2022-11-09T09:39:43.134Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/eileencodes/packages"},{"uuid":"1343","login":"tomafro","name":null,"email":null,"url":null,"packages_count":13,"html_url":"https://rubygems.org/profiles/tomafro","role":null,"created_at":"2022-11-09T09:39:43.261Z","updated_at":"2022-11-09T09:39:43.261Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/tomafro/packages"}],"registry":{"name":"rubygems.org","url":"https://rubygems.org","ecosystem":"rubygems","default":true,"packages_count":205267,"maintainers_count":68387,"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"}}],"commits":{"id":19299,"full_name":"rails/marcel","default_branch":"main","total_commits":149,"total_committers":34,"total_bot_commits":2,"total_bot_committers":1,"mean_commits":4.382352941176471,"dds":0.6375838926174497,"past_year_total_commits":7,"past_year_total_committers":3,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":2.3333333333333335,"past_year_dds":0.2857142857142857,"last_synced_at":"2026-04-19T20:04:20.731Z","last_synced_commit":"f798c466a77427fba31c93243b8b1c71333be8a1","created_at":"2023-03-07T11:40:38.717Z","updated_at":"2026-04-19T20:04:20.153Z","committers":[{"name":"Tom Ward","email":"tom@popdog.net","login":"tomafro","count":54},{"name":"Jeremy Daer","email":"jeremy@rubyonrails.org","login":"jeremy","count":17},{"name":"George Claghorn","email":"george@basecamp.com","login":"georgeclaghorn","count":16},{"name":"Gannon McGibbon","email":"gannon.mcgibbon@gmail.com","login":"gmcgibbon","count":15},{"name":"Jean Boussier","email":"jean.boussier@gmail.com","login":"byroot","count":6},{"name":"Rafael Mendonça França","email":"rafael@rubyonrails.org","login":"rafaelfranca","count":5},{"name":"Jun Aruga","email":"jaruga@redhat.com","login":"junaruga","count":3},{"name":"Andy Nguyen","email":"andy.nguyen@shopify.com","login":"Andy-H-Nguyen","count":2},{"name":"Brian Kephart","email":"briantkephart@gmail.com","login":"brian-kephart","count":2},{"name":"Chris Oliver","email":"excid3@gmail.com","login":"excid3","count":2},{"name":"Olle Jonsson","email":"olle.jonsson@gmail.com","login":"olleolleolle","count":2},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":2},{"name":"Eddie Lebow","email":"Eddie.Lebow@phishme.com","login":"elebow","count":2},{"name":"yuuji.yaginuma","email":"yuuji.yaginuma@gmail.com","login":"y-yagi","count":1},{"name":"wonda-tea-coffee","email":"lagrange.resolvent@gmail.com","login":"wonda-tea-coffee","count":1},{"name":"mark-young-atg","email":"113439900+mark-young-atg","login":"mark-young-atg","count":1},{"name":"eileencodes","email":"eileencodes@gmail.com","login":"eileencodes","count":1},{"name":"Vipul A M","email":"vipulnsward@gmail.com","login":"vipulnsward","count":1},{"name":"Valeriy Mironov","email":"valeronm@gmail.com","login":"valeronm","count":1},{"name":"Stano Bo","email":"sb@juniq.net","login":"sbocinec","count":1},{"name":"Mth0158","email":"mathieu.eustachy@gmail.com","login":"Mth0158","count":1},{"name":"Marcel Eeken","email":"m.eeken@youngcapital.nl","login":"MarcelEeken","count":1},{"name":"Koza","email":"kiskoza@gmail.com","login":"kiskoza","count":1},{"name":"Koji Onishi","email":"fursich0@gmail.com","login":"fursich","count":1},{"name":"Keita Urashima","email":"ursm@ursm.jp","login":"ursm","count":1},{"name":"Alberto Fernandez-Capel","email":"alberto@hey.com","login":"afcapel","count":1},{"name":"Alexander Gitter","email":"contact@agitter.net","login":"alexandergitter","count":1},{"name":"Andrew Nutter-Upham","email":"andynu@gmail.com","login":"andynu","count":1},{"name":"Ben Koshy","email":"benkoshy@hotmail.com","login":"benkoshy","count":1},{"name":"Cẩm Huỳnh","email":"huynhquancam@gmail.com","login":"qcam","count":1},{"name":"Jason Lee","email":"huacnlee@gmail.com","login":"huacnlee","count":1},{"name":"Francesco Kirchhoff","email":"mail@frances.co","login":"FrancescoK","count":1},{"name":"Haroon Ahmed","email":"haroon.ahmed25@gmail.com","login":"hahmed","count":1},{"name":"Janko Marohnić","email":"janko.marohnic@gmail.com","login":"janko","count":1}],"past_year_committers":[{"name":"Rafael Mendonça França","email":"rafael@rubyonrails.org","login":"rafaelfranca","count":5},{"name":"Francesco Kirchhoff","email":"mail@frances.co","login":"FrancescoK","count":1},{"name":"Andrew Nutter-Upham","email":"andynu@gmail.com","login":"andynu","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-19T00:00:13.908Z","repositories_count":6214529,"commits_count":900194549,"contributors_count":34915568,"owners_count":1143537,"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":"rails/marcel","html_url":"https://github.com/rails/marcel","last_synced_at":"2026-03-24T10:01:30.408Z","status":"active","issues_count":54,"pull_requests_count":93,"avg_time_to_close_issue":18516559.606060605,"avg_time_to_close_pull_request":8144693.054054054,"issues_closed_count":33,"pull_requests_closed_count":74,"pull_request_authors_count":45,"issue_authors_count":53,"avg_comments_per_issue":2.037037037037037,"avg_comments_per_pull_request":0.8924731182795699,"merged_pull_requests_count":58,"bot_issues_count":0,"bot_pull_requests_count":3,"past_year_issues_count":3,"past_year_pull_requests_count":18,"past_year_avg_time_to_close_issue":7266801.0,"past_year_avg_time_to_close_pull_request":3879644.8571428573,"past_year_issues_closed_count":1,"past_year_pull_requests_closed_count":7,"past_year_pull_request_authors_count":5,"past_year_issue_authors_count":3,"past_year_avg_comments_per_issue":0.3333333333333333,"past_year_avg_comments_per_pull_request":0.8888888888888888,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":5,"created_at":"2023-05-12T13:31:48.226Z","updated_at":"2026-03-24T10:01:30.408Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fmarcel/issues","issue_labels_count":{},"pull_request_labels_count":{"dependencies":3},"issue_author_associations_count":{"NONE":47,"CONTRIBUTOR":6,"MEMBER":1},"pull_request_author_associations_count":{"CONTRIBUTOR":37,"NONE":32,"MEMBER":24},"issue_authors":{"tomafro":2,"tomhughes":1,"markedmondson":1,"IBazylchuk":1,"genezys":1,"AlfonsoUceda":1,"nvanoorschot":1,"timfrazee":1,"ClearlyClaire":1,"gr8bit":1,"pcantrell":1,"ron-shinall":1,"andyvanee":1,"ocarreterom":1,"mdavidn":1,"agbinary":1,"adamzapasnik":1,"weilandia":1,"malclocke":1,"andynu":1,"hezanathos":1,"hanpeic":1,"ronin":1,"dloebl":1,"nvh0412":1,"natebird":1,"wtn":1,"zwarburg":1,"Mth0158":1,"bogdan":1,"akimd":1,"AlexanderShvaykin":1,"sbocinec":1,"abrom":1,"mvz":1,"goetzc":1,"cars10":1,"jbielick":1,"RinCat":1,"pedrofurtado":1,"brian-kephart":1,"brenogazzola":1,"boutil":1,"michelson":1,"Raj-Kumar-P":1,"tzabaman":1,"TrevorHinesley":1,"jrochkind":1,"fursich":1,"Apteryks":1,"alexmreis":1,"johnnyshields":1,"ghost":1},"pull_request_authors":{"gmcgibbon":11,"alexanderadam":10,"jeremy":5,"junaruga":4,"rafaelfranca":4,"hahmed":3,"casperisfine":3,"georgeclaghorn":3,"dependabot[bot]":3,"trekdemo":2,"sjoulbak":2,"olleolleolle":2,"alexandergitter":2,"mark-young-atg":2,"FrancescoK":2,"MarcelEeken":2,"afcapel":2,"vipulnsward":2,"elebow":2,"Andy-H-Nguyen":2,"y-yagi":1,"huacnlee":1,"benkoshy":1,"massongit":1,"ursm":1,"andynu":1,"janko":1,"beauraF":1,"adam-ludgate":1,"olivier-thatch":1,"petergoldstein":1,"qcam":1,"Mth0158":1,"bogdan":1,"sbocinec":1,"excid3":1,"brian-kephart":1,"wonda-tea-coffee":1,"fursich":1,"eileencodes":1,"gogainda":1,"eugentorica":1,"valeronm":1,"kiskoza":1,"jbampton":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-15T00:00:09.535Z","repositories_count":14275607,"issues_count":34612295,"pull_requests_count":113262059,"authors_count":11235370,"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":{},"past_year_issue_author_associations_count":{"NONE":2,"CONTRIBUTOR":1},"past_year_pull_request_author_associations_count":{"NONE":12,"MEMBER":4,"CONTRIBUTOR":2},"past_year_issue_authors":{"andynu":1,"bogdan":1,"tomhughes":1},"past_year_pull_request_authors":{"alexanderadam":10,"rafaelfranca":4,"FrancescoK":2,"andynu":1,"bogdan":1},"maintainers":[{"login":"gmcgibbon","count":11,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/gmcgibbon"},{"login":"jeremy","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jeremy"},{"login":"rafaelfranca","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/rafaelfranca"},{"login":"vipulnsward","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/vipulnsward"},{"login":"pedrofurtado","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pedrofurtado"},{"login":"y-yagi","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/y-yagi"},{"login":"eileencodes","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/eileencodes"}],"active_maintainers":[{"login":"rafaelfranca","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/rafaelfranca"}]},"events":{"total":{"DeleteEvent":1,"PullRequestEvent":7,"ForkEvent":5,"IssuesEvent":12,"WatchEvent":36,"IssueCommentEvent":15,"PushEvent":6,"PullRequestReviewEvent":7,"PullRequestReviewCommentEvent":6,"CreateEvent":3},"last_year":{"DeleteEvent":1,"PullRequestEvent":7,"ForkEvent":2,"IssuesEvent":3,"WatchEvent":27,"IssueCommentEvent":4,"PushEvent":6,"PullRequestReviewEvent":7,"PullRequestReviewCommentEvent":6,"CreateEvent":3}},"keywords":[],"dependencies":[{"ecosystem":"rubygems","filepath":"marcel.gemspec","sha":null,"kind":"manifest","created_at":"2022-08-20T13:10:43.982Z","updated_at":"2022-08-20T13:10:43.982Z","repository_link":"https://github.com/rails/marcel/blob/main/marcel.gemspec","dependencies":[{"id":2166034034,"package_name":"minitest","ecosystem":"rubygems","requirements":"~\u003e 5.11","direct":true,"kind":"development","optional":false},{"id":2166034035,"package_name":"bundler","ecosystem":"rubygems","requirements":"\u003e= 1.7","direct":true,"kind":"development","optional":false},{"id":2166034036,"package_name":"rake","ecosystem":"rubygems","requirements":"~\u003e 13.0","direct":true,"kind":"development","optional":false},{"id":2166034037,"package_name":"rack","ecosystem":"rubygems","requirements":"~\u003e 2.0","direct":true,"kind":"development","optional":false},{"id":2166034038,"package_name":"nokogiri","ecosystem":"rubygems","requirements":"\u003e= 1.9.1","direct":true,"kind":"development","optional":false},{"id":2166034039,"package_name":"byebug","ecosystem":"rubygems","requirements":"~\u003e 10.0.2","direct":true,"kind":"development","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/release.yml","sha":null,"kind":"manifest","created_at":"2026-03-18T07:01:25.126Z","updated_at":"2026-03-18T07:01:25.126Z","repository_link":"https://github.com/rails/marcel/blob/main/.github/workflows/release.yml","dependencies":[{"id":25841824156,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v5","direct":true,"kind":"composite","optional":false},{"id":25841824157,"package_name":"ruby/setup-ruby","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":25841824219,"package_name":"rubygems/release-gem","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/ci.yml","sha":null,"kind":"manifest","created_at":"2024-02-28T03:28:24.505Z","updated_at":"2024-02-28T03:28:24.505Z","repository_link":"https://github.com/rails/marcel/blob/main/.github/workflows/ci.yml","dependencies":[{"id":16491170891,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":16491170892,"package_name":"ruby/setup-ruby","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"rubygems","filepath":"Gemfile","sha":null,"kind":"manifest","created_at":"2024-02-28T03:28:24.559Z","updated_at":"2024-02-28T03:28:24.559Z","repository_link":"https://github.com/rails/marcel/blob/main/Gemfile","dependencies":[]}],"score":32.338645718992645,"created_at":"2024-12-15T21:38:08.450Z","updated_at":"2026-04-30T04:03:13.753Z","avatar_url":"https://github.com/rails.png","language":"Ruby","monthly_downloads":0,"readme":"# Marcel\n\nMarcel chooses the most appropriate content type for a file by inspecting its contents, the declared MIME type (perhaps passed as a Content-Type header), and the file extension.\n\nMarcel checks, in order:\n\n1. The \"magic bytes\" sniffed from the file contents.\n2. The declared type, typically provided in a Content-Type header on an uploaded file, unless it's the `application/octet-stream` default.\n3. The filename extension.\n4. Safe fallback to the indeterminate `application/octet-stream` default.\n\nAt each step, the most specific MIME subtype is selected. This allows the declared type and file extension to refine the parent type sniffed from the file contents, but not conflict with it. For example, if \"file.csv\" has declared type `text/plain`, `text/csv` is returned since it's a more specific subtype of `text/plain`. Similarly, Adobe Illustrator files are PDFs internally, so magic byte sniffing indicates `application/pdf` which is refined to `application/illustrator` by the `ai` file extension. But a PDF named \"image.png\" will still be detected as `application/pdf` since `image/png` is not a subtype.\n\n## Usage\n\n```ruby\n# Magic bytes sniffing alone\nMarcel::MimeType.for Pathname.new(\"example.gif\")\n#  =\u003e \"image/gif\"\n\nFile.open \"example.gif\" do |file|\n  Marcel::MimeType.for file\nend\n#  =\u003e \"image/gif\"\n\n# Magic bytes with filename fallback\nMarcel::MimeType.for Pathname.new(\"unrecognisable-data\"), name: \"example.pdf\"\n#  =\u003e \"application/pdf\"\n\n# File extension alone\nMarcel::MimeType.for extension: \".pdf\"\n#  =\u003e \"application/pdf\"\n\n# Magic bytes, declared type, and filename together\nMarcel::MimeType.for Pathname.new(\"unrecognisable-data\"), name: \"example\", declared_type: \"image/png\"\n#  =\u003e \"image/png\"\n\n# Safe fallback to application/octet-stream\nMarcel::MimeType.for StringIO.new(File.read \"unrecognisable-data\")\n#  =\u003e \"application/octet-stream\"\n```\n\n## Extending\n\nCustom file types may be added with `Marcel::MimeType.extend`:\n\n```ruby\nMarcel::MimeType.extend \"text/custom\", extensions: %w( customtxt )\nMarcel::MimeType.for name: \"file.customtxt\"\n#  =\u003e \"text/custom\"\n```\n\n## Motivation\n\nMarcel was extracted from Basecamp's file detection heuristics. The aim is provide sensible, safe, \"do what I expect\" results for typical file handling. Test fixtures have been added for many common file types, including those typically encountered by Basecamp.\n\n\n## Contributing\n\nMarcel generates MIME lookup tables with `bundle exec rake update`. MIME types are seeded from data found in `data/*.xml`. Custom MIMEs may be added to `data/custom.xml`, while overrides to the standard MIME database may be added to `lib/marcel/mime_type/definitions.rb`.\n\nMarcel follows the same contributing guidelines as [rails/rails](https://github.com/rails/rails#contributing).\n\n\n## Testing\n\nThe main test fixture files are split into two folders, those that can be recognised by magic bytes, and those that can only be recognised by name. Even though strictly unnecessary, the fixtures in both folders should all be valid files of the type they represent.\n\n\n## License\n\nMarcel itself is released under the terms of the MIT License. See the MIT-LICENSE file for details.\n\nPortions of Marcel are adapted from the [mimemagic] gem, released under the terms of the MIT License.\n\nMarcel's magic signature data is adapted from [Apache Tika](https://tika.apache.org), released under the terms of the Apache License. See the APACHE-LICENSE file for details.\n\n[mimemagic]: https://github.com/mimemagicrb/mimemagic\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["activerecord","activejob","mvc","rubygems","rack","rspec","multithreading","gem","ruby-gem","feature-flag"],"project_url":"https://ruby.ecosyste.ms/api/v1/projects/589","html_url":"https://ruby.ecosyste.ms/projects/589"}