{"id":260,"name":null,"description":"Timeout provides a way to auto-terminate a potentially long-running operation if it hasn't finished in a fixed amount of time.","url":"https://github.com/ruby/timeout","last_synced_at":"2026-04-30T17:00:31.494Z","repository":{"id":38198304,"uuid":"200772043","full_name":"ruby/timeout","owner":"ruby","description":"Timeout provides a way to auto-terminate a potentially long-running operation if it hasn't finished in a fixed amount of time.","archived":false,"fork":false,"pushed_at":"2026-04-20T06:28:34.000Z","size":239,"stargazers_count":155,"open_issues_count":2,"forks_count":32,"subscribers_count":34,"default_branch":"master","last_synced_at":"2026-04-25T18:04:48.133Z","etag":null,"topics":["ruby"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ruby.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-08-06T03:47:53.000Z","updated_at":"2026-04-20T06:28:37.000Z","dependencies_parsed_at":"2026-04-02T07:09:00.358Z","dependency_job_id":null,"html_url":"https://github.com/ruby/timeout","commit_stats":{"total_commits":166,"total_committers":30,"mean_commits":5.533333333333333,"dds":0.7469879518072289,"last_synced_commit":"2e5a87bacac7937c301cde0c8f14826cf86cfa5c"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/ruby/timeout","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruby","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/sbom","scorecard":{"id":788930,"data":{"date":"2025-08-11","repo":{"name":"github.com/ruby/timeout","commit":"fdc7ec0a195b578d7161471a42b5faa0c7710ef9"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.3,"checks":[{"name":"Code-Review","score":1,"reason":"Found 1/7 approved changesets -- score normalized to 1","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":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":5,"reason":"6 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 5","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/push_gem.yml:21","Info: topLevel 'contents' permission set to 'read': .github/workflows/push_gem.yml:9","Warn: no topLevel permission defined: .github/workflows/test.yml:1"],"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":"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":"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":5,"reason":"dependency not pinned by hash detected -- score normalized to 5","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:7: update your workflow using https://app.stepsecurity.io/secureworkflow/ruby/timeout/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/ruby/timeout/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/ruby/timeout/test.yml/master?enable=pin","Info:   1 out of   2 GitHub-owned GitHubAction dependencies pinned","Info:   3 out of   5 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"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":9,"reason":"license file detected","details":["Info: project has a license file: COPYING:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 25 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:54:16.459Z","repository_id":38198304,"created_at":"2025-08-23T06:54:16.459Z","updated_at":"2025-08-23T06:54:16.459Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32301330,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T09:34:17.070Z","status":"ssl_error","status_checked_at":"2026-04-26T09:34:00.993Z","response_time":129,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"ruby","name":"The Ruby Programming Language","uuid":"210414","kind":"organization","description":"Repositories related to the Ruby Programming language","email":"info@ruby-lang.org","website":"https://www.ruby-lang.org/","location":"Matsue, Japan","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/210414?v=4","repositories_count":171,"last_synced_at":"2023-04-09T03:40:20.875Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/ruby","funding_links":[],"total_stars":41804,"followers":null,"following":null,"created_at":"2022-11-02T16:17:15.462Z","updated_at":"2023-04-09T03:40:20.938Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruby","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruby/repositories"},"packages":[{"id":317094,"name":"timeout","ecosystem":"rubygems","description":"Auto-terminate potentially long-running operations in Ruby.","homepage":"https://github.com/ruby/timeout","licenses":"Ruby,BSD-2-Clause","normalized_licenses":["Ruby","BSD-2-Clause"],"repository_url":"https://github.com/ruby/timeout","keywords_array":[],"namespace":null,"versions_count":14,"first_release_published_at":"2020-04-07T01:06:47.341Z","latest_release_published_at":"2026-03-09T22:04:12.692Z","latest_release_number":"0.6.1","last_synced_at":"2026-04-28T16:02:34.092Z","created_at":"2022-04-06T11:48:22.599Z","updated_at":"2026-04-28T16:07:03.932Z","registry_url":"https://rubygems.org/gems/timeout","install_command":"gem install timeout -s https://rubygems.org","documentation_url":"http://www.rubydoc.info/gems/timeout/","metadata":{"funding":null},"repo_metadata":{"id":38198304,"uuid":"200772043","full_name":"ruby/timeout","owner":"ruby","description":"Timeout provides a way to auto-terminate a potentially long-running operation if it hasn't finished in a fixed amount of time.","archived":false,"fork":false,"pushed_at":"2026-04-20T06:28:34.000Z","size":239,"stargazers_count":155,"open_issues_count":2,"forks_count":32,"subscribers_count":34,"default_branch":"master","last_synced_at":"2026-04-25T18:04:48.133Z","etag":null,"topics":["ruby"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ruby.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-08-06T03:47:53.000Z","updated_at":"2026-04-20T06:28:37.000Z","dependencies_parsed_at":"2026-04-02T07:09:00.358Z","dependency_job_id":null,"html_url":"https://github.com/ruby/timeout","commit_stats":{"total_commits":166,"total_committers":30,"mean_commits":5.533333333333333,"dds":0.7469879518072289,"last_synced_commit":"2e5a87bacac7937c301cde0c8f14826cf86cfa5c"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/ruby/timeout","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruby","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/sbom","scorecard":{"id":788930,"data":{"date":"2025-08-11","repo":{"name":"github.com/ruby/timeout","commit":"fdc7ec0a195b578d7161471a42b5faa0c7710ef9"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.3,"checks":[{"name":"Code-Review","score":1,"reason":"Found 1/7 approved changesets -- score normalized to 1","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":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":5,"reason":"6 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 5","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/push_gem.yml:21","Info: topLevel 'contents' permission set to 'read': .github/workflows/push_gem.yml:9","Warn: no topLevel permission defined: .github/workflows/test.yml:1"],"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":"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":"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":5,"reason":"dependency not pinned by hash detected -- score normalized to 5","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:7: update your workflow using https://app.stepsecurity.io/secureworkflow/ruby/timeout/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/ruby/timeout/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/ruby/timeout/test.yml/master?enable=pin","Info:   1 out of   2 GitHub-owned GitHubAction dependencies pinned","Info:   3 out of   5 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"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":9,"reason":"license file detected","details":["Info: project has a license file: COPYING:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 25 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:54:16.459Z","repository_id":38198304,"created_at":"2025-08-23T06:54:16.459Z","updated_at":"2025-08-23T06:54:16.459Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32301330,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T09:34:17.070Z","status":"ssl_error","status_checked_at":"2026-04-26T09:34:00.993Z","response_time":129,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"ruby","name":"The Ruby Programming Language","uuid":"210414","kind":"organization","description":"Repositories related to the Ruby Programming language","email":"info@ruby-lang.org","website":"https://www.ruby-lang.org/","location":"Matsue, Japan","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/210414?v=4","repositories_count":171,"last_synced_at":"2023-04-09T03:40:20.875Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/ruby","funding_links":[],"total_stars":41804,"followers":null,"following":null,"created_at":"2022-11-02T16:17:15.462Z","updated_at":"2023-04-09T03:40:20.938Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruby","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruby/repositories"},"tags":[{"name":"v0.6.1","sha":"951e8025ec02cce2d1c9dc5712c1ab37e383bd54","kind":"commit","published_at":"2026-03-09T22:03:33.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.6.1","html_url":"https://github.com/ruby/timeout/releases/tag/v0.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.6.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.6.1/manifests"},{"name":"v0.6.0","sha":"ab79dfff47092008ce08520763c846eba3a3a5f1","kind":"tag","published_at":"2025-12-17T04:23:04.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.6.0","html_url":"https://github.com/ruby/timeout/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.6.0/manifests"},{"name":"v0.5.0","sha":"5dc2cd1b024d53ac943ced89b5356efa87b4fbe3","kind":"tag","published_at":"2025-12-08T03:05:54.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.5.0","html_url":"https://github.com/ruby/timeout/releases/tag/v0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.5.0/manifests"},{"name":"v0.4.4","sha":"f42b47d383f65180dbe3abf45fff6335773da060","kind":"tag","published_at":"2025-10-29T06:49:48.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.4.4","html_url":"https://github.com/ruby/timeout/releases/tag/v0.4.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.4.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.4.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.4.4/manifests"},{"name":"v0.4.3","sha":"607d8c6fbe4d86db1cf22846e89198b47cec7161","kind":"commit","published_at":"2024-12-16T03:53:10.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.4.3","html_url":"https://github.com/ruby/timeout/releases/tag/v0.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.4.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.4.3/manifests"},{"name":"v0.4.2","sha":"2f5252299403e00135b694455fb31a2bded32cd5","kind":"commit","published_at":"2024-11-06T08:26:49.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.4.2","html_url":"https://github.com/ruby/timeout/releases/tag/v0.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.4.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.4.2/manifests"},{"name":"v0.4.1","sha":"a65e49cc31bcdaad892330cdd93ab8e5481e1fc7","kind":"tag","published_at":"2023-11-07T04:56:36.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.4.1","html_url":"https://github.com/ruby/timeout/releases/tag/v0.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.4.1/manifests"},{"name":"v0.4.0","sha":"413194f8d2650c6ca7b2a45b38f8c9aca53ba846","kind":"tag","published_at":"2023-06-23T03:51:58.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.4.0","html_url":"https://github.com/ruby/timeout/releases/tag/v0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.4.0/manifests"},{"name":"v0.3.2","sha":"e1b244810138253d93ea3ac0932c8dbdd8ef8dc6","kind":"tag","published_at":"2023-02-16T00:57:03.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.3.2","html_url":"https://github.com/ruby/timeout/releases/tag/v0.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.3.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.3.2/manifests"},{"name":"v0.3.1","sha":"4941e8c8715706160899443ac706e351d688fa52","kind":"tag","published_at":"2022-12-05T08:13:07.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.3.1","html_url":"https://github.com/ruby/timeout/releases/tag/v0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.3.1/manifests"},{"name":"v0.3.0","sha":"f69f954a945be862179998a44ab9b5140692969b","kind":"tag","published_at":"2022-05-25T09:07:45.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.3.0","html_url":"https://github.com/ruby/timeout/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.3.0/manifests"},{"name":"v0.2.0","sha":"02e792ddd8fa9ed9475c8b5953e281df920cbabc","kind":"tag","published_at":"2021-10-14T11:12:20.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.2.0","html_url":"https://github.com/ruby/timeout/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.2.0/manifests"},{"name":"v0.1.1","sha":"3ec31a5dfc76935622f2566c0ee53bf3e3974af0","kind":"tag","published_at":"2020-12-22T12:16:43.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.1.1","html_url":"https://github.com/ruby/timeout/releases/tag/v0.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.1.1/manifests"},{"name":"v0.1.0","sha":"71175450aed74b2423b970122b808d348edcd4f6","kind":"commit","published_at":"2020-03-26T10:26:57.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.1.0","html_url":"https://github.com/ruby/timeout/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.1.0/manifests"}]},"repo_metadata_updated_at":"2026-04-28T16:07:03.932Z","dependent_packages_count":38,"downloads":304193336,"downloads_period":"total","dependent_repos_count":35095,"rankings":{"downloads":0.20795932248748342,"dependent_repos_count":0.17673754752957704,"dependent_packages_count":0.6701530982036329,"stargazers_count":4.781949353820765,"forks_count":6.230416699189349,"docker_downloads_count":0.018956077653014575,"average":2.014362016480637},"purl":"pkg:gem/timeout","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/rubygems/timeout","docker_dependents_count":2871,"docker_downloads_count":3639839983,"usage_url":"https://repos.ecosyste.ms/usage/rubygems/timeout","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/rubygems/timeout/dependencies","status":null,"funding_links":[],"critical":true,"issue_metadata":{"last_synced_at":"2026-04-27T12:33:21.201Z","issues_count":14,"pull_requests_count":89,"avg_time_to_close_issue":14408985.0,"avg_time_to_close_pull_request":842315.4512195121,"issues_closed_count":9,"pull_requests_closed_count":82,"pull_request_authors_count":22,"issue_authors_count":12,"avg_comments_per_issue":4.857142857142857,"avg_comments_per_pull_request":1.7415730337078652,"merged_pull_requests_count":74,"bot_issues_count":0,"bot_pull_requests_count":33,"past_year_issues_count":0,"past_year_pull_requests_count":32,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":28013.36,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":25,"past_year_pull_request_authors_count":9,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":0.6875,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":18,"past_year_merged_pull_requests_count":24,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/issues","maintainers":[{"login":"eregon","count":8,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/eregon"},{"login":"hsbt","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/hsbt"},{"login":"nobu","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nobu"},{"login":"k0kubun","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/k0kubun"}],"active_maintainers":[{"login":"eregon","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/eregon"},{"login":"k0kubun","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/k0kubun"},{"login":"nobu","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nobu"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/timeout/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/timeout/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/timeout/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/timeout/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/timeout/codemeta","maintainers":[{"uuid":"36956","login":"hsbt","name":null,"email":null,"url":null,"packages_count":178,"html_url":"https://rubygems.org/profiles/hsbt","role":null,"created_at":"2022-11-09T09:54:14.526Z","updated_at":"2022-11-09T09:54:14.526Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/hsbt/packages"}],"registry":{"name":"rubygems.org","url":"https://rubygems.org","ecosystem":"rubygems","default":true,"packages_count":205560,"maintainers_count":68480,"namespaces_count":0,"keywords_count":0,"github":"rubygems","metadata":{"funded_packages_count":7260},"icon_url":"https://github.com/rubygems.png","created_at":"2022-04-04T15:19:23.446Z","updated_at":"2026-04-03T06:42:17.024Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/namespaces"}},{"id":12342581,"name":"timeout","ecosystem":"rubygems","description":"Auto-terminate potentially long-running operations in Ruby.","homepage":"https://github.com/ruby/timeout","licenses":"Ruby,BSD-2-Clause","normalized_licenses":["Ruby","BSD-2-Clause"],"repository_url":"https://github.com/ruby/timeout","keywords_array":[],"namespace":null,"versions_count":14,"first_release_published_at":"2020-04-07T01:06:47.341Z","latest_release_published_at":"2026-03-09T22:04:12.692Z","latest_release_number":"0.6.1","last_synced_at":"2026-04-30T01:30:53.951Z","created_at":"2025-10-07T06:30:51.123Z","updated_at":"2026-04-30T01:32:39.641Z","registry_url":"https://gem.coop/gems/timeout","install_command":"gem install timeout -s https://gem.coop","documentation_url":"http://www.rubydoc.info/gems/timeout/","metadata":{"funding":null},"repo_metadata":{"id":38198304,"uuid":"200772043","full_name":"ruby/timeout","owner":"ruby","description":"Timeout provides a way to auto-terminate a potentially long-running operation if it hasn't finished in a fixed amount of time.","archived":false,"fork":false,"pushed_at":"2026-04-20T06:28:34.000Z","size":239,"stargazers_count":155,"open_issues_count":2,"forks_count":32,"subscribers_count":34,"default_branch":"master","last_synced_at":"2026-04-25T18:04:48.133Z","etag":null,"topics":["ruby"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ruby.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-08-06T03:47:53.000Z","updated_at":"2026-04-20T06:28:37.000Z","dependencies_parsed_at":"2026-04-02T07:09:00.358Z","dependency_job_id":null,"html_url":"https://github.com/ruby/timeout","commit_stats":{"total_commits":166,"total_committers":30,"mean_commits":5.533333333333333,"dds":0.7469879518072289,"last_synced_commit":"2e5a87bacac7937c301cde0c8f14826cf86cfa5c"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/ruby/timeout","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruby","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/sbom","scorecard":{"id":788930,"data":{"date":"2025-08-11","repo":{"name":"github.com/ruby/timeout","commit":"fdc7ec0a195b578d7161471a42b5faa0c7710ef9"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.3,"checks":[{"name":"Code-Review","score":1,"reason":"Found 1/7 approved changesets -- score normalized to 1","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":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":5,"reason":"6 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 5","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/push_gem.yml:21","Info: topLevel 'contents' permission set to 'read': .github/workflows/push_gem.yml:9","Warn: no topLevel permission defined: .github/workflows/test.yml:1"],"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":"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":"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":5,"reason":"dependency not pinned by hash detected -- score normalized to 5","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:7: update your workflow using https://app.stepsecurity.io/secureworkflow/ruby/timeout/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/ruby/timeout/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/ruby/timeout/test.yml/master?enable=pin","Info:   1 out of   2 GitHub-owned GitHubAction dependencies pinned","Info:   3 out of   5 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"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":9,"reason":"license file detected","details":["Info: project has a license file: COPYING:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 25 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:54:16.459Z","repository_id":38198304,"created_at":"2025-08-23T06:54:16.459Z","updated_at":"2025-08-23T06:54:16.459Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32301330,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T09:34:17.070Z","status":"ssl_error","status_checked_at":"2026-04-26T09:34:00.993Z","response_time":129,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"ruby","name":"The Ruby Programming Language","uuid":"210414","kind":"organization","description":"Repositories related to the Ruby Programming language","email":"info@ruby-lang.org","website":"https://www.ruby-lang.org/","location":"Matsue, Japan","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/210414?v=4","repositories_count":171,"last_synced_at":"2023-04-09T03:40:20.875Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/ruby","funding_links":[],"total_stars":41804,"followers":null,"following":null,"created_at":"2022-11-02T16:17:15.462Z","updated_at":"2023-04-09T03:40:20.938Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruby","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruby/repositories"},"tags":[{"name":"v0.6.1","sha":"951e8025ec02cce2d1c9dc5712c1ab37e383bd54","kind":"commit","published_at":"2026-03-09T22:03:33.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.6.1","html_url":"https://github.com/ruby/timeout/releases/tag/v0.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.6.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.6.1/manifests"},{"name":"v0.6.0","sha":"ab79dfff47092008ce08520763c846eba3a3a5f1","kind":"tag","published_at":"2025-12-17T04:23:04.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.6.0","html_url":"https://github.com/ruby/timeout/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.6.0/manifests"},{"name":"v0.5.0","sha":"5dc2cd1b024d53ac943ced89b5356efa87b4fbe3","kind":"tag","published_at":"2025-12-08T03:05:54.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.5.0","html_url":"https://github.com/ruby/timeout/releases/tag/v0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.5.0/manifests"},{"name":"v0.4.4","sha":"f42b47d383f65180dbe3abf45fff6335773da060","kind":"tag","published_at":"2025-10-29T06:49:48.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.4.4","html_url":"https://github.com/ruby/timeout/releases/tag/v0.4.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.4.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.4.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.4.4/manifests"},{"name":"v0.4.3","sha":"607d8c6fbe4d86db1cf22846e89198b47cec7161","kind":"commit","published_at":"2024-12-16T03:53:10.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.4.3","html_url":"https://github.com/ruby/timeout/releases/tag/v0.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.4.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.4.3/manifests"},{"name":"v0.4.2","sha":"2f5252299403e00135b694455fb31a2bded32cd5","kind":"commit","published_at":"2024-11-06T08:26:49.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.4.2","html_url":"https://github.com/ruby/timeout/releases/tag/v0.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.4.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.4.2/manifests"},{"name":"v0.4.1","sha":"a65e49cc31bcdaad892330cdd93ab8e5481e1fc7","kind":"tag","published_at":"2023-11-07T04:56:36.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.4.1","html_url":"https://github.com/ruby/timeout/releases/tag/v0.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.4.1/manifests"},{"name":"v0.4.0","sha":"413194f8d2650c6ca7b2a45b38f8c9aca53ba846","kind":"tag","published_at":"2023-06-23T03:51:58.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.4.0","html_url":"https://github.com/ruby/timeout/releases/tag/v0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.4.0/manifests"},{"name":"v0.3.2","sha":"e1b244810138253d93ea3ac0932c8dbdd8ef8dc6","kind":"tag","published_at":"2023-02-16T00:57:03.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.3.2","html_url":"https://github.com/ruby/timeout/releases/tag/v0.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.3.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.3.2/manifests"},{"name":"v0.3.1","sha":"4941e8c8715706160899443ac706e351d688fa52","kind":"tag","published_at":"2022-12-05T08:13:07.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.3.1","html_url":"https://github.com/ruby/timeout/releases/tag/v0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.3.1/manifests"},{"name":"v0.3.0","sha":"f69f954a945be862179998a44ab9b5140692969b","kind":"tag","published_at":"2022-05-25T09:07:45.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.3.0","html_url":"https://github.com/ruby/timeout/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.3.0/manifests"},{"name":"v0.2.0","sha":"02e792ddd8fa9ed9475c8b5953e281df920cbabc","kind":"tag","published_at":"2021-10-14T11:12:20.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.2.0","html_url":"https://github.com/ruby/timeout/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.2.0/manifests"},{"name":"v0.1.1","sha":"3ec31a5dfc76935622f2566c0ee53bf3e3974af0","kind":"tag","published_at":"2020-12-22T12:16:43.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.1.1","html_url":"https://github.com/ruby/timeout/releases/tag/v0.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.1.1/manifests"},{"name":"v0.1.0","sha":"71175450aed74b2423b970122b808d348edcd4f6","kind":"commit","published_at":"2020-03-26T10:26:57.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.1.0","html_url":"https://github.com/ruby/timeout/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.1.0/manifests"}]},"repo_metadata_updated_at":"2026-04-30T01:32:39.613Z","dependent_packages_count":0,"downloads":304872187,"downloads_period":"total","dependent_repos_count":0,"rankings":{"downloads":0.10326222116497086,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":0.017300476844393023,"average":0.03014067450234097},"purl":"pkg:gem/timeout?repository_url=https://gem.coop","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/rubygems/timeout","docker_dependents_count":2871,"docker_downloads_count":3639839983,"usage_url":"https://repos.ecosyste.ms/usage/rubygems/timeout","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/rubygems/timeout/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-04-27T12:33:21.201Z","issues_count":14,"pull_requests_count":89,"avg_time_to_close_issue":14408985.0,"avg_time_to_close_pull_request":842315.4512195121,"issues_closed_count":9,"pull_requests_closed_count":82,"pull_request_authors_count":22,"issue_authors_count":12,"avg_comments_per_issue":4.857142857142857,"avg_comments_per_pull_request":1.7415730337078652,"merged_pull_requests_count":74,"bot_issues_count":0,"bot_pull_requests_count":33,"past_year_issues_count":0,"past_year_pull_requests_count":32,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":28013.36,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":25,"past_year_pull_request_authors_count":9,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":0.6875,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":18,"past_year_merged_pull_requests_count":24,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/issues","maintainers":[{"login":"eregon","count":8,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/eregon"},{"login":"hsbt","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/hsbt"},{"login":"nobu","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nobu"},{"login":"k0kubun","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/k0kubun"}],"active_maintainers":[{"login":"eregon","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/eregon"},{"login":"k0kubun","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/k0kubun"},{"login":"nobu","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nobu"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/timeout/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/timeout/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/timeout/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/timeout/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/timeout/codemeta","maintainers":[{"uuid":"36956","login":"hsbt","name":null,"email":null,"url":null,"packages_count":179,"html_url":"https://gem.coop/profiles/hsbt","role":null,"created_at":"2025-10-09T23:39:16.160Z","updated_at":"2025-10-09T23:39:16.160Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/hsbt/packages"}],"registry":{"name":"gem.coop","url":"https://gem.coop","ecosystem":"rubygems","default":false,"packages_count":190413,"maintainers_count":67488,"namespaces_count":0,"keywords_count":0,"github":"gem-coop","metadata":{"funded_packages_count":6507},"icon_url":"https://github.com/gem-coop.png","created_at":"2025-10-06T17:24:20.932Z","updated_at":"2026-04-03T06:45:05.763Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/namespaces"}},{"id":8614824,"name":"github.com/ruby/timeout","ecosystem":"go","description":null,"homepage":null,"licenses":"other","normalized_licenses":["Other"],"repository_url":"https://github.com/ruby/timeout","keywords_array":[],"namespace":null,"versions_count":14,"first_release_published_at":"2023-12-02T02:15:08.425Z","latest_release_published_at":"2026-03-09T22:03:33.000Z","latest_release_number":"v0.6.1","last_synced_at":"2026-04-30T01:39:01.944Z","created_at":"2023-12-02T02:15:05.074Z","updated_at":"2026-04-30T01:39:01.944Z","registry_url":"https://pkg.go.dev/github.com/ruby/timeout","install_command":"go get github.com/ruby/timeout","documentation_url":"https://pkg.go.dev/github.com/ruby/timeout#section-documentation","metadata":{},"repo_metadata":{"id":38198304,"uuid":"200772043","full_name":"ruby/timeout","owner":"ruby","description":"Timeout provides a way to auto-terminate a potentially long-running operation if it hasn't finished in a fixed amount of time.","archived":false,"fork":false,"pushed_at":"2025-10-29T06:49:58.000Z","size":188,"stargazers_count":149,"open_issues_count":6,"forks_count":25,"subscribers_count":34,"default_branch":"master","last_synced_at":"2025-11-07T01:22:43.692Z","etag":null,"topics":["ruby"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ruby.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-08-06T03:47:53.000Z","updated_at":"2025-10-29T06:49:59.000Z","dependencies_parsed_at":"2023-12-21T01:25:59.221Z","dependency_job_id":"3bb8e640-71bb-462b-aa8c-2217de47bfbf","html_url":"https://github.com/ruby/timeout","commit_stats":{"total_commits":166,"total_committers":30,"mean_commits":5.533333333333333,"dds":0.7469879518072289,"last_synced_commit":"2e5a87bacac7937c301cde0c8f14826cf86cfa5c"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/ruby/timeout","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruby","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/sbom","scorecard":{"id":788930,"data":{"date":"2025-08-11","repo":{"name":"github.com/ruby/timeout","commit":"fdc7ec0a195b578d7161471a42b5faa0c7710ef9"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.3,"checks":[{"name":"Code-Review","score":1,"reason":"Found 1/7 approved changesets -- score normalized to 1","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":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":5,"reason":"6 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 5","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/push_gem.yml:21","Info: topLevel 'contents' permission set to 'read': .github/workflows/push_gem.yml:9","Warn: no topLevel permission defined: .github/workflows/test.yml:1"],"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":"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":"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":5,"reason":"dependency not pinned by hash detected -- score normalized to 5","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:7: update your workflow using https://app.stepsecurity.io/secureworkflow/ruby/timeout/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/ruby/timeout/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/ruby/timeout/test.yml/master?enable=pin","Info:   1 out of   2 GitHub-owned GitHubAction dependencies pinned","Info:   3 out of   5 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"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":9,"reason":"license file detected","details":["Info: project has a license file: COPYING:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 25 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:54:16.459Z","repository_id":38198304,"created_at":"2025-08-23T06:54:16.459Z","updated_at":"2025-08-23T06:54:16.459Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":283983990,"owners_count":26927577,"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-12T02:00:06.336Z","response_time":59,"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","name":"The Ruby Programming Language","uuid":"210414","kind":"organization","description":"Repositories related to the Ruby Programming language","email":"info@ruby-lang.org","website":"https://www.ruby-lang.org/","location":"Matsue, Japan","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/210414?v=4","repositories_count":171,"last_synced_at":"2023-04-09T03:40:20.875Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/ruby","funding_links":[],"total_stars":41804,"followers":null,"following":null,"created_at":"2022-11-02T16:17:15.462Z","updated_at":"2023-04-09T03:40:20.938Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruby","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruby/repositories"},"tags":[{"name":"v0.4.4","sha":"f42b47d383f65180dbe3abf45fff6335773da060","kind":"tag","published_at":"2025-10-29T06:49:48.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.4.4","html_url":"https://github.com/ruby/timeout/releases/tag/v0.4.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.4.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.4.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.4.4/manifests"},{"name":"v0.4.3","sha":"607d8c6fbe4d86db1cf22846e89198b47cec7161","kind":"commit","published_at":"2024-12-16T03:53:10.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.4.3","html_url":"https://github.com/ruby/timeout/releases/tag/v0.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.4.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.4.3/manifests"},{"name":"v0.4.2","sha":"2f5252299403e00135b694455fb31a2bded32cd5","kind":"commit","published_at":"2024-11-06T08:26:49.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.4.2","html_url":"https://github.com/ruby/timeout/releases/tag/v0.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.4.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.4.2/manifests"},{"name":"v0.4.1","sha":"a65e49cc31bcdaad892330cdd93ab8e5481e1fc7","kind":"tag","published_at":"2023-11-07T04:56:36.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.4.1","html_url":"https://github.com/ruby/timeout/releases/tag/v0.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.4.1/manifests"},{"name":"v0.4.0","sha":"413194f8d2650c6ca7b2a45b38f8c9aca53ba846","kind":"tag","published_at":"2023-06-23T03:51:58.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.4.0","html_url":"https://github.com/ruby/timeout/releases/tag/v0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.4.0/manifests"},{"name":"v0.3.2","sha":"e1b244810138253d93ea3ac0932c8dbdd8ef8dc6","kind":"tag","published_at":"2023-02-16T00:57:03.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.3.2","html_url":"https://github.com/ruby/timeout/releases/tag/v0.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.3.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.3.2/manifests"},{"name":"v0.3.1","sha":"4941e8c8715706160899443ac706e351d688fa52","kind":"tag","published_at":"2022-12-05T08:13:07.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.3.1","html_url":"https://github.com/ruby/timeout/releases/tag/v0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.3.1/manifests"},{"name":"v0.3.0","sha":"f69f954a945be862179998a44ab9b5140692969b","kind":"tag","published_at":"2022-05-25T09:07:45.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.3.0","html_url":"https://github.com/ruby/timeout/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.3.0/manifests"},{"name":"v0.2.0","sha":"02e792ddd8fa9ed9475c8b5953e281df920cbabc","kind":"tag","published_at":"2021-10-14T11:12:20.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.2.0","html_url":"https://github.com/ruby/timeout/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.2.0/manifests"},{"name":"v0.1.1","sha":"3ec31a5dfc76935622f2566c0ee53bf3e3974af0","kind":"tag","published_at":"2020-12-22T12:16:43.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.1.1","html_url":"https://github.com/ruby/timeout/releases/tag/v0.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.1.1/manifests"},{"name":"v0.1.0","sha":"71175450aed74b2423b970122b808d348edcd4f6","kind":"commit","published_at":"2020-03-26T10:26:57.000Z","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/v0.1.0","html_url":"https://github.com/ruby/timeout/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ruby/timeout@v0.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags/v0.1.0/manifests"}]},"repo_metadata_updated_at":"2025-11-14T07:07:43.652Z","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":4.406654336379738,"forks_count":5.603683413687824,"docker_downloads_count":null,"average":7.596915151082852},"purl":"pkg:golang/github.com/ruby/timeout","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/ruby/timeout","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/ruby/timeout","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/ruby/timeout/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-11-11T09:31:20.169Z","issues_count":14,"pull_requests_count":71,"avg_time_to_close_issue":12666723.25,"avg_time_to_close_pull_request":1025817.1641791045,"issues_closed_count":8,"pull_requests_closed_count":67,"pull_request_authors_count":18,"issue_authors_count":12,"avg_comments_per_issue":3.857142857142857,"avg_comments_per_pull_request":1.9014084507042255,"merged_pull_requests_count":60,"bot_issues_count":0,"bot_pull_requests_count":25,"past_year_issues_count":1,"past_year_pull_requests_count":27,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":38355.21739130435,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":23,"past_year_pull_request_authors_count":4,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":0.0,"past_year_avg_comments_per_pull_request":0.07407407407407407,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":23,"past_year_merged_pull_requests_count":23,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/issues","maintainers":[{"login":"hsbt","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/hsbt"},{"login":"eregon","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/eregon"},{"login":"nobu","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nobu"},{"login":"k0kubun","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/k0kubun"}],"active_maintainers":[{"login":"eregon","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/eregon"},{"login":"k0kubun","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/k0kubun"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fruby%2Ftimeout/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fruby%2Ftimeout/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fruby%2Ftimeout/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fruby%2Ftimeout/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fruby%2Ftimeout/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":2119755,"maintainers_count":0,"namespaces_count":782439,"keywords_count":112823,"github":"golang","metadata":{"funded_packages_count":53495},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2026-04-19T05:14:45.920Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/namespaces"}},{"id":13950441,"name":"ruby-timeout","ecosystem":"guix","description":"Timeout library for Ruby","homepage":"https://github.com/ruby/timeout","licenses":"bsd-2","normalized_licenses":["BSD-1-Clause"],"repository_url":"https://github.com/ruby/timeout","keywords_array":[],"namespace":null,"versions_count":1,"first_release_published_at":"2026-03-02T18:56:44.439Z","latest_release_published_at":"2026-03-02T18:56:44.439Z","latest_release_number":"0.4.3","last_synced_at":"2026-04-27T16:17:28.618Z","created_at":"2026-03-02T18:56:44.244Z","updated_at":"2026-04-27T16:17:31.182Z","registry_url":"https://packages.guix.gnu.org/packages/ruby-timeout/0.4.3/","install_command":"guix install ruby-timeout","documentation_url":"https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/ruby-xyz.scm#n14760","metadata":{"location":"gnu/packages/ruby-xyz.scm:14760","variable_name":"ruby-timeout"},"repo_metadata":{"id":38198304,"uuid":"200772043","full_name":"ruby/timeout","owner":"ruby","description":"Timeout provides a way to auto-terminate a potentially long-running operation if it hasn't finished in a fixed amount of time.","archived":false,"fork":false,"pushed_at":"2026-03-23T07:40:50.000Z","size":232,"stargazers_count":155,"open_issues_count":2,"forks_count":32,"subscribers_count":34,"default_branch":"master","last_synced_at":"2026-04-02T12:10:57.817Z","etag":null,"topics":["ruby"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ruby.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-08-06T03:47:53.000Z","updated_at":"2026-03-27T18:03:37.000Z","dependencies_parsed_at":"2026-04-02T07:09:00.358Z","dependency_job_id":null,"html_url":"https://github.com/ruby/timeout","commit_stats":{"total_commits":166,"total_committers":30,"mean_commits":5.533333333333333,"dds":0.7469879518072289,"last_synced_commit":"2e5a87bacac7937c301cde0c8f14826cf86cfa5c"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/ruby/timeout","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruby","download_url":"https://codeload.github.com/ruby/timeout/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/sbom","scorecard":{"id":788930,"data":{"date":"2025-08-11","repo":{"name":"github.com/ruby/timeout","commit":"fdc7ec0a195b578d7161471a42b5faa0c7710ef9"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.3,"checks":[{"name":"Code-Review","score":1,"reason":"Found 1/7 approved changesets -- score normalized to 1","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":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":5,"reason":"6 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 5","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/push_gem.yml:21","Info: topLevel 'contents' permission set to 'read': .github/workflows/push_gem.yml:9","Warn: no topLevel permission defined: .github/workflows/test.yml:1"],"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":"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":"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":5,"reason":"dependency not pinned by hash detected -- score normalized to 5","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:7: update your workflow using https://app.stepsecurity.io/secureworkflow/ruby/timeout/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/ruby/timeout/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/ruby/timeout/test.yml/master?enable=pin","Info:   1 out of   2 GitHub-owned GitHubAction dependencies pinned","Info:   3 out of   5 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"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":9,"reason":"license file detected","details":["Info: project has a license file: COPYING:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 25 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:54:16.459Z","repository_id":38198304,"created_at":"2025-08-23T06:54:16.459Z","updated_at":"2025-08-23T06:54:16.459Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31314962,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T12:59:32.332Z","status":"ssl_error","status_checked_at":"2026-04-02T12:54:48.875Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"repo_metadata_updated_at":"2026-04-27T16:17:31.154Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:guix/ruby-timeout","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/guix/ruby-timeout","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/guix/ruby-timeout","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/guix/ruby-timeout/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/ruby-timeout/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/ruby-timeout/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/ruby-timeout/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/ruby-timeout/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/ruby-timeout/codemeta","maintainers":[],"registry":{"name":"guix","url":"https://guix.gnu.org","ecosystem":"guix","default":true,"packages_count":31189,"maintainers_count":0,"namespaces_count":0,"keywords_count":0,"github":"guix-mirror","metadata":{"funded_packages_count":286},"icon_url":"https://github.com/guix-mirror.png","created_at":"2026-03-02T16:23:46.981Z","updated_at":"2026-04-03T06:23:21.396Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/guix/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/guix/namespaces"}}],"commits":{"id":922552,"full_name":"ruby/timeout","default_branch":"master","total_commits":227,"total_committers":34,"total_bot_commits":31,"total_bot_committers":1,"mean_commits":6.676470588235294,"dds":0.8061674008810573,"past_year_total_commits":56,"past_year_total_committers":13,"past_year_total_bot_commits":21,"past_year_total_bot_committers":1,"past_year_mean_commits":4.3076923076923075,"past_year_dds":0.625,"last_synced_at":"2026-04-30T01:38:30.648Z","last_synced_commit":"e10aea4e8267a889df35ff2fbb08a91a126f3aed","created_at":"2023-03-09T23:55:03.023Z","updated_at":"2026-04-30T01:38:25.722Z","committers":[{"name":"nobu","email":"nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e","login":"nobu","count":44},{"name":"Hiroshi SHIBATA","email":"hsbt@ruby-lang.org","login":"hsbt","count":41},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":31},{"name":"Benoit Daloze","email":"eregontp@gmail.com","login":"eregon","count":23},{"name":"matz","email":"matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e","login":null,"count":12},{"name":"John Bachir","email":"jjb","login":"jjb","count":9},{"name":"CosmicOppai","email":"cosmicoppai@protonmail.com","login":"Cosmicoppai","count":8},{"name":"kazu","email":"kazu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e","login":"znz","count":7},{"name":"Samuel Williams","email":"samuel.williams@oriontransfer.co.nz","login":"ioquatix","count":6},{"name":"Jeremy Evans","email":"code@jeremyevans.net","login":"jeremyevans","count":5},{"name":"Jean Boussier","email":"jean.boussier@gmail.com","login":"byroot","count":4},{"name":"akr","email":"akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e","login":"akr","count":4},{"name":"Olle Jonsson","email":"olle.jonsson@gmail.com","login":"olleolleolle","count":4},{"name":"kosaki","email":"kosaki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e","login":null,"count":3},{"name":"drbrain","email":"drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e","login":"drbrain","count":3},{"name":"Koichi Sasada","email":"ko1@atdot.net","login":"ko1","count":3},{"name":"Takashi Kokubun","email":"takashikkbn@gmail.com","login":"k0kubun","count":2},{"name":"zzak","email":"zzak@b2dd03c8-39d4-4d8f-98ff-823fe69b080e","login":null,"count":2},{"name":"Étienne Barrié","email":"etienne.barrie@gmail.com","login":"etiennebarrie","count":1},{"name":"tarui","email":"tarui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e","login":"tarui","count":1},{"name":"aamine","email":"aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e","login":null,"count":1},{"name":"ryan","email":"ryan@b2dd03c8-39d4-4d8f-98ff-823fe69b080e","login":null,"count":1},{"name":"t-mangoe","email":"m.takashi.xpair@gmail.com","login":"t-mangoe","count":1},{"name":"shyouhei","email":"shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e","login":"shyouhei","count":1},{"name":"rm155","email":"rohitmenon@verizon.net","login":"rm155","count":1},{"name":"naruse","email":"naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e","login":"nurse","count":1},{"name":"Yusuke Endoh","email":"mame@ruby-lang.org","login":"mame","count":1},{"name":"Ryunosuke Sato","email":"tricknotes.rs@gmail.com","login":"tricknotes","count":1},{"name":"Rick Blommers","email":"rick@blommersit.nl","login":"gamecreature","count":1},{"name":"Masafumi Koba","email":"473530+ybiquitous","login":"ybiquitous","count":1},{"name":"Mark Young","email":"mark.young@atg.auto","login":"mark-young-atg","count":1},{"name":"Luke Gruber","email":"luke.gruber@shopify.com","login":"luke-gruber","count":1},{"name":"Lars Kanis","email":"lars@greiz-reinsdorf.de","login":"larskanis","count":1},{"name":"JP Camara","email":"jp@jpcamara.com","login":"jpcamara","count":1}],"past_year_committers":[{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":21},{"name":"Benoit Daloze","email":"eregontp@gmail.com","login":"eregon","count":15},{"name":"Hiroshi SHIBATA","email":"hsbt@ruby-lang.org","login":"hsbt","count":6},{"name":"Samuel Williams","email":"samuel.williams@oriontransfer.co.nz","login":"ioquatix","count":2},{"name":"Nobuyoshi Nakada","email":"nobu@ruby-lang.org","login":"nobu","count":2},{"name":"Koichi Sasada","email":"ko1@atdot.net","login":"ko1","count":2},{"name":"Jean Boussier","email":"jean.boussier@gmail.com","login":"byroot","count":2},{"name":"Étienne Barrié","email":"etienne.barrie@gmail.com","login":"etiennebarrie","count":1},{"name":"t-mangoe","email":"m.takashi.xpair@gmail.com","login":"t-mangoe","count":1},{"name":"Takashi Kokubun","email":"takashikkbn@gmail.com","login":"k0kubun","count":1},{"name":"Olle Jonsson","email":"olle.jonsson@auctionet.com","login":"olleolleolle","count":1},{"name":"Masafumi Koba","email":"473530+ybiquitous","login":"ybiquitous","count":1},{"name":"Luke Gruber","email":"luke.gruber@shopify.com","login":"luke-gruber","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-30T00:00:07.427Z","repositories_count":6223650,"commits_count":899978483,"contributors_count":34901312,"owners_count":1147619,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"ruby/timeout","html_url":"https://github.com/ruby/timeout","last_synced_at":"2026-04-27T12:33:21.201Z","status":"active","issues_count":14,"pull_requests_count":89,"avg_time_to_close_issue":14408985.0,"avg_time_to_close_pull_request":842315.4512195121,"issues_closed_count":9,"pull_requests_closed_count":82,"pull_request_authors_count":22,"issue_authors_count":12,"avg_comments_per_issue":4.857142857142857,"avg_comments_per_pull_request":1.7415730337078652,"merged_pull_requests_count":74,"bot_issues_count":0,"bot_pull_requests_count":33,"past_year_issues_count":0,"past_year_pull_requests_count":32,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":28013.36,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":25,"past_year_pull_request_authors_count":9,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":0.6875,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":18,"past_year_merged_pull_requests_count":24,"created_at":"2023-05-12T18:24:32.611Z","updated_at":"2026-04-27T12:33:21.201Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruby%2Ftimeout/issues","issue_labels_count":{},"pull_request_labels_count":{"dependencies":33,"github_actions":20,"documentation":1},"issue_author_associations_count":{"NONE":10,"CONTRIBUTOR":4},"pull_request_author_associations_count":{"CONTRIBUTOR":63,"MEMBER":18,"NONE":8},"issue_authors":{"jjb":3,"akihikodaki":1,"docu-tyler-harris":1,"gamecreature":1,"headius":1,"voxik":1,"gaffneyc":1,"trogd0r":1,"donnygitsome":1,"HoneyryderChuck":1,"jsvd":1,"ShockwaveNN":1},"pull_request_authors":{"dependabot[bot]":33,"jjb":11,"eregon":8,"olleolleolle":5,"hsbt":4,"nobu":4,"ko1":2,"joelibaceta":2,"headius":2,"jpcamara":2,"casperisfine":2,"jeremyevans":2,"k0kubun":2,"Cosmicoppai":2,"gamecreature":1,"luke-gruber":1,"rm155":1,"mark-young-atg":1,"larskanis":1,"ybiquitous":1,"etiennebarrie":1,"tricknotes":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-28T00:00:08.715Z","repositories_count":14440413,"issues_count":34381194,"pull_requests_count":112705467,"authors_count":11247704,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{"dependencies":16,"github_actions":16},"past_year_issue_author_associations_count":{},"past_year_pull_request_author_associations_count":{"CONTRIBUTOR":22,"MEMBER":8},"past_year_issue_authors":{},"past_year_pull_request_authors":{"dependabot[bot]":16,"eregon":6,"ko1":2,"etiennebarrie":1,"k0kubun":1,"luke-gruber":1,"nobu":1,"olleolleolle":1,"ybiquitous":1},"maintainers":[{"login":"eregon","count":8,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/eregon"},{"login":"hsbt","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/hsbt"},{"login":"nobu","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nobu"},{"login":"k0kubun","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/k0kubun"}],"active_maintainers":[{"login":"eregon","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/eregon"},{"login":"k0kubun","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/k0kubun"},{"login":"nobu","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nobu"}]},"events":{"total":{"ReleaseEvent":6,"DeleteEvent":21,"MemberEvent":1,"PullRequestEvent":50,"ForkEvent":3,"IssuesEvent":8,"WatchEvent":4,"IssueCommentEvent":20,"PushEvent":40,"PullRequestReviewCommentEvent":13,"PullRequestReviewEvent":24,"CreateEvent":24},"last_year":{"ReleaseEvent":4,"DeleteEvent":14,"PullRequestEvent":36,"IssuesEvent":5,"IssueCommentEvent":10,"PushEvent":27,"PullRequestReviewEvent":17,"PullRequestReviewCommentEvent":7,"CreateEvent":15}},"keywords":["ruby"],"dependencies":[{"ecosystem":"rubygems","filepath":"Gemfile","sha":null,"kind":"manifest","created_at":"2022-07-12T01:20:01.661Z","updated_at":"2022-07-12T01:20:01.661Z","repository_link":"https://github.com/ruby/timeout/blob/master/Gemfile","dependencies":[{"id":143508316,"package_name":"bundler","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":143508317,"package_name":"rake","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":143508318,"package_name":"test-unit","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/test.yml","sha":null,"kind":"manifest","created_at":"2023-02-08T21:15:19.859Z","updated_at":"2023-02-08T21:15:19.859Z","repository_link":"https://github.com/ruby/timeout/blob/master/.github/workflows/test.yml","dependencies":[{"id":7468301840,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":7468301841,"package_name":"ruby/setup-ruby","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"rubygems","filepath":"timeout.gemspec","sha":null,"kind":"manifest","created_at":"2023-11-08T06:24:21.889Z","updated_at":"2023-11-08T06:24:21.889Z","repository_link":"https://github.com/ruby/timeout/blob/master/timeout.gemspec","dependencies":[]},{"ecosystem":"actions","filepath":".github/workflows/sync-ruby.yml","sha":null,"kind":"manifest","created_at":"2026-01-12T13:03:48.201Z","updated_at":"2026-01-12T13:03:48.201Z","repository_link":"https://github.com/ruby/timeout/blob/master/.github/workflows/sync-ruby.yml","dependencies":[{"id":25795358577,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v6","direct":true,"kind":"composite","optional":false},{"id":25795358578,"package_name":"actions/create-github-app-token","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":25795358579,"package_name":"convictional/trigger-workflow-and-wait","ecosystem":"actions","requirements":"v1.6.5","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/push_gem.yml","sha":null,"kind":"manifest","created_at":"2026-01-12T13:03:48.070Z","updated_at":"2026-01-12T13:03:48.070Z","repository_link":"https://github.com/ruby/timeout/blob/master/.github/workflows/push_gem.yml","dependencies":[{"id":25795358572,"package_name":"step-security/harden-runner","ecosystem":"actions","requirements":"20cf305ff2072d973412fa9b1e3a4f227bda3c76","direct":true,"kind":"composite","optional":false},{"id":25795358573,"package_name":"actions/checkout","ecosystem":"actions","requirements":"1af3b93b6815bc44a9784bd300feb67ff0d1eeb3","direct":true,"kind":"composite","optional":false},{"id":25795358574,"package_name":"ruby/setup-ruby","ecosystem":"actions","requirements":"d5126b9b3579e429dd52e51e68624dda2e05be25","direct":true,"kind":"composite","optional":false},{"id":25795358575,"package_name":"rubygems/release-gem","ecosystem":"actions","requirements":"1c162a739e8b4cb21a676e97b087e8268d8fc40b","direct":true,"kind":"composite","optional":false}]}],"score":31.371314470545613,"created_at":"2024-12-15T21:38:07.443Z","updated_at":"2026-04-30T17:00:31.511Z","avatar_url":"https://github.com/ruby.png","language":"Ruby","monthly_downloads":0,"readme":"# Timeout\n\nTimeout provides a way to auto-terminate a potentially long-running\noperation if it hasn't finished in a fixed amount of time.\n\n## Installation\n\nAdd this line to your application's Gemfile:\n\n```ruby\ngem 'timeout'\n```\n\nAnd then execute:\n\n    $ bundle\n\nOr install it yourself as:\n\n    $ gem install timeout\n\n## Usage\n\n```ruby\nrequire 'timeout'\nstatus = Timeout.timeout(5) {\n  # Something that should be interrupted if it takes more than 5 seconds...\n}\n```\n\n## Development\n\nAfter checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.\n\nTo install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).\n\n## Contributing\n\nBug reports and pull requests are welcome on GitHub at https://github.com/ruby/timeout.\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["rubygems","repl","webrick","debugger","bigdecimal","debugging-tool","documentation-tool","strscan","activerecord","activejob"],"project_url":"https://ruby.ecosyste.ms/api/v1/projects/260","html_url":"https://ruby.ecosyste.ms/projects/260"}