{"id":123423,"url":"https://github.com/ruby-concurrency/thread_safe","last_synced_at":"2026-05-29T03:30:47.512Z","repository":{"id":17738670,"uuid":"20579727","full_name":"ruby-concurrency/thread_safe","owner":"ruby-concurrency","description":"Thread-safe collections for Ruby (merged with concurrent-ruby)","archived":true,"fork":false,"pushed_at":"2020-08-28T15:06:39.000Z","size":526,"stargazers_count":192,"open_issues_count":1,"forks_count":20,"subscribers_count":11,"default_branch":"master","last_synced_at":"2026-04-26T22:30:18.882Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://concurrent-ruby.com","language":"Java","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/ruby-concurrency.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-06-06T22:13:43.000Z","updated_at":"2026-04-21T09:38:09.000Z","dependencies_parsed_at":"2022-08-30T05:12:39.178Z","dependency_job_id":null,"html_url":"https://github.com/ruby-concurrency/thread_safe","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/ruby-concurrency/thread_safe","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruby-concurrency","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/sbom","scorecard":{"id":788856,"data":{"date":"2025-08-11","repo":{"name":"github.com/ruby-concurrency/thread_safe","commit":"39fc4a490c7ed881657ea49cd37d293de13b6d4e"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.2,"checks":[{"name":"Maintained","score":0,"reason":"project is archived","details":["Warn: Repository is archived."],"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":4,"reason":"Found 10/21 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"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":"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":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"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":-1,"reason":"no workflows found","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":"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":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"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":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v0.3.5 not signed: https://api.github.com/repos/ruby-concurrency/thread_safe/releases/1038499","Warn: release artifact v0.3.5 does not have provenance: https://api.github.com/repos/ruby-concurrency/thread_safe/releases/1038499"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 20 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-23T06:52:53.875Z","repository_id":17738670,"created_at":"2025-08-23T06:52:53.875Z","updated_at":"2025-08-23T06:52:53.875Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32488540,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"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":"ruby-concurrency","name":"ruby-concurrency","uuid":"5462766","kind":"organization","description":"","email":"concurrent-ruby@googlegroups.com","website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/5462766?v=4","repositories_count":5,"last_synced_at":"2024-03-25T19:33:59.022Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/ruby-concurrency","funding_links":[],"total_stars":5892,"followers":9,"following":0,"created_at":"2022-11-02T16:17:27.806Z","updated_at":"2024-03-25T19:33:59.487Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruby-concurrency","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruby-concurrency/repositories"},"packages":[{"id":316472,"name":"thread_safe","ecosystem":"rubygems","description":"A collection of data structures and utilities to make thread-safe programming in Ruby easier","homepage":"https://github.com/ruby-concurrency/thread_safe","licenses":"Apache-2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/ruby-concurrency/thread_safe","keywords_array":[],"namespace":null,"versions_count":24,"first_release_published_at":"2012-04-26T00:02:37.807Z","latest_release_published_at":"2017-02-22T19:50:54.397Z","latest_release_number":"0.3.6","last_synced_at":"2025-11-23T15:00:27.147Z","created_at":"2022-04-06T11:46:44.746Z","updated_at":"2025-11-23T15:02:16.995Z","registry_url":"https://rubygems.org/gems/thread_safe","install_command":"gem install thread_safe -s https://rubygems.org","documentation_url":"http://www.rubydoc.info/gems/thread_safe/","metadata":{"funding":null},"repo_metadata":{"id":17738670,"uuid":"20579727","full_name":"ruby-concurrency/thread_safe","owner":"ruby-concurrency","description":"Thread-safe collections for Ruby (merged with concurrent-ruby)","archived":true,"fork":false,"pushed_at":"2020-08-28T15:06:39.000Z","size":526,"stargazers_count":193,"open_issues_count":1,"forks_count":20,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-11-05T17:03:19.185Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://concurrent-ruby.com","language":"Java","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/ruby-concurrency.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-06-06T22:13:43.000Z","updated_at":"2025-05-21T16:32:48.000Z","dependencies_parsed_at":"2022-08-30T05:12:39.178Z","dependency_job_id":null,"html_url":"https://github.com/ruby-concurrency/thread_safe","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/ruby-concurrency/thread_safe","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruby-concurrency","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/sbom","scorecard":{"id":788856,"data":{"date":"2025-08-11","repo":{"name":"github.com/ruby-concurrency/thread_safe","commit":"39fc4a490c7ed881657ea49cd37d293de13b6d4e"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.2,"checks":[{"name":"Maintained","score":0,"reason":"project is archived","details":["Warn: Repository is archived."],"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":4,"reason":"Found 10/21 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"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":"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":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"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":-1,"reason":"no workflows found","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":"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":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"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":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v0.3.5 not signed: https://api.github.com/repos/ruby-concurrency/thread_safe/releases/1038499","Warn: release artifact v0.3.5 does not have provenance: https://api.github.com/repos/ruby-concurrency/thread_safe/releases/1038499"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 20 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-23T06:52:53.875Z","repository_id":17738670,"created_at":"2025-08-23T06:52:53.875Z","updated_at":"2025-08-23T06:52:53.875Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":284236611,"owners_count":26970150,"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-11-13T02:00:06.582Z","response_time":61,"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":"ruby-concurrency","name":"ruby-concurrency","uuid":"5462766","kind":"organization","description":"","email":"concurrent-ruby@googlegroups.com","website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/5462766?v=4","repositories_count":5,"last_synced_at":"2024-03-25T19:33:59.022Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/ruby-concurrency","funding_links":[],"total_stars":5892,"followers":9,"following":0,"created_at":"2022-11-02T16:17:27.806Z","updated_at":"2024-03-25T19:33:59.487Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruby-concurrency","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruby-concurrency/repositories"},"tags":[{"name":"v0.3.6","sha":"ccfd11b76d6cf74ba0e19278fba9ba1b7f5ea5ca","kind":"tag","published_at":"2017-02-28T05:17:47.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.3.6","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.3.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.3.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.6/manifests"},{"name":"v0.3.5","sha":"ae2e6187cefe451afdd716fd754b9a01e1c922d1","kind":"commit","published_at":"2015-03-11T14:53:29.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.3.5","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.3.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.3.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.5/manifests"},{"name":"v0.3.4","sha":"21ea387dce966f3a6a38752ab6e199bb9a2d710b","kind":"commit","published_at":"2014-05-27T20:04:00.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.3.4","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.3.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.4/manifests"},{"name":"v0.3.3","sha":"d2c735b66b015a190de77a6200f33462dfb4aaf7","kind":"commit","published_at":"2014-04-07T10:01:11.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.3.3","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.3.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.3/manifests"},{"name":"v0.3.2","sha":"4b29f2ff618eacf13f50b9477824e06fc1b6cbba","kind":"commit","published_at":"2014-04-05T12:07:26.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.3.2","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.3.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.2/manifests"},{"name":"v0.3.1","sha":"6df8ee382f884d9825eec1f72a89cd956d28e365","kind":"commit","published_at":"2014-03-21T07:20:25.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.3.1","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.1/manifests"},{"name":"0.3.0","sha":"c22664cb6e967cab2bbbeea408c3dc765815e5a5","kind":"commit","published_at":"2014-03-18T01:43:09.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/0.3.0","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/0.3.0/manifests"},{"name":"v0.3.0","sha":"c22664cb6e967cab2bbbeea408c3dc765815e5a5","kind":"commit","published_at":"2014-03-18T01:43:09.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.3.0","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.0/manifests"},{"name":"0.2.0","sha":"7c746cd1f489f23bca90094e3c3bf08e8d721afe","kind":"commit","published_at":"2014-02-26T17:47:57.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/0.2.0","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/0.2.0/manifests"},{"name":"v0.2.0","sha":"7c746cd1f489f23bca90094e3c3bf08e8d721afe","kind":"commit","published_at":"2014-02-26T17:47:57.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.2.0","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.2.0/manifests"},{"name":"v0.1.2","sha":"585818b91fe72b78c7ccbfe763bddb0eed309631","kind":"commit","published_at":"2013-07-24T00:11:12.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.1.2","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.1.2/manifests"},{"name":"v0.1.1","sha":"0ab4b793ed82fc9475b5b3b99c8a46631d84027d","kind":"commit","published_at":"2013-07-23T19:34:50.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.1.1","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.1.1/manifests"},{"name":"v0.1.0","sha":"6a7d7d4b0d62fcd1751f3726c1b9688dc0002b7b","kind":"commit","published_at":"2012-12-12T14:36:52.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.1.0","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.1.0/manifests"},{"name":"v0.0.3","sha":"ad770ff07505d768bfe097eb85d2a4b7e03f1b9d","kind":"tag","published_at":"2012-04-27T16:42:28.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.0.3","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.0.3/manifests"},{"name":"v0.0.2","sha":"b0699da98c767431655543c06141a4e7b96b3d58","kind":"tag","published_at":"2012-04-26T00:12:20.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.0.2","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.0.2/manifests"},{"name":"v0.0.1","sha":"bb5003d7ff799fccd5e184eec8fc823a894d5d9d","kind":"tag","published_at":"2012-04-26T00:02:25.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.0.1","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.0.1/manifests"}]},"repo_metadata_updated_at":"2025-11-23T15:02:16.995Z","dependent_packages_count":158,"downloads":583580452,"downloads_period":"total","dependent_repos_count":1055818,"rankings":{"downloads":0.02118620443572217,"dependent_repos_count":0.003902721869738295,"dependent_packages_count":0.2191099564010214,"stargazers_count":4.0504677690926725,"forks_count":6.060927063703572,"docker_downloads_count":0.11206387083105675,"average":1.744609597722297},"purl":"pkg:gem/thread_safe","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/rubygems/thread_safe","docker_dependents_count":2331,"docker_downloads_count":2103328395,"usage_url":"https://repos.ecosyste.ms/usage/rubygems/thread_safe","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/rubygems/thread_safe/dependencies","status":null,"funding_links":[],"critical":true,"issue_metadata":{"last_synced_at":"2025-08-31T19:38:41.404Z","issues_count":13,"pull_requests_count":20,"avg_time_to_close_issue":7411274.25,"avg_time_to_close_pull_request":305750.55,"issues_closed_count":12,"pull_requests_closed_count":20,"pull_request_authors_count":11,"issue_authors_count":12,"avg_comments_per_issue":3.6923076923076925,"avg_comments_per_pull_request":2.35,"merged_pull_requests_count":16,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/issues","maintainers":[{"login":"jdantonio","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jdantonio"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/thread_safe/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/thread_safe/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/thread_safe/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/thread_safe/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/thread_safe/codemeta","maintainers":[{"uuid":"1825","login":"headius","name":null,"email":null,"url":null,"packages_count":76,"html_url":"https://rubygems.org/profiles/headius","role":null,"created_at":"2022-11-09T09:54:05.786Z","updated_at":"2022-11-09T09:54:05.786Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/headius/packages"},{"uuid":"50229","login":"pitr-ch","name":null,"email":null,"url":null,"packages_count":18,"html_url":"https://rubygems.org/profiles/pitr-ch","role":null,"created_at":"2022-11-09T09:54:05.820Z","updated_at":"2022-11-09T09:54:05.820Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/pitr-ch/packages"},{"uuid":"58885","login":"thedarkone","name":null,"email":null,"url":null,"packages_count":3,"html_url":"https://rubygems.org/profiles/thedarkone","role":null,"created_at":"2022-11-09T09:54:05.797Z","updated_at":"2022-11-09T09:54:05.797Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/thedarkone/packages"},{"uuid":"65379","login":"jdantonio","name":null,"email":null,"url":null,"packages_count":9,"html_url":"https://rubygems.org/profiles/jdantonio","role":null,"created_at":"2022-11-09T09:54:05.804Z","updated_at":"2022-11-09T09:54:05.804Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/jdantonio/packages"}],"registry":{"name":"rubygems.org","url":"https://rubygems.org","ecosystem":"rubygems","default":true,"packages_count":200996,"maintainers_count":67296,"namespaces_count":0,"keywords_count":18226,"github":"rubygems","metadata":{"funded_packages_count":7135},"icon_url":"https://github.com/rubygems.png","created_at":"2022-04-04T15:19:23.446Z","updated_at":"2025-11-24T06:48:58.222Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/namespaces"}},{"id":5302838,"name":"rb-thread_safe","ecosystem":"conda","description":null,"homepage":"https://rubygems.org/gems/thread_safe","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/ruby-concurrency/thread_safe","keywords_array":[],"namespace":null,"versions_count":1,"first_release_published_at":"2019-08-31T13:48:10.000Z","latest_release_published_at":"2019-08-31T13:48:10.000Z","latest_release_number":"0.3.6","last_synced_at":"2025-11-02T10:06:08.031Z","created_at":"2022-10-03T16:13:31.861Z","updated_at":"2025-11-02T10:06:08.031Z","registry_url":"https://anaconda.org/conda-forge/rb-thread_safe","install_command":"conda install -c conda-forge rb-thread_safe","documentation_url":null,"metadata":{},"repo_metadata":{"id":17738670,"uuid":"20579727","full_name":"ruby-concurrency/thread_safe","owner":"ruby-concurrency","description":"Thread-safe collections for Ruby (merged with concurrent-ruby)","archived":true,"fork":false,"pushed_at":"2020-08-28T15:06:39.000Z","size":526,"stargazers_count":193,"open_issues_count":1,"forks_count":20,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-08-30T15:02:10.947Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://concurrent-ruby.com","language":"Java","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/ruby-concurrency.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-06-06T22:13:43.000Z","updated_at":"2025-05-21T16:32:48.000Z","dependencies_parsed_at":"2022-08-30T05:12:39.178Z","dependency_job_id":null,"html_url":"https://github.com/ruby-concurrency/thread_safe","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/ruby-concurrency/thread_safe","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruby-concurrency","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/sbom","scorecard":{"id":788856,"data":{"date":"2025-08-11","repo":{"name":"github.com/ruby-concurrency/thread_safe","commit":"39fc4a490c7ed881657ea49cd37d293de13b6d4e"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.2,"checks":[{"name":"Maintained","score":0,"reason":"project is archived","details":["Warn: Repository is archived."],"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":4,"reason":"Found 10/21 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"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":"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":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"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":-1,"reason":"no workflows found","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":"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":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"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":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v0.3.5 not signed: https://api.github.com/repos/ruby-concurrency/thread_safe/releases/1038499","Warn: release artifact v0.3.5 does not have provenance: https://api.github.com/repos/ruby-concurrency/thread_safe/releases/1038499"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 20 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-23T06:52:53.875Z","repository_id":17738670,"created_at":"2025-08-23T06:52:53.875Z","updated_at":"2025-08-23T06:52:53.875Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273317739,"owners_count":25084033,"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-09-02T02:00:09.530Z","response_time":77,"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":"ruby-concurrency","name":"ruby-concurrency","uuid":"5462766","kind":"organization","description":"","email":"concurrent-ruby@googlegroups.com","website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/5462766?v=4","repositories_count":5,"last_synced_at":"2024-03-25T19:33:59.022Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/ruby-concurrency","funding_links":[],"total_stars":5892,"followers":9,"following":0,"created_at":"2022-11-02T16:17:27.806Z","updated_at":"2024-03-25T19:33:59.487Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruby-concurrency","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruby-concurrency/repositories"},"tags":[{"name":"v0.3.6","sha":"ccfd11b76d6cf74ba0e19278fba9ba1b7f5ea5ca","kind":"tag","published_at":"2017-02-28T05:17:47.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.3.6","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.3.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.3.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.6/manifests"},{"name":"v0.3.5","sha":"ae2e6187cefe451afdd716fd754b9a01e1c922d1","kind":"commit","published_at":"2015-03-11T14:53:29.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.3.5","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.3.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.3.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.5/manifests"},{"name":"v0.3.4","sha":"21ea387dce966f3a6a38752ab6e199bb9a2d710b","kind":"commit","published_at":"2014-05-27T20:04:00.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.3.4","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.3.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.4/manifests"},{"name":"v0.3.3","sha":"d2c735b66b015a190de77a6200f33462dfb4aaf7","kind":"commit","published_at":"2014-04-07T10:01:11.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.3.3","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.3.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.3/manifests"},{"name":"v0.3.2","sha":"4b29f2ff618eacf13f50b9477824e06fc1b6cbba","kind":"commit","published_at":"2014-04-05T12:07:26.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.3.2","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.3.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.2/manifests"},{"name":"v0.3.1","sha":"6df8ee382f884d9825eec1f72a89cd956d28e365","kind":"commit","published_at":"2014-03-21T07:20:25.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.3.1","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.1/manifests"},{"name":"0.3.0","sha":"c22664cb6e967cab2bbbeea408c3dc765815e5a5","kind":"commit","published_at":"2014-03-18T01:43:09.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/0.3.0","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/0.3.0/manifests"},{"name":"v0.3.0","sha":"c22664cb6e967cab2bbbeea408c3dc765815e5a5","kind":"commit","published_at":"2014-03-18T01:43:09.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.3.0","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.0/manifests"},{"name":"0.2.0","sha":"7c746cd1f489f23bca90094e3c3bf08e8d721afe","kind":"commit","published_at":"2014-02-26T17:47:57.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/0.2.0","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/0.2.0/manifests"},{"name":"v0.2.0","sha":"7c746cd1f489f23bca90094e3c3bf08e8d721afe","kind":"commit","published_at":"2014-02-26T17:47:57.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.2.0","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.2.0/manifests"},{"name":"v0.1.2","sha":"585818b91fe72b78c7ccbfe763bddb0eed309631","kind":"commit","published_at":"2013-07-24T00:11:12.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.1.2","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.1.2/manifests"},{"name":"v0.1.1","sha":"0ab4b793ed82fc9475b5b3b99c8a46631d84027d","kind":"commit","published_at":"2013-07-23T19:34:50.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.1.1","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.1.1/manifests"},{"name":"v0.1.0","sha":"6a7d7d4b0d62fcd1751f3726c1b9688dc0002b7b","kind":"commit","published_at":"2012-12-12T14:36:52.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.1.0","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.1.0/manifests"},{"name":"v0.0.3","sha":"ad770ff07505d768bfe097eb85d2a4b7e03f1b9d","kind":"tag","published_at":"2012-04-27T16:42:28.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.0.3","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.0.3/manifests"},{"name":"v0.0.2","sha":"b0699da98c767431655543c06141a4e7b96b3d58","kind":"tag","published_at":"2012-04-26T00:12:20.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.0.2","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.0.2/manifests"},{"name":"v0.0.1","sha":"bb5003d7ff799fccd5e184eec8fc823a894d5d9d","kind":"tag","published_at":"2012-04-26T00:02:25.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.0.1","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.0.1/manifests"}]},"repo_metadata_updated_at":"2025-10-05T08:53:25.511Z","dependent_packages_count":2,"downloads":null,"downloads_period":null,"dependent_repos_count":1,"rankings":{"downloads":null,"dependent_repos_count":24.21777533809072,"dependent_packages_count":19.596786266779777,"stargazers_count":26.348620190628274,"forks_count":37.936024751734124,"docker_downloads_count":null,"average":27.024801636808224},"purl":"pkg:conda/rb-thread_safe?repository_url=https://conda-forge.org","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/conda/rb-thread_safe","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/conda/rb-thread_safe","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/conda/rb-thread_safe/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-08-31T19:38:41.404Z","issues_count":13,"pull_requests_count":20,"avg_time_to_close_issue":7411274.25,"avg_time_to_close_pull_request":305750.55,"issues_closed_count":12,"pull_requests_closed_count":20,"pull_request_authors_count":11,"issue_authors_count":12,"avg_comments_per_issue":3.6923076923076925,"avg_comments_per_pull_request":2.35,"merged_pull_requests_count":16,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/issues","maintainers":[{"login":"jdantonio","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jdantonio"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/rb-thread_safe/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/rb-thread_safe/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/rb-thread_safe/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/rb-thread_safe/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/rb-thread_safe/codemeta","maintainers":[],"registry":{"name":"conda-forge.org","url":"https://conda-forge.org","ecosystem":"conda","default":false,"packages_count":20636,"maintainers_count":0,"namespaces_count":0,"keywords_count":13536,"github":"conda-forge","metadata":{"kind":"conda-forge","key":"CondaForge","api":"https://conda.anaconda.org","funded_packages_count":2236},"icon_url":"https://github.com/conda-forge.png","created_at":"2022-10-03T15:37:08.743Z","updated_at":"2025-11-23T07:02:39.325Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/namespaces"}},{"id":12341910,"name":"thread_safe","ecosystem":"rubygems","description":"A collection of data structures and utilities to make thread-safe programming in Ruby easier","homepage":"https://github.com/ruby-concurrency/thread_safe","licenses":"Apache-2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/ruby-concurrency/thread_safe","keywords_array":[],"namespace":null,"versions_count":24,"first_release_published_at":"2012-04-26T00:02:37.807Z","latest_release_published_at":"2017-02-22T19:50:54.397Z","latest_release_number":"0.3.6","last_synced_at":"2025-11-23T20:01:00.410Z","created_at":"2025-10-07T06:29:42.492Z","updated_at":"2025-11-23T20:10:04.439Z","registry_url":"https://gem.coop/gems/thread_safe","install_command":"gem install thread_safe -s https://gem.coop","documentation_url":"http://www.rubydoc.info/gems/thread_safe/","metadata":{"funding":null},"repo_metadata":{"id":17738670,"uuid":"20579727","full_name":"ruby-concurrency/thread_safe","owner":"ruby-concurrency","description":"Thread-safe collections for Ruby (merged with concurrent-ruby)","archived":true,"fork":false,"pushed_at":"2020-08-28T15:06:39.000Z","size":526,"stargazers_count":193,"open_issues_count":1,"forks_count":20,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-11-05T17:03:19.185Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://concurrent-ruby.com","language":"Java","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/ruby-concurrency.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-06-06T22:13:43.000Z","updated_at":"2025-05-21T16:32:48.000Z","dependencies_parsed_at":"2022-08-30T05:12:39.178Z","dependency_job_id":null,"html_url":"https://github.com/ruby-concurrency/thread_safe","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/ruby-concurrency/thread_safe","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruby-concurrency","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/sbom","scorecard":{"id":788856,"data":{"date":"2025-08-11","repo":{"name":"github.com/ruby-concurrency/thread_safe","commit":"39fc4a490c7ed881657ea49cd37d293de13b6d4e"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.2,"checks":[{"name":"Maintained","score":0,"reason":"project is archived","details":["Warn: Repository is archived."],"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":4,"reason":"Found 10/21 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"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":"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":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"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":-1,"reason":"no workflows found","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":"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":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"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":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v0.3.5 not signed: https://api.github.com/repos/ruby-concurrency/thread_safe/releases/1038499","Warn: release artifact v0.3.5 does not have provenance: https://api.github.com/repos/ruby-concurrency/thread_safe/releases/1038499"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 20 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-23T06:52:53.875Z","repository_id":17738670,"created_at":"2025-08-23T06:52:53.875Z","updated_at":"2025-08-23T06:52:53.875Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":284236611,"owners_count":26970150,"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-11-13T02:00:06.582Z","response_time":61,"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":"ruby-concurrency","name":"ruby-concurrency","uuid":"5462766","kind":"organization","description":"","email":"concurrent-ruby@googlegroups.com","website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/5462766?v=4","repositories_count":5,"last_synced_at":"2024-03-25T19:33:59.022Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/ruby-concurrency","funding_links":[],"total_stars":5892,"followers":9,"following":0,"created_at":"2022-11-02T16:17:27.806Z","updated_at":"2024-03-25T19:33:59.487Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruby-concurrency","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruby-concurrency/repositories"},"tags":[{"name":"v0.3.6","sha":"ccfd11b76d6cf74ba0e19278fba9ba1b7f5ea5ca","kind":"tag","published_at":"2017-02-28T05:17:47.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.3.6","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.3.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.3.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.6/manifests"},{"name":"v0.3.5","sha":"ae2e6187cefe451afdd716fd754b9a01e1c922d1","kind":"commit","published_at":"2015-03-11T14:53:29.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.3.5","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.3.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.3.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.5/manifests"},{"name":"v0.3.4","sha":"21ea387dce966f3a6a38752ab6e199bb9a2d710b","kind":"commit","published_at":"2014-05-27T20:04:00.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.3.4","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.3.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.4/manifests"},{"name":"v0.3.3","sha":"d2c735b66b015a190de77a6200f33462dfb4aaf7","kind":"commit","published_at":"2014-04-07T10:01:11.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.3.3","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.3.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.3/manifests"},{"name":"v0.3.2","sha":"4b29f2ff618eacf13f50b9477824e06fc1b6cbba","kind":"commit","published_at":"2014-04-05T12:07:26.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.3.2","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.3.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.2/manifests"},{"name":"v0.3.1","sha":"6df8ee382f884d9825eec1f72a89cd956d28e365","kind":"commit","published_at":"2014-03-21T07:20:25.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.3.1","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.1/manifests"},{"name":"0.3.0","sha":"c22664cb6e967cab2bbbeea408c3dc765815e5a5","kind":"commit","published_at":"2014-03-18T01:43:09.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/0.3.0","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/0.3.0/manifests"},{"name":"v0.3.0","sha":"c22664cb6e967cab2bbbeea408c3dc765815e5a5","kind":"commit","published_at":"2014-03-18T01:43:09.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.3.0","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.0/manifests"},{"name":"0.2.0","sha":"7c746cd1f489f23bca90094e3c3bf08e8d721afe","kind":"commit","published_at":"2014-02-26T17:47:57.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/0.2.0","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/0.2.0/manifests"},{"name":"v0.2.0","sha":"7c746cd1f489f23bca90094e3c3bf08e8d721afe","kind":"commit","published_at":"2014-02-26T17:47:57.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.2.0","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.2.0/manifests"},{"name":"v0.1.2","sha":"585818b91fe72b78c7ccbfe763bddb0eed309631","kind":"commit","published_at":"2013-07-24T00:11:12.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.1.2","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.1.2/manifests"},{"name":"v0.1.1","sha":"0ab4b793ed82fc9475b5b3b99c8a46631d84027d","kind":"commit","published_at":"2013-07-23T19:34:50.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.1.1","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.1.1/manifests"},{"name":"v0.1.0","sha":"6a7d7d4b0d62fcd1751f3726c1b9688dc0002b7b","kind":"commit","published_at":"2012-12-12T14:36:52.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.1.0","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.1.0/manifests"},{"name":"v0.0.3","sha":"ad770ff07505d768bfe097eb85d2a4b7e03f1b9d","kind":"tag","published_at":"2012-04-27T16:42:28.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.0.3","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.0.3/manifests"},{"name":"v0.0.2","sha":"b0699da98c767431655543c06141a4e7b96b3d58","kind":"tag","published_at":"2012-04-26T00:12:20.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.0.2","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.0.2/manifests"},{"name":"v0.0.1","sha":"bb5003d7ff799fccd5e184eec8fc823a894d5d9d","kind":"tag","published_at":"2012-04-26T00:02:25.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.0.1","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.0.1/manifests"}]},"repo_metadata_updated_at":"2025-11-23T20:10:04.439Z","dependent_packages_count":0,"downloads":583587019,"downloads_period":"total","dependent_repos_count":0,"rankings":{"downloads":0.03242647297253478,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":4.122485597241588,"forks_count":5.936746760054909,"docker_downloads_count":0.07295956418820325,"average":1.6941030657428726},"purl":"pkg:gem/thread_safe?repository_url=https://gem.coop","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/rubygems/thread_safe","docker_dependents_count":2331,"docker_downloads_count":2103328395,"usage_url":"https://repos.ecosyste.ms/usage/rubygems/thread_safe","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/rubygems/thread_safe/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-08-31T19:38:41.404Z","issues_count":13,"pull_requests_count":20,"avg_time_to_close_issue":7411274.25,"avg_time_to_close_pull_request":305750.55,"issues_closed_count":12,"pull_requests_closed_count":20,"pull_request_authors_count":11,"issue_authors_count":12,"avg_comments_per_issue":3.6923076923076925,"avg_comments_per_pull_request":2.35,"merged_pull_requests_count":16,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/issues","maintainers":[{"login":"jdantonio","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jdantonio"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/thread_safe/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/thread_safe/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/thread_safe/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/thread_safe/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/thread_safe/codemeta","maintainers":[{"uuid":"50229","login":"pitr-ch","name":null,"email":null,"url":null,"packages_count":18,"html_url":"https://gem.coop/profiles/pitr-ch","role":null,"created_at":"2025-10-09T23:28:01.646Z","updated_at":"2025-10-09T23:28:01.646Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/pitr-ch/packages"},{"uuid":"1825","login":"headius","name":null,"email":null,"url":null,"packages_count":77,"html_url":"https://gem.coop/profiles/headius","role":null,"created_at":"2025-10-09T23:28:01.004Z","updated_at":"2025-10-09T23:28:01.004Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/headius/packages"},{"uuid":"58885","login":"thedarkone","name":null,"email":null,"url":null,"packages_count":3,"html_url":"https://gem.coop/profiles/thedarkone","role":null,"created_at":"2025-10-09T23:28:01.172Z","updated_at":"2025-10-09T23:28:01.172Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/thedarkone/packages"},{"uuid":"65379","login":"jdantonio","name":null,"email":null,"url":null,"packages_count":9,"html_url":"https://gem.coop/profiles/jdantonio","role":null,"created_at":"2025-10-09T23:28:01.443Z","updated_at":"2025-10-09T23:28:01.443Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/jdantonio/packages"}],"registry":{"name":"gem.coop","url":"https://gem.coop","ecosystem":"rubygems","default":false,"packages_count":185845,"maintainers_count":66287,"namespaces_count":0,"keywords_count":17700,"github":"gem-coop","metadata":{"funded_packages_count":6161},"icon_url":"https://github.com/gem-coop.png","created_at":"2025-10-06T17:24:20.932Z","updated_at":"2025-11-24T06:53:35.479Z","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":8614766,"name":"github.com/ruby-concurrency/thread_safe","ecosystem":"go","description":null,"homepage":null,"licenses":"apache-2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/ruby-concurrency/thread_safe","keywords_array":[],"namespace":null,"versions_count":14,"first_release_published_at":"2023-12-02T02:15:01.504Z","latest_release_published_at":"2017-02-22T19:45:05.000Z","latest_release_number":"v0.3.6","last_synced_at":"2025-11-22T12:02:50.954Z","created_at":"2023-12-02T02:14:59.421Z","updated_at":"2025-11-22T12:02:50.954Z","registry_url":"https://pkg.go.dev/github.com/ruby-concurrency/thread_safe","install_command":"go get github.com/ruby-concurrency/thread_safe","documentation_url":"https://pkg.go.dev/github.com/ruby-concurrency/thread_safe#section-documentation","metadata":{},"repo_metadata":{"id":17738670,"uuid":"20579727","full_name":"ruby-concurrency/thread_safe","owner":"ruby-concurrency","description":"Thread-safe collections for Ruby (merged with concurrent-ruby)","archived":true,"fork":false,"pushed_at":"2020-08-28T15:06:39.000Z","size":526,"stargazers_count":193,"open_issues_count":1,"forks_count":20,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-08-30T15:02:10.947Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://concurrent-ruby.com","language":"Java","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/ruby-concurrency.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-06-06T22:13:43.000Z","updated_at":"2025-05-21T16:32:48.000Z","dependencies_parsed_at":"2022-08-30T05:12:39.178Z","dependency_job_id":null,"html_url":"https://github.com/ruby-concurrency/thread_safe","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/ruby-concurrency/thread_safe","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruby-concurrency","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/sbom","scorecard":{"id":788856,"data":{"date":"2025-08-11","repo":{"name":"github.com/ruby-concurrency/thread_safe","commit":"39fc4a490c7ed881657ea49cd37d293de13b6d4e"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.2,"checks":[{"name":"Maintained","score":0,"reason":"project is archived","details":["Warn: Repository is archived."],"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":4,"reason":"Found 10/21 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"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":"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":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"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":-1,"reason":"no workflows found","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":"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":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"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":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v0.3.5 not signed: https://api.github.com/repos/ruby-concurrency/thread_safe/releases/1038499","Warn: release artifact v0.3.5 does not have provenance: https://api.github.com/repos/ruby-concurrency/thread_safe/releases/1038499"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 20 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-23T06:52:53.875Z","repository_id":17738670,"created_at":"2025-08-23T06:52:53.875Z","updated_at":"2025-08-23T06:52:53.875Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273317739,"owners_count":25084033,"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-09-02T02:00:09.530Z","response_time":77,"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":"ruby-concurrency","name":"ruby-concurrency","uuid":"5462766","kind":"organization","description":"","email":"concurrent-ruby@googlegroups.com","website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/5462766?v=4","repositories_count":5,"last_synced_at":"2024-03-25T19:33:59.022Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/ruby-concurrency","funding_links":[],"total_stars":5892,"followers":9,"following":0,"created_at":"2022-11-02T16:17:27.806Z","updated_at":"2024-03-25T19:33:59.487Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruby-concurrency","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruby-concurrency/repositories"},"tags":[{"name":"v0.3.6","sha":"ccfd11b76d6cf74ba0e19278fba9ba1b7f5ea5ca","kind":"tag","published_at":"2017-02-28T05:17:47.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.3.6","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.3.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.3.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.6/manifests"},{"name":"v0.3.5","sha":"ae2e6187cefe451afdd716fd754b9a01e1c922d1","kind":"commit","published_at":"2015-03-11T14:53:29.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.3.5","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.3.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.3.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.5/manifests"},{"name":"v0.3.4","sha":"21ea387dce966f3a6a38752ab6e199bb9a2d710b","kind":"commit","published_at":"2014-05-27T20:04:00.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.3.4","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.3.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.4/manifests"},{"name":"v0.3.3","sha":"d2c735b66b015a190de77a6200f33462dfb4aaf7","kind":"commit","published_at":"2014-04-07T10:01:11.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.3.3","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.3.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.3/manifests"},{"name":"v0.3.2","sha":"4b29f2ff618eacf13f50b9477824e06fc1b6cbba","kind":"commit","published_at":"2014-04-05T12:07:26.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.3.2","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.3.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.2/manifests"},{"name":"v0.3.1","sha":"6df8ee382f884d9825eec1f72a89cd956d28e365","kind":"commit","published_at":"2014-03-21T07:20:25.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.3.1","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.1/manifests"},{"name":"0.3.0","sha":"c22664cb6e967cab2bbbeea408c3dc765815e5a5","kind":"commit","published_at":"2014-03-18T01:43:09.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/0.3.0","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/0.3.0/manifests"},{"name":"v0.3.0","sha":"c22664cb6e967cab2bbbeea408c3dc765815e5a5","kind":"commit","published_at":"2014-03-18T01:43:09.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.3.0","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.3.0/manifests"},{"name":"0.2.0","sha":"7c746cd1f489f23bca90094e3c3bf08e8d721afe","kind":"commit","published_at":"2014-02-26T17:47:57.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/0.2.0","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/0.2.0/manifests"},{"name":"v0.2.0","sha":"7c746cd1f489f23bca90094e3c3bf08e8d721afe","kind":"commit","published_at":"2014-02-26T17:47:57.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.2.0","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.2.0/manifests"},{"name":"v0.1.2","sha":"585818b91fe72b78c7ccbfe763bddb0eed309631","kind":"commit","published_at":"2013-07-24T00:11:12.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.1.2","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.1.2/manifests"},{"name":"v0.1.1","sha":"0ab4b793ed82fc9475b5b3b99c8a46631d84027d","kind":"commit","published_at":"2013-07-23T19:34:50.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.1.1","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.1.1/manifests"},{"name":"v0.1.0","sha":"6a7d7d4b0d62fcd1751f3726c1b9688dc0002b7b","kind":"commit","published_at":"2012-12-12T14:36:52.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.1.0","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.1.0/manifests"},{"name":"v0.0.3","sha":"ad770ff07505d768bfe097eb85d2a4b7e03f1b9d","kind":"tag","published_at":"2012-04-27T16:42:28.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.0.3","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.0.3/manifests"},{"name":"v0.0.2","sha":"b0699da98c767431655543c06141a4e7b96b3d58","kind":"tag","published_at":"2012-04-26T00:12:20.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.0.2","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.0.2/manifests"},{"name":"v0.0.1","sha":"bb5003d7ff799fccd5e184eec8fc823a894d5d9d","kind":"tag","published_at":"2012-04-26T00:02:25.000Z","download_url":"https://codeload.github.com/ruby-concurrency/thread_safe/tar.gz/v0.0.1","html_url":"https://github.com/ruby-concurrency/thread_safe/releases/tag/v0.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby-concurrency/thread_safe@v0.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/tags/v0.0.1/manifests"}]},"repo_metadata_updated_at":"2025-10-05T08:53:23.116Z","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":3.6607534758618754,"forks_count":4.867281975444579,"docker_downloads_count":null,"average":7.226339576392575},"purl":"pkg:golang/github.com/ruby-concurrency/thread_safe","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/ruby-concurrency/thread_safe","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/ruby-concurrency/thread_safe","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/ruby-concurrency/thread_safe/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-08-31T19:38:41.404Z","issues_count":13,"pull_requests_count":20,"avg_time_to_close_issue":7411274.25,"avg_time_to_close_pull_request":305750.55,"issues_closed_count":12,"pull_requests_closed_count":20,"pull_request_authors_count":11,"issue_authors_count":12,"avg_comments_per_issue":3.6923076923076925,"avg_comments_per_pull_request":2.35,"merged_pull_requests_count":16,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/issues","maintainers":[{"login":"jdantonio","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jdantonio"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fruby-concurrency%2Fthread_safe/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fruby-concurrency%2Fthread_safe/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fruby-concurrency%2Fthread_safe/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fruby-concurrency%2Fthread_safe/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fruby-concurrency%2Fthread_safe/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":1997653,"maintainers_count":0,"namespaces_count":752668,"keywords_count":111718,"github":"golang","metadata":{"funded_packages_count":52809},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2025-11-24T06:43:56.446Z","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"}}],"commits":{"id":19583,"full_name":"ruby-concurrency/thread_safe","default_branch":"master","total_commits":212,"total_committers":18,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":11.777777777777779,"dds":0.3584905660377359,"past_year_total_commits":0,"past_year_total_committers":0,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":0.0,"past_year_dds":0.0,"last_synced_at":"2025-11-24T01:40:00.842Z","last_synced_commit":"39fc4a490c7ed881657ea49cd37d293de13b6d4e","created_at":"2023-03-07T11:41:33.016Z","updated_at":"2025-11-24T01:39:28.662Z","committers":[{"name":"thedarkone","email":"thedarkone2@gmail.com","login":"thedarkone","count":136},{"name":"Charles Oliver Nutter","email":"headius@headius.com","login":"headius","count":21},{"name":"kares","email":"self@kares.org","login":"kares","count":12},{"name":"Jerry D'Antonio","email":"stumpjumper@gmail.com","login":"jdantonio","count":10},{"name":"Erik Michaels-Ober","email":"sferik@gmail.com","login":"sferik","count":9},{"name":"Ken Dreyer","email":"ktdreyer@ktdreyer.com","login":"ktdreyer","count":5},{"name":"Ilya Lavrov","email":"dzjuck@gmail.com","login":"dzjuck","count":4},{"name":"renan-ranelli","email":"renanranelli@gmail.com","login":"rranelli","count":3},{"name":"Dmitry Ratnikov","email":"ratnikov@google.com","login":null,"count":2},{"name":"Uwe Kubosch","email":"uwe@kubosch.no","login":"donv","count":2},{"name":"Ian Unruh","email":"ianunruh@gmail.com","login":"ianunruh","count":1},{"name":"Jonathan Rochkind","email":"jonathan@dnil.net","login":"jrochkind","count":1},{"name":"Jun Aruga","email":"jaruga@redhat.com","login":"junaruga","count":1},{"name":"Keith Bennett","email":"keithrbennett@gmail.com","login":"keithrbennett","count":1},{"name":"Martin Schürrer","email":"martin@schuerrer.org","login":"MSch","count":1},{"name":"Petr Chalupa","email":"kontakt@pitr.ch","login":null,"count":1},{"name":"Nathan Sutton","email":"nate@zencoder.com","login":null,"count":1},{"name":"Tim Bellefleur","email":"nomoon@phoebus.ca","login":"nomoon","count":1}],"past_year_committers":[],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-11-24T00:00:57.993Z","repositories_count":6115351,"commits_count":924873414,"contributors_count":36008972,"owners_count":1118893,"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":{"table":{"full_name":"ruby-concurrency/thread_safe","html_url":"https://github.com/ruby-concurrency/thread_safe","last_synced_at":"2025-08-31T19:38:41.404Z","status":"error","issues_count":13,"pull_requests_count":20,"avg_time_to_close_issue":7411274.25,"avg_time_to_close_pull_request":305750.55,"issues_closed_count":12,"pull_requests_closed_count":20,"pull_request_authors_count":11,"issue_authors_count":12,"avg_comments_per_issue":3.6923076923076925,"avg_comments_per_pull_request":2.35,"merged_pull_requests_count":16,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"created_at":"2023-05-10T21:58:41.214Z","updated_at":"2025-08-31T19:38:41.407Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby-concurrency%2Fthread_safe/issues","issue_labels_count":{"table":{"enhancement":3,"bug":1,"help wanted":1,"in progress":1}},"pull_request_labels_count":{"table":{"enhancement":1}},"issue_author_associations_count":{"table":{"NONE":8,"CONTRIBUTOR":3,"MEMBER":2}},"pull_request_author_associations_count":{"table":{"CONTRIBUTOR":15,"NONE":3,"MEMBER":2}},"issue_authors":{"table":{"jdantonio":2,"soupmatt":1,"etehtsea":1,"donv":1,"ericproulx":1,"headius":1,"jkl1337":1,"dzjuck":1,"lenage":1,"graaff":1,"solnic":1,"samdai":1}},"pull_request_authors":{"table":{"dzjuck":4,"ktdreyer":3,"donv":2,"rranelli":2,"jdantonio":2,"nomoon":2,"keithrbennett":1,"junaruga":1,"gogainda":1,"naofumi-fujii":1,"manuelmeurer":1}},"host":{"table":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-11-16T00:00:13.373Z","repositories_count":11563432,"issues_count":35409608,"pull_requests_count":114738113,"authors_count":11044332,"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":{"table":{}},"past_year_pull_request_labels_count":{"table":{}},"past_year_issue_author_associations_count":{"table":{}},"past_year_pull_request_author_associations_count":{"table":{}},"past_year_issue_authors":{"table":{}},"past_year_pull_request_authors":{"table":{}},"maintainers":[{"table":{"login":"jdantonio","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jdantonio"}}],"active_maintainers":[]}},"events":{"total":{},"last_year":{}},"keywords":[],"dependencies":[{"ecosystem":"rubygems","filepath":"Gemfile","sha":null,"kind":"manifest","created_at":"2022-08-30T05:12:38.757Z","updated_at":"2022-08-30T05:12:38.757Z","repository_link":"https://github.com/ruby-concurrency/thread_safe/blob/master/Gemfile","dependencies":[{"id":3265117835,"package_name":"rspec","ecosystem":"rubygems","requirements":"~\u003e 3.2.0","direct":true,"kind":"development","optional":false},{"id":3265117836,"package_name":"simplecov","ecosystem":"rubygems","requirements":"~\u003e 0.9.2","direct":true,"kind":"development","optional":false},{"id":3265117837,"package_name":"term-ansicolor","ecosystem":"rubygems","requirements":"~\u003e 1.3.2","direct":true,"kind":"development","optional":false},{"id":3265117838,"package_name":"tins","ecosystem":"rubygems","requirements":"~\u003e 1.6.0","direct":true,"kind":"development","optional":false},{"id":3265117839,"package_name":"coveralls","ecosystem":"rubygems","requirements":"~\u003e 0.7.11","direct":true,"kind":"development","optional":false},{"id":3265117840,"package_name":"countloc","ecosystem":"rubygems","requirements":"~\u003e 0.4.0","direct":true,"kind":"development","optional":false},{"id":3265117841,"package_name":"yard","ecosystem":"rubygems","requirements":"~\u003e 0.8.7.6","direct":true,"kind":"development","optional":false},{"id":3265117842,"package_name":"inch","ecosystem":"rubygems","requirements":"~\u003e 0.5.10","direct":true,"kind":"development","optional":false},{"id":3265117843,"package_name":"redcarpet","ecosystem":"rubygems","requirements":"~\u003e 3.2.2","direct":true,"kind":"development","optional":false}]},{"ecosystem":"rubygems","filepath":"thread_safe.gemspec","sha":null,"kind":"manifest","created_at":"2022-08-30T05:12:38.932Z","updated_at":"2022-08-30T05:12:38.932Z","repository_link":"https://github.com/ruby-concurrency/thread_safe/blob/master/thread_safe.gemspec","dependencies":[{"id":3265118869,"package_name":"atomic","ecosystem":"rubygems","requirements":"= 1.1.16","direct":true,"kind":"development","optional":false},{"id":3265118870,"package_name":"rake","ecosystem":"rubygems","requirements":"\u003c 12.0","direct":true,"kind":"development","optional":false},{"id":3265118871,"package_name":"rspec","ecosystem":"rubygems","requirements":"~\u003e 3.2","direct":true,"kind":"development","optional":false}]}],"score":30.55806494469472,"created_at":"2024-06-13T11:02:27.188Z","updated_at":"2026-05-29T03:30:47.512Z","avatar_url":"https://github.com/ruby-concurrency.png","language":"Java","codemeta":null,"publiccode":null,"project_url":"https://summary.ecosyste.ms/api/v1/projects/123423","html_url":"https://summary.ecosyste.ms/projects/123423"}