{"id":310,"name":null,"description":"A very fast \u0026 simple Ruby web server","url":"https://github.com/macournoyer/thin","last_synced_at":"2026-08-16T00:01:39.977Z","repository":{"id":41207598,"uuid":"68","full_name":"macournoyer/thin","owner":"macournoyer","description":"A very fast \u0026 simple Ruby web server","archived":true,"fork":false,"pushed_at":"2026-07-15T19:34:32.000Z","size":2054,"stargazers_count":2275,"open_issues_count":21,"forks_count":344,"subscribers_count":49,"default_branch":"master","last_synced_at":"2026-08-05T15:01:23.616Z","etag":null,"topics":["rack","rails","ruby","server","thin","web-server"],"latest_commit_sha":null,"homepage":"https://rubygems.org/gems/thin","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/macournoyer.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":".github/FUNDING.yml","license":"license.md","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},"funding":{"custom":"https://github.com/socketry/community/#funding","github":"ioquatix"}},"created_at":"2008-01-19T05:39:04.000Z","updated_at":"2026-08-02T14:13:11.000Z","dependencies_parsed_at":"2023-02-16T23:15:17.255Z","dependency_job_id":"577acd28-56e2-42e6-b132-6375f5e0eed3","html_url":"https://github.com/macournoyer/thin","commit_stats":{"total_commits":831,"total_committers":111,"mean_commits":7.486486486486487,"dds":0.4452466907340553,"last_synced_commit":"3f375389d29deae252e03080b07a1f10aa60d957"},"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"purl":"pkg:github/macournoyer/thin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/macournoyer","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/sbom","scorecard":{"id":609819,"data":{"date":"2025-08-11","repo":{"name":"github.com/macournoyer/thin","commit":"84a5188612d84bcf5c6ad1f1c27c750645917f5c"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.7,"checks":[{"name":"Maintained","score":10,"reason":"9 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":4,"reason":"Found 9/20 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: topLevel 'contents' permission set to 'read': .github/workflows/test.yml:12","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Info: Possibly incomplete results: error parsing shell code: \u003e must be followed by a word: lib/thin/controllers/service.sh.erb:0","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:70: update your workflow using https://app.stepsecurity.io/secureworkflow/macournoyer/thin/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:72: update your workflow using https://app.stepsecurity.io/secureworkflow/macournoyer/thin/test.yml/master?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"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: license.md: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":"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 23 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-21T02:22:13.197Z","repository_id":41207598,"created_at":"2025-08-21T02:22:13.197Z","updated_at":"2025-08-21T02:22:13.197Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36314646,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-08-05T02:00:06.619Z","response_time":104,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"macournoyer","name":"Marc-André Cournoyer","uuid":"22","kind":"user","description":"I enjoy walks in the park, VMs, neural nets, servers, anything with a loop.","email":"macournoyer@gmail.com","website":"http://macournoyer.com","location":"Montreal, QC, Canada","twitter":"macournoyer","company":"@Shopify ","icon_url":"https://avatars.githubusercontent.com/u/22?v=4","repositories_count":76,"last_synced_at":"2026-08-15T10:27:25.236Z","metadata":{"has_sponsors_listing":false,"funding":null},"html_url":"https://github.com/macournoyer","funding_links":[],"total_stars":4505,"followers":1315,"following":54,"created_at":"2022-11-02T16:59:07.830Z","updated_at":"2026-08-15T10:27:25.258Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/macournoyer","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/macournoyer/repositories"},"packages":[{"id":14542117,"name":"www/thin","ecosystem":"pkgsrc","description":"Fast and very simple Ruby web server","homepage":"https://github.com/macournoyer/thin","licenses":"ruby-license OR 2-clause-bsd OR gnu-gpl-v2","normalized_licenses":["MulanPSL-2.0","libpng-2.0"],"repository_url":"https://github.com/macournoyer/thin","keywords_array":["www","ruby"],"namespace":"www","versions_count":1,"first_release_published_at":"2026-04-06T12:25:47.000Z","latest_release_published_at":"2026-04-06T12:25:47.000Z","latest_release_number":"2.0.1","last_synced_at":"2026-05-27T10:53:46.162Z","created_at":"2026-05-27T10:53:45.894Z","updated_at":"2026-08-05T16:32:52.253Z","registry_url":"https://pkgsrc.se/www/thin","install_command":"pkg_add ruby33-thin","documentation_url":"https://pkgsrc.se/www/thin","metadata":{"pkg_slug":"thin","pkgbase":"ruby33-thin","machine_arch":"x86_64","opsys":"NetBSD","pkgname_latest":"ruby33-thin-2.0.1"},"repo_metadata":{"id":41207598,"uuid":"68","full_name":"macournoyer/thin","owner":"macournoyer","description":"A very fast \u0026 simple Ruby web server","archived":true,"fork":false,"pushed_at":"2026-07-15T19:34:32.000Z","size":2054,"stargazers_count":2274,"open_issues_count":21,"forks_count":344,"subscribers_count":49,"default_branch":"master","last_synced_at":"2026-07-28T13:10:58.376Z","etag":null,"topics":["rack","rails","ruby","server","thin","web-server"],"latest_commit_sha":null,"homepage":"https://rubygems.org/gems/thin","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/macournoyer.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":".github/FUNDING.yml","license":"license.md","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},"funding":{"custom":"https://github.com/socketry/community/#funding","github":"ioquatix"}},"created_at":"2008-01-19T05:39:04.000Z","updated_at":"2026-07-15T19:34:54.000Z","dependencies_parsed_at":"2023-02-16T23:15:17.255Z","dependency_job_id":"577acd28-56e2-42e6-b132-6375f5e0eed3","html_url":"https://github.com/macournoyer/thin","commit_stats":{"total_commits":831,"total_committers":111,"mean_commits":7.486486486486487,"dds":0.4452466907340553,"last_synced_commit":"3f375389d29deae252e03080b07a1f10aa60d957"},"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"purl":"pkg:github/macournoyer/thin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/macournoyer","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/sbom","scorecard":{"id":609819,"data":{"date":"2025-08-11","repo":{"name":"github.com/macournoyer/thin","commit":"84a5188612d84bcf5c6ad1f1c27c750645917f5c"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.7,"checks":[{"name":"Maintained","score":10,"reason":"9 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":4,"reason":"Found 9/20 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: topLevel 'contents' permission set to 'read': .github/workflows/test.yml:12","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Info: Possibly incomplete results: error parsing shell code: \u003e must be followed by a word: lib/thin/controllers/service.sh.erb:0","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:70: update your workflow using https://app.stepsecurity.io/secureworkflow/macournoyer/thin/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:72: update your workflow using https://app.stepsecurity.io/secureworkflow/macournoyer/thin/test.yml/master?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"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: license.md: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":"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 23 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-21T02:22:13.197Z","repository_id":41207598,"created_at":"2025-08-21T02:22:13.197Z","updated_at":"2025-08-21T02:22:13.197Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36083092,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-30T02:00:05.956Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"repo_metadata_updated_at":"2026-08-05T16:32:52.253Z","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:pkgsrc/www/thin?arch=x86_64\u0026os=NetBSD","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pkgsrc/www/thin","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pkgsrc/www/thin","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pkgsrc/www/thin/dependencies","status":null,"funding_links":["https://github.com/socketry/community/#funding","https://github.com/sponsors/ioquatix"],"critical":null,"issue_metadata":{"last_synced_at":"2026-07-21T20:04:04.097Z","issues_count":119,"pull_requests_count":50,"avg_time_to_close_issue":102857912.1372549,"avg_time_to_close_pull_request":14001021.731707318,"issues_closed_count":102,"pull_requests_closed_count":41,"pull_request_authors_count":28,"issue_authors_count":91,"avg_comments_per_issue":1.2941176470588236,"avg_comments_per_pull_request":2.16,"merged_pull_requests_count":34,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":4,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":100788.0,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":2,"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":2.25,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":2,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/issues","maintainers":[{"login":"ioquatix","count":13,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ioquatix"},{"login":"macournoyer","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/macournoyer"}],"active_maintainers":[{"login":"macournoyer","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/macournoyer"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pkgsrc-netbsd-x86_64-10.1-all/packages/www%2Fthin/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pkgsrc-netbsd-x86_64-10.1-all/packages/www%2Fthin/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/pkgsrc-netbsd-x86_64-10.1-all/packages/www%2Fthin/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pkgsrc-netbsd-x86_64-10.1-all/packages/www%2Fthin/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pkgsrc-netbsd-x86_64-10.1-all/packages/www%2Fthin/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pkgsrc-netbsd-x86_64-10.1-all/packages/www%2Fthin/codemeta","maintainers":[],"registry":{"name":"pkgsrc-netbsd-x86_64-10.1-all","url":"https://cdn.netbsd.org/pub/pkgsrc/packages/NetBSD/x86_64/10.1/All","ecosystem":"pkgsrc","default":true,"packages_count":19690,"maintainers_count":0,"namespaces_count":43,"keywords_count":363,"github":"pkgsrc","metadata":{"funded_packages_count":332},"icon_url":"https://github.com/pkgsrc.png","created_at":"2026-05-26T08:59:24.518Z","updated_at":"2026-08-12T05:03:04.451Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pkgsrc-netbsd-x86_64-10.1-all/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pkgsrc-netbsd-x86_64-10.1-all/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pkgsrc-netbsd-x86_64-10.1-all/namespaces"}},{"id":13570786,"name":"thin","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/macournoyer/thin","licenses":"other","normalized_licenses":[],"repository_url":"https://github.com/macournoyer/thin","keywords_array":["universe/web"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-11T07:39:08.466Z","latest_release_published_at":"2026-02-11T07:39:08.466Z","latest_release_number":"1.8.0-1ubuntu5","last_synced_at":"2026-03-11T17:14:03.994Z","created_at":"2026-02-11T07:39:08.277Z","updated_at":"2026-08-05T16:32:52.253Z","registry_url":"https://launchpad.net/ubuntu/+source/thin","install_command":"apt-get install thin","documentation_url":null,"metadata":{"component":"universe","architecture":"any","priority":"optional","binary":"thin","standards_version":"4.5.1","maintainer":"Ubuntu Developers \u003cubuntu-devel-discuss@lists.ubuntu.com\u003e","build_depends":"debhelper-compat (= 13), gem2deb (\u003e= 1), help2man, ruby-daemons (\u003e= 1.0.9), ruby-eventmachine (\u003e= 1.0.4), ruby-rack (\u003c\u003c 3), ruby-rack (\u003e= 1), ruby-rspec","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":41207598,"uuid":"68","full_name":"macournoyer/thin","owner":"macournoyer","description":"A very fast \u0026 simple Ruby web server","archived":true,"fork":false,"pushed_at":"2026-07-15T19:34:32.000Z","size":2054,"stargazers_count":2274,"open_issues_count":21,"forks_count":344,"subscribers_count":49,"default_branch":"master","last_synced_at":"2026-07-28T13:10:58.376Z","etag":null,"topics":["rack","rails","ruby","server","thin","web-server"],"latest_commit_sha":null,"homepage":"https://rubygems.org/gems/thin","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/macournoyer.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":".github/FUNDING.yml","license":"license.md","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},"funding":{"custom":"https://github.com/socketry/community/#funding","github":"ioquatix"}},"created_at":"2008-01-19T05:39:04.000Z","updated_at":"2026-07-15T19:34:54.000Z","dependencies_parsed_at":"2023-02-16T23:15:17.255Z","dependency_job_id":"577acd28-56e2-42e6-b132-6375f5e0eed3","html_url":"https://github.com/macournoyer/thin","commit_stats":{"total_commits":831,"total_committers":111,"mean_commits":7.486486486486487,"dds":0.4452466907340553,"last_synced_commit":"3f375389d29deae252e03080b07a1f10aa60d957"},"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"purl":"pkg:github/macournoyer/thin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/macournoyer","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/sbom","scorecard":{"id":609819,"data":{"date":"2025-08-11","repo":{"name":"github.com/macournoyer/thin","commit":"84a5188612d84bcf5c6ad1f1c27c750645917f5c"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.7,"checks":[{"name":"Maintained","score":10,"reason":"9 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":4,"reason":"Found 9/20 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: topLevel 'contents' permission set to 'read': .github/workflows/test.yml:12","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Info: Possibly incomplete results: error parsing shell code: \u003e must be followed by a word: lib/thin/controllers/service.sh.erb:0","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:70: update your workflow using https://app.stepsecurity.io/secureworkflow/macournoyer/thin/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:72: update your workflow using https://app.stepsecurity.io/secureworkflow/macournoyer/thin/test.yml/master?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"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: license.md: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":"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 23 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-21T02:22:13.197Z","repository_id":41207598,"created_at":"2025-08-21T02:22:13.197Z","updated_at":"2025-08-21T02:22:13.197Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36083092,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-30T02:00:05.956Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"repo_metadata_updated_at":"2026-08-05T16:32:52.253Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:deb/ubuntu/thin?arch=source\u0026distro=ubuntu-23.04\u0026repository_url=https://launchpad.net/ubuntu/lunar","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/thin","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/thin","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/thin/dependencies","status":null,"funding_links":["https://github.com/socketry/community/#funding","https://github.com/sponsors/ioquatix"],"critical":null,"issue_metadata":{"last_synced_at":"2026-07-21T20:04:04.097Z","issues_count":119,"pull_requests_count":50,"avg_time_to_close_issue":102857912.1372549,"avg_time_to_close_pull_request":14001021.731707318,"issues_closed_count":102,"pull_requests_closed_count":41,"pull_request_authors_count":28,"issue_authors_count":91,"avg_comments_per_issue":1.2941176470588236,"avg_comments_per_pull_request":2.16,"merged_pull_requests_count":34,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":4,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":100788.0,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":2,"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":2.25,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":2,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/issues","maintainers":[{"login":"ioquatix","count":13,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ioquatix"},{"login":"macournoyer","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/macournoyer"}],"active_maintainers":[{"login":"macournoyer","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/macournoyer"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/thin/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/thin/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/thin/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/thin/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/thin/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/thin/codemeta","maintainers":[],"registry":{"name":"ubuntu-23.04","url":"https://launchpad.net/ubuntu/lunar","ecosystem":"ubuntu","default":false,"packages_count":36116,"maintainers_count":0,"namespaces_count":4,"keywords_count":1000,"github":"ubuntu","metadata":{"codename":"lunar","mirror":"http://old-releases.ubuntu.com/ubuntu","funded_packages_count":613},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:49.117Z","updated_at":"2026-08-10T05:07:59.632Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/namespaces"}},{"id":13534526,"name":"thin","ecosystem":"debian","description":null,"homepage":"https://github.com/macournoyer/thin","licenses":"other","normalized_licenses":[],"repository_url":"https://github.com/macournoyer/thin","keywords_array":["web"],"namespace":"main","versions_count":1,"first_release_published_at":"2026-02-11T00:12:31.551Z","latest_release_published_at":"2026-02-11T00:12:31.551Z","latest_release_number":"1.8.0-1","last_synced_at":"2026-03-14T08:21:30.310Z","created_at":"2026-02-11T00:12:31.365Z","updated_at":"2026-08-05T16:32:52.253Z","registry_url":"https://tracker.debian.org/pkg/thin","install_command":"apt-get install thin","documentation_url":"https://packages.debian.org/bullseye/thin","metadata":{"component":"main","architecture":"any","priority":"source","binary":"thin","standards_version":"4.5.1","maintainer":"Debian Ruby Team \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper-compat (= 13), gem2deb (\u003e= 1), help2man, ruby-daemons (\u003e= 1.0.9), ruby-eventmachine (\u003e= 1.0.4), ruby-rack (\u003c\u003c 3), ruby-rack (\u003e= 1), ruby-rspec","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":41207598,"uuid":"68","full_name":"macournoyer/thin","owner":"macournoyer","description":"A very fast \u0026 simple Ruby web server","archived":true,"fork":false,"pushed_at":"2026-07-15T19:34:32.000Z","size":2054,"stargazers_count":2274,"open_issues_count":21,"forks_count":344,"subscribers_count":49,"default_branch":"master","last_synced_at":"2026-07-28T13:10:58.376Z","etag":null,"topics":["rack","rails","ruby","server","thin","web-server"],"latest_commit_sha":null,"homepage":"https://rubygems.org/gems/thin","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/macournoyer.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":".github/FUNDING.yml","license":"license.md","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},"funding":{"custom":"https://github.com/socketry/community/#funding","github":"ioquatix"}},"created_at":"2008-01-19T05:39:04.000Z","updated_at":"2026-07-15T19:34:54.000Z","dependencies_parsed_at":"2023-02-16T23:15:17.255Z","dependency_job_id":"577acd28-56e2-42e6-b132-6375f5e0eed3","html_url":"https://github.com/macournoyer/thin","commit_stats":{"total_commits":831,"total_committers":111,"mean_commits":7.486486486486487,"dds":0.4452466907340553,"last_synced_commit":"3f375389d29deae252e03080b07a1f10aa60d957"},"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"purl":"pkg:github/macournoyer/thin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/macournoyer","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/sbom","scorecard":{"id":609819,"data":{"date":"2025-08-11","repo":{"name":"github.com/macournoyer/thin","commit":"84a5188612d84bcf5c6ad1f1c27c750645917f5c"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.7,"checks":[{"name":"Maintained","score":10,"reason":"9 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":4,"reason":"Found 9/20 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: topLevel 'contents' permission set to 'read': .github/workflows/test.yml:12","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Info: Possibly incomplete results: error parsing shell code: \u003e must be followed by a word: lib/thin/controllers/service.sh.erb:0","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:70: update your workflow using https://app.stepsecurity.io/secureworkflow/macournoyer/thin/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:72: update your workflow using https://app.stepsecurity.io/secureworkflow/macournoyer/thin/test.yml/master?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"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: license.md: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":"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 23 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-21T02:22:13.197Z","repository_id":41207598,"created_at":"2025-08-21T02:22:13.197Z","updated_at":"2025-08-21T02:22:13.197Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36083092,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-30T02:00:05.956Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"repo_metadata_updated_at":"2026-08-05T16:32:52.253Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:deb/debian/thin?arch=source\u0026distro=debian-11\u0026repository_url=https://packages.debian.org/bullseye","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/debian/thin","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/debian/thin","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/debian/thin/dependencies","status":null,"funding_links":["https://github.com/socketry/community/#funding","https://github.com/sponsors/ioquatix"],"critical":null,"issue_metadata":{"last_synced_at":"2026-07-21T20:04:04.097Z","issues_count":119,"pull_requests_count":50,"avg_time_to_close_issue":102857912.1372549,"avg_time_to_close_pull_request":14001021.731707318,"issues_closed_count":102,"pull_requests_closed_count":41,"pull_request_authors_count":28,"issue_authors_count":91,"avg_comments_per_issue":1.2941176470588236,"avg_comments_per_pull_request":2.16,"merged_pull_requests_count":34,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":4,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":100788.0,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":2,"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":2.25,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":2,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/issues","maintainers":[{"login":"ioquatix","count":13,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ioquatix"},{"login":"macournoyer","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/macournoyer"}],"active_maintainers":[{"login":"macournoyer","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/macournoyer"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages/thin/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages/thin/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages/thin/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages/thin/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages/thin/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages/thin/codemeta","maintainers":[],"registry":{"name":"debian-11","url":"https://packages.debian.org/bullseye","ecosystem":"debian","default":false,"packages_count":31268,"maintainers_count":0,"namespaces_count":3,"keywords_count":759,"github":"debian","metadata":{"codename":"bullseye","funded_packages_count":456},"icon_url":"https://github.com/debian.png","created_at":"2026-02-04T11:01:49.702Z","updated_at":"2026-08-10T05:08:02.664Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/namespaces"}},{"id":13950429,"name":"ruby-thin","ecosystem":"guix","description":"Thin and fast web server for Ruby","homepage":"https://github.com/macournoyer/thin","licenses":"ruby","normalized_licenses":["Ruby"],"repository_url":"https://github.com/macournoyer/thin","keywords_array":[],"namespace":null,"versions_count":1,"first_release_published_at":"2026-03-02T18:56:34.953Z","latest_release_published_at":"2026-03-02T18:56:34.953Z","latest_release_number":"1.7.2","last_synced_at":"2026-04-27T16:17:43.692Z","created_at":"2026-03-02T18:56:34.781Z","updated_at":"2026-08-05T16:32:52.260Z","registry_url":"https://packages.guix.gnu.org/packages/ruby-thin/1.7.2/","install_command":"guix install ruby-thin","documentation_url":"https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/ruby-xyz.scm#n14781","metadata":{"location":"gnu/packages/ruby-xyz.scm:14781","variable_name":"ruby-thin"},"repo_metadata":{"id":41207598,"uuid":"68","full_name":"macournoyer/thin","owner":"macournoyer","description":"A very fast \u0026 simple Ruby web server","archived":true,"fork":false,"pushed_at":"2026-07-15T19:34:32.000Z","size":2054,"stargazers_count":2274,"open_issues_count":21,"forks_count":344,"subscribers_count":49,"default_branch":"master","last_synced_at":"2026-07-28T13:10:58.376Z","etag":null,"topics":["rack","rails","ruby","server","thin","web-server"],"latest_commit_sha":null,"homepage":"https://rubygems.org/gems/thin","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/macournoyer.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":".github/FUNDING.yml","license":"license.md","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},"funding":{"custom":"https://github.com/socketry/community/#funding","github":"ioquatix"}},"created_at":"2008-01-19T05:39:04.000Z","updated_at":"2026-07-15T19:34:54.000Z","dependencies_parsed_at":"2023-02-16T23:15:17.255Z","dependency_job_id":"577acd28-56e2-42e6-b132-6375f5e0eed3","html_url":"https://github.com/macournoyer/thin","commit_stats":{"total_commits":831,"total_committers":111,"mean_commits":7.486486486486487,"dds":0.4452466907340553,"last_synced_commit":"3f375389d29deae252e03080b07a1f10aa60d957"},"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"purl":"pkg:github/macournoyer/thin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/macournoyer","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/sbom","scorecard":{"id":609819,"data":{"date":"2025-08-11","repo":{"name":"github.com/macournoyer/thin","commit":"84a5188612d84bcf5c6ad1f1c27c750645917f5c"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.7,"checks":[{"name":"Maintained","score":10,"reason":"9 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":4,"reason":"Found 9/20 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: topLevel 'contents' permission set to 'read': .github/workflows/test.yml:12","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Info: Possibly incomplete results: error parsing shell code: \u003e must be followed by a word: lib/thin/controllers/service.sh.erb:0","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:70: update your workflow using https://app.stepsecurity.io/secureworkflow/macournoyer/thin/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:72: update your workflow using https://app.stepsecurity.io/secureworkflow/macournoyer/thin/test.yml/master?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"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: license.md: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":"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 23 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-21T02:22:13.197Z","repository_id":41207598,"created_at":"2025-08-21T02:22:13.197Z","updated_at":"2025-08-21T02:22:13.197Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36083092,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-30T02:00:05.956Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"repo_metadata_updated_at":"2026-08-05T16:32:52.260Z","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-thin","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/guix/ruby-thin","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/guix/ruby-thin","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/guix/ruby-thin/dependencies","status":null,"funding_links":["https://github.com/socketry/community/#funding","https://github.com/sponsors/ioquatix"],"critical":null,"issue_metadata":{"last_synced_at":"2026-07-21T20:04:04.097Z","issues_count":119,"pull_requests_count":50,"avg_time_to_close_issue":102857912.1372549,"avg_time_to_close_pull_request":14001021.731707318,"issues_closed_count":102,"pull_requests_closed_count":41,"pull_request_authors_count":28,"issue_authors_count":91,"avg_comments_per_issue":1.2941176470588236,"avg_comments_per_pull_request":2.16,"merged_pull_requests_count":34,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":4,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":100788.0,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":2,"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":2.25,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":2,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/issues","maintainers":[{"login":"ioquatix","count":13,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ioquatix"},{"login":"macournoyer","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/macournoyer"}],"active_maintainers":[{"login":"macournoyer","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/macournoyer"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/ruby-thin/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/ruby-thin/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/ruby-thin/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/ruby-thin/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/ruby-thin/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/ruby-thin/codemeta","maintainers":[],"registry":{"name":"guix","url":"https://guix.gnu.org","ecosystem":"guix","default":true,"packages_count":32256,"maintainers_count":0,"namespaces_count":0,"keywords_count":1649,"github":"guix-mirror","metadata":{"funded_packages_count":882},"icon_url":"https://github.com/guix-mirror.png","created_at":"2026-03-02T16:23:46.981Z","updated_at":"2026-08-12T05:05:19.604Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/guix/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/guix/namespaces"}},{"id":13783617,"name":"thin","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/macournoyer/thin","licenses":"other","normalized_licenses":[],"repository_url":"https://github.com/macournoyer/thin","keywords_array":["universe/web"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-13T14:08:12.775Z","latest_release_published_at":"2026-02-13T14:08:12.775Z","latest_release_number":"1.8.0-1ubuntu3","last_synced_at":"2026-07-22T17:12:46.076Z","created_at":"2026-02-13T14:08:12.563Z","updated_at":"2026-08-05T16:32:52.283Z","registry_url":"https://launchpad.net/ubuntu/+source/thin","install_command":"apt-get install thin","documentation_url":null,"metadata":{"component":"universe","architecture":"any","priority":"optional","binary":"thin","standards_version":"4.5.1","maintainer":"Ubuntu Developers \u003cubuntu-devel-discuss@lists.ubuntu.com\u003e","build_depends":"debhelper-compat (= 13), gem2deb (\u003e= 1), help2man, ruby-daemons (\u003e= 1.0.9), ruby-eventmachine (\u003e= 1.0.4), ruby-rack (\u003c\u003c 3), ruby-rack (\u003e= 1), ruby-rspec","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":41207598,"uuid":"68","full_name":"macournoyer/thin","owner":"macournoyer","description":"A very fast \u0026 simple Ruby web server","archived":true,"fork":false,"pushed_at":"2026-07-15T19:34:32.000Z","size":2054,"stargazers_count":2274,"open_issues_count":21,"forks_count":344,"subscribers_count":49,"default_branch":"master","last_synced_at":"2026-07-28T13:10:58.376Z","etag":null,"topics":["rack","rails","ruby","server","thin","web-server"],"latest_commit_sha":null,"homepage":"https://rubygems.org/gems/thin","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/macournoyer.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":".github/FUNDING.yml","license":"license.md","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},"funding":{"custom":"https://github.com/socketry/community/#funding","github":"ioquatix"}},"created_at":"2008-01-19T05:39:04.000Z","updated_at":"2026-07-15T19:34:54.000Z","dependencies_parsed_at":"2023-02-16T23:15:17.255Z","dependency_job_id":"577acd28-56e2-42e6-b132-6375f5e0eed3","html_url":"https://github.com/macournoyer/thin","commit_stats":{"total_commits":831,"total_committers":111,"mean_commits":7.486486486486487,"dds":0.4452466907340553,"last_synced_commit":"3f375389d29deae252e03080b07a1f10aa60d957"},"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"purl":"pkg:github/macournoyer/thin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/macournoyer","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/sbom","scorecard":{"id":609819,"data":{"date":"2025-08-11","repo":{"name":"github.com/macournoyer/thin","commit":"84a5188612d84bcf5c6ad1f1c27c750645917f5c"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.7,"checks":[{"name":"Maintained","score":10,"reason":"9 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":4,"reason":"Found 9/20 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: topLevel 'contents' permission set to 'read': .github/workflows/test.yml:12","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Info: Possibly incomplete results: error parsing shell code: \u003e must be followed by a word: lib/thin/controllers/service.sh.erb:0","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:70: update your workflow using https://app.stepsecurity.io/secureworkflow/macournoyer/thin/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:72: update your workflow using https://app.stepsecurity.io/secureworkflow/macournoyer/thin/test.yml/master?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"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: license.md: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":"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 23 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-21T02:22:13.197Z","repository_id":41207598,"created_at":"2025-08-21T02:22:13.197Z","updated_at":"2025-08-21T02:22:13.197Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36083092,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-30T02:00:05.956Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"repo_metadata_updated_at":"2026-08-05T16:32:52.283Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:deb/ubuntu/thin?arch=source\u0026distro=ubuntu-22.04\u0026repository_url=https://launchpad.net/ubuntu/jammy","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/thin","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/thin","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/thin/dependencies","status":"removed","funding_links":["https://github.com/socketry/community/#funding","https://github.com/sponsors/ioquatix"],"critical":null,"issue_metadata":{"last_synced_at":"2026-07-21T20:04:04.097Z","issues_count":119,"pull_requests_count":50,"avg_time_to_close_issue":102857912.1372549,"avg_time_to_close_pull_request":14001021.731707318,"issues_closed_count":102,"pull_requests_closed_count":41,"pull_request_authors_count":28,"issue_authors_count":91,"avg_comments_per_issue":1.2941176470588236,"avg_comments_per_pull_request":2.16,"merged_pull_requests_count":34,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":4,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":100788.0,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":2,"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":2.25,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":2,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/issues","maintainers":[{"login":"ioquatix","count":13,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ioquatix"},{"login":"macournoyer","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/macournoyer"}],"active_maintainers":[{"login":"macournoyer","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/macournoyer"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/thin/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/thin/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/thin/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/thin/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/thin/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/thin/codemeta","maintainers":[],"registry":{"name":"ubuntu-22.04","url":"https://launchpad.net/ubuntu/jammy","ecosystem":"ubuntu","default":false,"packages_count":34289,"maintainers_count":0,"namespaces_count":4,"keywords_count":1498,"github":"ubuntu","metadata":{"codename":"jammy","funded_packages_count":559},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:46.486Z","updated_at":"2026-08-10T05:07:56.140Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/namespaces"}},{"id":13719507,"name":"thin","ecosystem":"debian","description":null,"homepage":"https://github.com/macournoyer/thin","licenses":"other","normalized_licenses":[],"repository_url":"https://github.com/macournoyer/thin","keywords_array":["web"],"namespace":"main","versions_count":1,"first_release_published_at":"2026-02-13T00:44:25.628Z","latest_release_published_at":"2026-02-13T00:44:25.628Z","latest_release_number":"1.8.1-2","last_synced_at":"2026-03-14T02:25:55.362Z","created_at":"2026-02-13T00:44:25.397Z","updated_at":"2026-08-05T16:32:52.291Z","registry_url":"https://tracker.debian.org/pkg/thin","install_command":"apt-get install thin","documentation_url":"https://packages.debian.org/bookworm/thin","metadata":{"component":"main","architecture":"any","priority":"source","binary":"thin","standards_version":"4.6.1","maintainer":"Debian Ruby Team \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper-compat (= 13), gem2deb (\u003e= 1), help2man, iproute2, ruby-daemons (\u003e= 1.0.9), ruby-eventmachine (\u003e= 1.0.4), ruby-rack (\u003c\u003c 3), ruby-rack (\u003e= 1), ruby-rspec","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":41207598,"uuid":"68","full_name":"macournoyer/thin","owner":"macournoyer","description":"A very fast \u0026 simple Ruby web server","archived":true,"fork":false,"pushed_at":"2026-07-15T19:34:32.000Z","size":2054,"stargazers_count":2274,"open_issues_count":21,"forks_count":344,"subscribers_count":49,"default_branch":"master","last_synced_at":"2026-07-28T13:10:58.376Z","etag":null,"topics":["rack","rails","ruby","server","thin","web-server"],"latest_commit_sha":null,"homepage":"https://rubygems.org/gems/thin","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/macournoyer.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":".github/FUNDING.yml","license":"license.md","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},"funding":{"custom":"https://github.com/socketry/community/#funding","github":"ioquatix"}},"created_at":"2008-01-19T05:39:04.000Z","updated_at":"2026-07-15T19:34:54.000Z","dependencies_parsed_at":"2023-02-16T23:15:17.255Z","dependency_job_id":"577acd28-56e2-42e6-b132-6375f5e0eed3","html_url":"https://github.com/macournoyer/thin","commit_stats":{"total_commits":831,"total_committers":111,"mean_commits":7.486486486486487,"dds":0.4452466907340553,"last_synced_commit":"3f375389d29deae252e03080b07a1f10aa60d957"},"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"purl":"pkg:github/macournoyer/thin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/macournoyer","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/sbom","scorecard":{"id":609819,"data":{"date":"2025-08-11","repo":{"name":"github.com/macournoyer/thin","commit":"84a5188612d84bcf5c6ad1f1c27c750645917f5c"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.7,"checks":[{"name":"Maintained","score":10,"reason":"9 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":4,"reason":"Found 9/20 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: topLevel 'contents' permission set to 'read': .github/workflows/test.yml:12","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Info: Possibly incomplete results: error parsing shell code: \u003e must be followed by a word: lib/thin/controllers/service.sh.erb:0","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:70: update your workflow using https://app.stepsecurity.io/secureworkflow/macournoyer/thin/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:72: update your workflow using https://app.stepsecurity.io/secureworkflow/macournoyer/thin/test.yml/master?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"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: license.md: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":"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 23 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-21T02:22:13.197Z","repository_id":41207598,"created_at":"2025-08-21T02:22:13.197Z","updated_at":"2025-08-21T02:22:13.197Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36083092,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-30T02:00:05.956Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"repo_metadata_updated_at":"2026-08-05T16:32:52.291Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:deb/debian/thin?arch=source\u0026distro=debian-12","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/debian/thin","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/debian/thin","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/debian/thin/dependencies","status":null,"funding_links":["https://github.com/socketry/community/#funding","https://github.com/sponsors/ioquatix"],"critical":null,"issue_metadata":{"last_synced_at":"2026-07-21T20:04:04.097Z","issues_count":119,"pull_requests_count":50,"avg_time_to_close_issue":102857912.1372549,"avg_time_to_close_pull_request":14001021.731707318,"issues_closed_count":102,"pull_requests_closed_count":41,"pull_request_authors_count":28,"issue_authors_count":91,"avg_comments_per_issue":1.2941176470588236,"avg_comments_per_pull_request":2.16,"merged_pull_requests_count":34,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":4,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":100788.0,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":2,"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":2.25,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":2,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/issues","maintainers":[{"login":"ioquatix","count":13,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ioquatix"},{"login":"macournoyer","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/macournoyer"}],"active_maintainers":[{"login":"macournoyer","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/macournoyer"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/thin/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/thin/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/thin/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/thin/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/thin/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/thin/codemeta","maintainers":[],"registry":{"name":"debian-12","url":"https://packages.debian.org/bookworm","ecosystem":"debian","default":true,"packages_count":34734,"maintainers_count":0,"namespaces_count":4,"keywords_count":2652,"github":"debian","metadata":{"codename":"bookworm","funded_packages_count":809},"icon_url":"https://github.com/debian.png","created_at":"2026-02-04T11:01:49.459Z","updated_at":"2026-08-10T05:08:01.819Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/namespaces"}},{"id":13810258,"name":"thin","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/macournoyer/thin","licenses":"other","normalized_licenses":[],"repository_url":"https://github.com/macournoyer/thin","keywords_array":["universe/web"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-13T19:45:22.103Z","latest_release_published_at":"2026-02-13T19:45:22.103Z","latest_release_number":"1.8.0-1ubuntu5","last_synced_at":"2026-03-14T06:14:21.081Z","created_at":"2026-02-13T19:45:21.888Z","updated_at":"2026-08-05T16:32:52.301Z","registry_url":"https://launchpad.net/ubuntu/+source/thin","install_command":"apt-get install thin","documentation_url":null,"metadata":{"component":"universe","architecture":"any","priority":"optional","binary":"thin","standards_version":"4.5.1","maintainer":"Ubuntu Developers \u003cubuntu-devel-discuss@lists.ubuntu.com\u003e","build_depends":"debhelper-compat (= 13), gem2deb (\u003e= 1), help2man, ruby-daemons (\u003e= 1.0.9), ruby-eventmachine (\u003e= 1.0.4), ruby-rack (\u003c\u003c 3), ruby-rack (\u003e= 1), ruby-rspec","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":41207598,"uuid":"68","full_name":"macournoyer/thin","owner":"macournoyer","description":"A very fast \u0026 simple Ruby web server","archived":true,"fork":false,"pushed_at":"2026-07-15T19:34:32.000Z","size":2054,"stargazers_count":2274,"open_issues_count":21,"forks_count":344,"subscribers_count":49,"default_branch":"master","last_synced_at":"2026-07-28T13:10:58.376Z","etag":null,"topics":["rack","rails","ruby","server","thin","web-server"],"latest_commit_sha":null,"homepage":"https://rubygems.org/gems/thin","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/macournoyer.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":".github/FUNDING.yml","license":"license.md","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},"funding":{"custom":"https://github.com/socketry/community/#funding","github":"ioquatix"}},"created_at":"2008-01-19T05:39:04.000Z","updated_at":"2026-07-15T19:34:54.000Z","dependencies_parsed_at":"2023-02-16T23:15:17.255Z","dependency_job_id":"577acd28-56e2-42e6-b132-6375f5e0eed3","html_url":"https://github.com/macournoyer/thin","commit_stats":{"total_commits":831,"total_committers":111,"mean_commits":7.486486486486487,"dds":0.4452466907340553,"last_synced_commit":"3f375389d29deae252e03080b07a1f10aa60d957"},"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"purl":"pkg:github/macournoyer/thin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/macournoyer","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/sbom","scorecard":{"id":609819,"data":{"date":"2025-08-11","repo":{"name":"github.com/macournoyer/thin","commit":"84a5188612d84bcf5c6ad1f1c27c750645917f5c"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.7,"checks":[{"name":"Maintained","score":10,"reason":"9 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":4,"reason":"Found 9/20 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: topLevel 'contents' permission set to 'read': .github/workflows/test.yml:12","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Info: Possibly incomplete results: error parsing shell code: \u003e must be followed by a word: lib/thin/controllers/service.sh.erb:0","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:70: update your workflow using https://app.stepsecurity.io/secureworkflow/macournoyer/thin/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:72: update your workflow using https://app.stepsecurity.io/secureworkflow/macournoyer/thin/test.yml/master?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"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: license.md: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":"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 23 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-21T02:22:13.197Z","repository_id":41207598,"created_at":"2025-08-21T02:22:13.197Z","updated_at":"2025-08-21T02:22:13.197Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36083092,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-30T02:00:05.956Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"repo_metadata_updated_at":"2026-08-05T16:32:52.301Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:deb/ubuntu/thin?arch=source\u0026distro=ubuntu-23.10\u0026repository_url=https://launchpad.net/ubuntu/mantic","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/thin","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/thin","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/thin/dependencies","status":null,"funding_links":["https://github.com/socketry/community/#funding","https://github.com/sponsors/ioquatix"],"critical":null,"issue_metadata":{"last_synced_at":"2026-07-21T20:04:04.097Z","issues_count":119,"pull_requests_count":50,"avg_time_to_close_issue":102857912.1372549,"avg_time_to_close_pull_request":14001021.731707318,"issues_closed_count":102,"pull_requests_closed_count":41,"pull_request_authors_count":28,"issue_authors_count":91,"avg_comments_per_issue":1.2941176470588236,"avg_comments_per_pull_request":2.16,"merged_pull_requests_count":34,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":4,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":100788.0,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":2,"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":2.25,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":2,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/issues","maintainers":[{"login":"ioquatix","count":13,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ioquatix"},{"login":"macournoyer","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/macournoyer"}],"active_maintainers":[{"login":"macournoyer","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/macournoyer"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/thin/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/thin/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/thin/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/thin/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/thin/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/thin/codemeta","maintainers":[],"registry":{"name":"ubuntu-23.10","url":"https://launchpad.net/ubuntu/mantic","ecosystem":"ubuntu","default":false,"packages_count":36642,"maintainers_count":0,"namespaces_count":4,"keywords_count":2213,"github":"ubuntu","metadata":{"codename":"mantic","mirror":"http://old-releases.ubuntu.com/ubuntu","funded_packages_count":891},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:48.636Z","updated_at":"2026-08-10T05:07:58.402Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/namespaces"}},{"id":13726663,"name":"thin","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/macournoyer/thin","licenses":"other","normalized_licenses":[],"repository_url":"https://github.com/macournoyer/thin","keywords_array":["universe/web"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-13T01:40:09.548Z","latest_release_published_at":"2026-02-13T01:40:09.548Z","latest_release_number":"1.8.1-2ubuntu3","last_synced_at":"2026-03-13T05:13:29.190Z","created_at":"2026-02-13T01:40:09.297Z","updated_at":"2026-08-05T16:32:52.311Z","registry_url":"https://launchpad.net/ubuntu/+source/thin","install_command":"apt-get install thin","documentation_url":null,"metadata":{"component":"universe","architecture":"any","priority":"optional","binary":"thin","standards_version":"4.6.1","maintainer":"Ubuntu Developers \u003cubuntu-devel-discuss@lists.ubuntu.com\u003e","build_depends":"debhelper-compat (= 13), gem2deb (\u003e= 1), help2man, iproute2, ruby-daemons (\u003e= 1.0.9), ruby-eventmachine (\u003e= 1.0.4), ruby-rack (\u003c\u003c 3), ruby-rack (\u003e= 1), ruby-rspec","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":41207598,"uuid":"68","full_name":"macournoyer/thin","owner":"macournoyer","description":"A very fast \u0026 simple Ruby web server","archived":true,"fork":false,"pushed_at":"2026-07-15T19:34:32.000Z","size":2054,"stargazers_count":2274,"open_issues_count":21,"forks_count":344,"subscribers_count":49,"default_branch":"master","last_synced_at":"2026-07-28T13:10:58.376Z","etag":null,"topics":["rack","rails","ruby","server","thin","web-server"],"latest_commit_sha":null,"homepage":"https://rubygems.org/gems/thin","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/macournoyer.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":".github/FUNDING.yml","license":"license.md","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},"funding":{"custom":"https://github.com/socketry/community/#funding","github":"ioquatix"}},"created_at":"2008-01-19T05:39:04.000Z","updated_at":"2026-07-15T19:34:54.000Z","dependencies_parsed_at":"2023-02-16T23:15:17.255Z","dependency_job_id":"577acd28-56e2-42e6-b132-6375f5e0eed3","html_url":"https://github.com/macournoyer/thin","commit_stats":{"total_commits":831,"total_committers":111,"mean_commits":7.486486486486487,"dds":0.4452466907340553,"last_synced_commit":"3f375389d29deae252e03080b07a1f10aa60d957"},"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"purl":"pkg:github/macournoyer/thin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/macournoyer","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/sbom","scorecard":{"id":609819,"data":{"date":"2025-08-11","repo":{"name":"github.com/macournoyer/thin","commit":"84a5188612d84bcf5c6ad1f1c27c750645917f5c"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.7,"checks":[{"name":"Maintained","score":10,"reason":"9 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":4,"reason":"Found 9/20 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: topLevel 'contents' permission set to 'read': .github/workflows/test.yml:12","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Info: Possibly incomplete results: error parsing shell code: \u003e must be followed by a word: lib/thin/controllers/service.sh.erb:0","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:70: update your workflow using https://app.stepsecurity.io/secureworkflow/macournoyer/thin/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:72: update your workflow using https://app.stepsecurity.io/secureworkflow/macournoyer/thin/test.yml/master?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"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: license.md: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":"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 23 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-21T02:22:13.197Z","repository_id":41207598,"created_at":"2025-08-21T02:22:13.197Z","updated_at":"2025-08-21T02:22:13.197Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36083092,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-30T02:00:05.956Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"repo_metadata_updated_at":"2026-08-05T16:32:52.311Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:deb/ubuntu/thin?arch=source\u0026distro=ubuntu-24.04","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/thin","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/thin","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/thin/dependencies","status":null,"funding_links":["https://github.com/socketry/community/#funding","https://github.com/sponsors/ioquatix"],"critical":null,"issue_metadata":{"last_synced_at":"2026-07-21T20:04:04.097Z","issues_count":119,"pull_requests_count":50,"avg_time_to_close_issue":102857912.1372549,"avg_time_to_close_pull_request":14001021.731707318,"issues_closed_count":102,"pull_requests_closed_count":41,"pull_request_authors_count":28,"issue_authors_count":91,"avg_comments_per_issue":1.2941176470588236,"avg_comments_per_pull_request":2.16,"merged_pull_requests_count":34,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":4,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":100788.0,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":2,"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":2.25,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":2,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/issues","maintainers":[{"login":"ioquatix","count":13,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ioquatix"},{"login":"macournoyer","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/macournoyer"}],"active_maintainers":[{"login":"macournoyer","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/macournoyer"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/thin/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/thin/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/thin/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/thin/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/thin/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/thin/codemeta","maintainers":[],"registry":{"name":"ubuntu-24.04","url":"https://launchpad.net/ubuntu/noble","ecosystem":"ubuntu","default":true,"packages_count":37306,"maintainers_count":0,"namespaces_count":4,"keywords_count":1697,"github":"ubuntu","metadata":{"codename":"noble","funded_packages_count":723},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:45.928Z","updated_at":"2026-08-10T05:07:57.238Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/namespaces"}},{"id":13766281,"name":"thin","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/macournoyer/thin","licenses":"other","normalized_licenses":["Other"],"repository_url":"https://github.com/macournoyer/thin","keywords_array":["universe/web"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-13T10:59:11.702Z","latest_release_published_at":"2026-02-13T10:59:11.702Z","latest_release_number":"1.8.2-1ubuntu1","last_synced_at":"2026-03-13T18:16:46.955Z","created_at":"2026-02-13T10:59:11.177Z","updated_at":"2026-08-05T16:32:52.314Z","registry_url":"https://launchpad.net/ubuntu/+source/thin","install_command":"apt-get install thin","documentation_url":null,"metadata":{"component":"universe","architecture":"any","priority":"optional","binary":"thin","standards_version":"4.7.0","maintainer":"Ubuntu Developers \u003cubuntu-devel-discuss@lists.ubuntu.com\u003e","build_depends":"debhelper-compat (= 13), gem2deb (\u003e= 1), help2man, iproute2, ruby-daemons (\u003e= 1.0.9), ruby-eventmachine (\u003e= 1.0.4), ruby-rack (\u003c\u003c 3), ruby-rack (\u003e= 1), ruby-rspec","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":41207598,"uuid":"68","full_name":"macournoyer/thin","owner":"macournoyer","description":"A very fast \u0026 simple Ruby web server","archived":true,"fork":false,"pushed_at":"2026-07-15T19:34:32.000Z","size":2054,"stargazers_count":2274,"open_issues_count":21,"forks_count":344,"subscribers_count":49,"default_branch":"master","last_synced_at":"2026-07-28T13:10:58.376Z","etag":null,"topics":["rack","rails","ruby","server","thin","web-server"],"latest_commit_sha":null,"homepage":"https://rubygems.org/gems/thin","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/macournoyer.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":".github/FUNDING.yml","license":"license.md","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},"funding":{"custom":"https://github.com/socketry/community/#funding","github":"ioquatix"}},"created_at":"2008-01-19T05:39:04.000Z","updated_at":"2026-07-15T19:34:54.000Z","dependencies_parsed_at":"2023-02-16T23:15:17.255Z","dependency_job_id":"577acd28-56e2-42e6-b132-6375f5e0eed3","html_url":"https://github.com/macournoyer/thin","commit_stats":{"total_commits":831,"total_committers":111,"mean_commits":7.486486486486487,"dds":0.4452466907340553,"last_synced_commit":"3f375389d29deae252e03080b07a1f10aa60d957"},"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"purl":"pkg:github/macournoyer/thin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/macournoyer","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/sbom","scorecard":{"id":609819,"data":{"date":"2025-08-11","repo":{"name":"github.com/macournoyer/thin","commit":"84a5188612d84bcf5c6ad1f1c27c750645917f5c"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.7,"checks":[{"name":"Maintained","score":10,"reason":"9 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":4,"reason":"Found 9/20 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: topLevel 'contents' permission set to 'read': .github/workflows/test.yml:12","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Info: Possibly incomplete results: error parsing shell code: \u003e must be followed by a word: lib/thin/controllers/service.sh.erb:0","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:70: update your workflow using https://app.stepsecurity.io/secureworkflow/macournoyer/thin/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:72: update your workflow using https://app.stepsecurity.io/secureworkflow/macournoyer/thin/test.yml/master?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"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: license.md: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":"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 23 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-21T02:22:13.197Z","repository_id":41207598,"created_at":"2025-08-21T02:22:13.197Z","updated_at":"2025-08-21T02:22:13.197Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36083092,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-30T02:00:05.956Z","response_time":106,"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":"macournoyer","name":"Marc-André Cournoyer","uuid":"22","kind":"user","description":"I enjoy walks in the park, VMs, neural nets, servers, anything with a loop.","email":"","website":"http://macournoyer.com","location":"Montreal, QC, Canada","twitter":"macournoyer","company":"@Shopify ","icon_url":"https://avatars.githubusercontent.com/u/22?v=4","repositories_count":69,"last_synced_at":"2025-09-07T23:54:13.516Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/macournoyer","funding_links":[],"total_stars":4507,"followers":1266,"following":56,"created_at":"2022-11-02T16:59:07.830Z","updated_at":"2025-09-07T23:54:13.517Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/macournoyer","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/macournoyer/repositories"},"tags":[{"name":"v2.0.1","sha":"84a5188612d84bcf5c6ad1f1c27c750645917f5c","kind":"commit","published_at":"2025-06-24T04:57:46.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v2.0.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v2.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v2.0.1/manifests"},{"name":"v2.0.0","sha":"955db1a5c2b5f1134d6de4a951cb6c29ddd2dba7","kind":"commit","published_at":"2025-06-22T15:29:19.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v2.0.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v2.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v2.0.0/manifests"},{"name":"v1.8.2","sha":"85b956cf1cf377e3e53911cd4e717f7392f7f818","kind":"commit","published_at":"2023-03-31T10:58:22.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.8.2","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.8.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.8.2/manifests"},{"name":"v1.8.1","sha":"0712d603a31d97b9fa8a0260da400da2e4217d60","kind":"commit","published_at":"2021-05-20T00:59:01.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.8.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.8.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.8.1/manifests"},{"name":"v1.8.0","sha":"02f0a3a72620313c69a1d797671cc522399d9b4c","kind":"commit","published_at":"2020-11-13T06:43:08.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.8.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.8.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.8.0/manifests"},{"name":"v1.7.2","sha":"f83ab677f008afcfabcdfa8930225f6cea88f461","kind":"commit","published_at":"2017-07-08T14:16:21.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.7.2","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.7.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.7.2/manifests"},{"name":"v1.7.1","sha":"5ad246880a0589b9da9d9543af2fafbbc64a926e","kind":"commit","published_at":"2017-06-13T01:10:36.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.7.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.7.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.7.1/manifests"},{"name":"v1.7.0","sha":"9774036766c03e89d33b06cad3d1efb97e90bdae","kind":"commit","published_at":"2016-05-27T21:12:22.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.7.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.7.0/manifests"},{"name":"v1.6.4","sha":"0770aa00399480bbd8ca7391d416c8700818e719","kind":"commit","published_at":"2015-09-19T02:41:15.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.6.4","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.6.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.6.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.4/manifests"},{"name":"v1.6.3","sha":"a1d69d683b820d4355aaaa4454f4212d76f712db","kind":"commit","published_at":"2014-10-02T00:18:05.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.6.3","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.6.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.6.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.3/manifests"},{"name":"v1.6.2","sha":"2296e7babcabc90e5d75755574b8129b9a3335dc","kind":"commit","published_at":"2014-03-04T14:28:58.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.6.2","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.6.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.2/manifests"},{"name":"v1.6.1","sha":"11346bb433958d71e6e7c7c4405e2a82a7f63d04","kind":"commit","published_at":"2013-10-31T14:43:46.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.6.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.6.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.1/manifests"},{"name":"v1.6.0","sha":"fd8f48e618ef23b74cd8282f772f957ca5d8912a","kind":"commit","published_at":"2013-10-02T16:36:58.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.6.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.0/manifests"},{"name":"v1.5.1","sha":"a04411db466e4f9c6d5db8a104884f97fa267c4f","kind":"commit","published_at":"2013-03-18T16:42:02.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.5.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.5.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.5.1/manifests"},{"name":"v2.0.0.pre","sha":"647832a734e63de38ca673fb250e2d6cba1c47ef","kind":"tag","published_at":"2012-09-21T17:43:02.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v2.0.0.pre","html_url":"https://github.com/macournoyer/thin/releases/tag/v2.0.0.pre","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v2.0.0.pre","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v2.0.0.pre","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v2.0.0.pre/manifests"},{"name":"v1.5.0","sha":"bf8a2272fc7bb5800eb6949ab731c855d9c9bf36","kind":"commit","published_at":"2012-09-19T18:12:32.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.5.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.5.0/manifests"},{"name":"v1.4.1","sha":"12cf2016e647bf605f91fbe66e51060e536a7fbb","kind":"commit","published_at":"2012-07-03T15:03:44.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.4.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.4.1/manifests"},{"name":"v1.4.0","sha":"f6184c54a00058b6bbb91a3c1bd6841dc3186616","kind":"commit","published_at":"2012-07-03T14:53:25.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.4.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.4.0/manifests"},{"name":"v1.3.1","sha":"652f5d75c14a6873974521c291262a61c9b4cca0","kind":"tag","published_at":"2011-11-14T14:16:37.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.3.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"6998c313098b11cae0dabdcd22eb7889c3b05c47","kind":"tag","published_at":"2011-11-12T02:18:33.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.3.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.3.0/manifests"},{"name":"v1.2.8","sha":"51f816954a22cde17c41ac8cb4a0bf9da162c45d","kind":"tag","published_at":"2011-02-25T18:16:42.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.2.8","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.2.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.2.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.8/manifests"},{"name":"v1.2.7","sha":"fe31d8065e6b0499495fc41aa2d2d79024d822fc","kind":"tag","published_at":"2010-03-01T12:48:33.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.2.7","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.2.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.2.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.7/manifests"},{"name":"v1.2.6","sha":"2dc260b32428b7280838d608ef18db5c68442b14","kind":"tag","published_at":"2010-02-25T20:57:00.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.2.6","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.2.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.2.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.6/manifests"},{"name":"v1.2.4","sha":"f52228f87ef443276a76719bd281c03403c17b3d","kind":"tag","published_at":"2009-09-06T02:57:35.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.2.4","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.2.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.2.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.4/manifests"},{"name":"v1.2.3","sha":"4ad001ceab5f8e2142e0a66906889e32263880f0","kind":"tag","published_at":"2009-09-06T02:49:07.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.2.3","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.2.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.3/manifests"},{"name":"v1.2.2","sha":"b1908c0c38e4b7b253975492abc463cddf631dde","kind":"tag","published_at":"2009-05-21T20:27:59.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.2.2","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.2/manifests"},{"name":"v1.2.1","sha":"ed2325ff41c187156abf17a61453653eadcaea98","kind":"tag","published_at":"2009-05-02T02:17:46.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.2.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.1/manifests"},{"name":"v1.2.0","sha":"bba1db29ff910da218a6c45481e97d80b9dc7208","kind":"tag","published_at":"2009-04-22T00:54:34.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.2.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.0/manifests"},{"name":"v1.1.1","sha":"c8f4627bf046680abb85665f28ab926e36c931db","kind":"tag","published_at":"2009-03-17T01:43:55.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.1.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.1.1/manifests"},{"name":"v1.1.0","sha":"0e20e432433e68db98637c34ab113d1bae4699c6","kind":"tag","published_at":"2009-02-24T01:04:52.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.1.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"2ab507223d0aec596f3574e5f7fc30c276efa68a","kind":"tag","published_at":"2008-09-29T13:53:11.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.0.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.0.0/manifests"},{"name":"v0.8.2","sha":"bdddd86657ae44adef067acc43b0a7391f3530de","kind":"tag","published_at":"2008-06-26T01:07:28.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.8.2","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.8.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.8.2/manifests"},{"name":"v0.8.1","sha":"a9acdec985583b0a9dd539417634b2c0eaee3b40","kind":"tag","published_at":"2008-04-20T01:49:45.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.8.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.8.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.8.1/manifests"},{"name":"v0.7.1","sha":"2c01c5f75680d291d2ce1003bad1219b5a5079ae","kind":"tag","published_at":"2008-03-06T15:26:10.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.7.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.7.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.7.1/manifests"},{"name":"v0.7.0","sha":"04664f6b7c51c1b3be2a2b7f8ce9036a09d25b45","kind":"tag","published_at":"2008-02-25T03:03:57.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.7.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.7.0/manifests"},{"name":"v0.6.3","sha":"580bf4cf1184d3c12dbdaade8d1e0375e328f879","kind":"tag","published_at":"2008-02-07T16:06:06.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.6.3","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.6.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.6.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.6.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.6.3/manifests"},{"name":"v0.6.2","sha":"b6aa2a6e55acd25c77c217759789d5d9e8c2bc93","kind":"tag","published_at":"2008-01-30T20:52:36.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.6.2","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.6.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.6.2/manifests"},{"name":"v0.6.1","sha":"488564f0f113991d021c9166c85c5fe747a54eb2","kind":"tag","published_at":"2008-01-26T04:48:55.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.6.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.6.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.6.1/manifests"},{"name":"v0.6.0","sha":"38b7c0d42699fc8f40a48a08507021bab625adcb","kind":"tag","published_at":"2008-01-25T19:31:05.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.6.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.6.0/manifests"},{"name":"v0.5.3","sha":"da5cf49093fb4f057bf36f567b909ccf8ad8ab70","kind":"tag","published_at":"2008-01-18T21:54:18.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.5.3","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.5.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.5.3/manifests"},{"name":"v0.5.2","sha":"0ff4b4247b109554fabed4422c7046e3e104cb7d","kind":"tag","published_at":"2008-01-12T17:30:30.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.5.2","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.5.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.5.2/manifests"}]},"repo_metadata_updated_at":"2026-08-05T16:32:52.313Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":0.434477196451336,"forks_count":0.2835809246299139,"docker_downloads_count":null,"average":0.17951453027031247},"purl":"pkg:deb/ubuntu/thin?arch=source\u0026distro=ubuntu-24.10\u0026repository_url=https://launchpad.net/ubuntu/oracular","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/thin","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/thin","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/thin/dependencies","status":null,"funding_links":["https://github.com/socketry/community/#funding","https://github.com/sponsors/ioquatix"],"critical":null,"issue_metadata":{"last_synced_at":"2026-07-21T20:04:04.097Z","issues_count":119,"pull_requests_count":50,"avg_time_to_close_issue":102857912.1372549,"avg_time_to_close_pull_request":14001021.731707318,"issues_closed_count":102,"pull_requests_closed_count":41,"pull_request_authors_count":28,"issue_authors_count":91,"avg_comments_per_issue":1.2941176470588236,"avg_comments_per_pull_request":2.16,"merged_pull_requests_count":34,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":4,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":100788.0,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":2,"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":2.25,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":2,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/issues","maintainers":[{"login":"ioquatix","count":13,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ioquatix"},{"login":"macournoyer","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/macournoyer"}],"active_maintainers":[{"login":"macournoyer","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/macournoyer"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/thin/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/thin/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/thin/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/thin/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/thin/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/thin/codemeta","maintainers":[],"registry":{"name":"ubuntu-24.10","url":"https://launchpad.net/ubuntu/oracular","ecosystem":"ubuntu","default":false,"packages_count":38437,"maintainers_count":0,"namespaces_count":4,"keywords_count":1440,"github":"ubuntu","metadata":{"codename":"oracular","mirror":"http://old-releases.ubuntu.com/ubuntu","funded_packages_count":890},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:48.028Z","updated_at":"2026-08-12T05:05:16.435Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/namespaces"}},{"id":14522123,"name":"www-servers/thin","ecosystem":"gentoo","description":"A fast and very simple Ruby web server","homepage":"https://github.com/macournoyer/thin","licenses":"|| ( GPL-2+ Ruby )","normalized_licenses":["Ruby"],"repository_url":"https://github.com/macournoyer/thin","keywords_array":["~amd64","~ppc64","~x86"],"namespace":"www-servers","versions_count":3,"first_release_published_at":"2026-04-22T07:13:26.000Z","latest_release_published_at":"2026-04-22T07:13:26.000Z","latest_release_number":"2.0.1","last_synced_at":"2026-07-21T01:48:03.313Z","created_at":"2026-05-27T04:58:19.657Z","updated_at":"2026-08-05T16:32:52.314Z","registry_url":"https://packages.gentoo.org/packages/www-servers/thin","install_command":"emerge www-servers/thin","documentation_url":"https://packages.gentoo.org/packages/www-servers/thin","metadata":{"category":"www-servers","slot":"0","eapi":"8","inherit":"ruby-fakegem","iuse":"doc test test ruby_targets_ruby32 ruby_targets_ruby33 ruby_targets_ruby34 ruby_targets_ruby40 doc test test"},"repo_metadata":{"id":41207598,"uuid":"68","full_name":"macournoyer/thin","owner":"macournoyer","description":"A very fast \u0026 simple Ruby web server","archived":true,"fork":false,"pushed_at":"2026-07-15T19:34:32.000Z","size":2054,"stargazers_count":2274,"open_issues_count":21,"forks_count":344,"subscribers_count":49,"default_branch":"master","last_synced_at":"2026-07-28T13:10:58.376Z","etag":null,"topics":["rack","rails","ruby","server","thin","web-server"],"latest_commit_sha":null,"homepage":"https://rubygems.org/gems/thin","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/macournoyer.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":".github/FUNDING.yml","license":"license.md","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},"funding":{"custom":"https://github.com/socketry/community/#funding","github":"ioquatix"}},"created_at":"2008-01-19T05:39:04.000Z","updated_at":"2026-07-15T19:34:54.000Z","dependencies_parsed_at":"2023-02-16T23:15:17.255Z","dependency_job_id":"577acd28-56e2-42e6-b132-6375f5e0eed3","html_url":"https://github.com/macournoyer/thin","commit_stats":{"total_commits":831,"total_committers":111,"mean_commits":7.486486486486487,"dds":0.4452466907340553,"last_synced_commit":"3f375389d29deae252e03080b07a1f10aa60d957"},"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"purl":"pkg:github/macournoyer/thin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/macournoyer","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/sbom","scorecard":{"id":609819,"data":{"date":"2025-08-11","repo":{"name":"github.com/macournoyer/thin","commit":"84a5188612d84bcf5c6ad1f1c27c750645917f5c"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.7,"checks":[{"name":"Maintained","score":10,"reason":"9 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":4,"reason":"Found 9/20 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: topLevel 'contents' permission set to 'read': .github/workflows/test.yml:12","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Info: Possibly incomplete results: error parsing shell code: \u003e must be followed by a word: lib/thin/controllers/service.sh.erb:0","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:70: update your workflow using https://app.stepsecurity.io/secureworkflow/macournoyer/thin/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:72: update your workflow using https://app.stepsecurity.io/secureworkflow/macournoyer/thin/test.yml/master?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"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: license.md: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":"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 23 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-21T02:22:13.197Z","repository_id":41207598,"created_at":"2025-08-21T02:22:13.197Z","updated_at":"2025-08-21T02:22:13.197Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36083092,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-30T02:00:05.956Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"repo_metadata_updated_at":"2026-08-05T16:32:52.314Z","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:gentoo/www-servers/thin","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/gentoo/www-servers/thin","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/gentoo/www-servers/thin","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/gentoo/www-servers/thin/dependencies","status":null,"funding_links":["https://github.com/socketry/community/#funding","https://github.com/sponsors/ioquatix"],"critical":null,"issue_metadata":{"last_synced_at":"2026-07-21T20:04:04.097Z","issues_count":119,"pull_requests_count":50,"avg_time_to_close_issue":102857912.1372549,"avg_time_to_close_pull_request":14001021.731707318,"issues_closed_count":102,"pull_requests_closed_count":41,"pull_request_authors_count":28,"issue_authors_count":91,"avg_comments_per_issue":1.2941176470588236,"avg_comments_per_pull_request":2.16,"merged_pull_requests_count":34,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":4,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":100788.0,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":2,"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":2.25,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":2,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/issues","maintainers":[{"login":"ioquatix","count":13,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ioquatix"},{"login":"macournoyer","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/macournoyer"}],"active_maintainers":[{"login":"macournoyer","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/macournoyer"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/gentoo-portage/packages/www-servers%2Fthin/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/gentoo-portage/packages/www-servers%2Fthin/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/gentoo-portage/packages/www-servers%2Fthin/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/gentoo-portage/packages/www-servers%2Fthin/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/gentoo-portage/packages/www-servers%2Fthin/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/gentoo-portage/packages/www-servers%2Fthin/codemeta","maintainers":[],"registry":{"name":"gentoo-portage","url":"https://packages.gentoo.org/","ecosystem":"gentoo","default":true,"packages_count":19519,"maintainers_count":0,"namespaces_count":174,"keywords_count":1054,"github":"gentoo","metadata":{"snapshot_url":"https://distfiles.gentoo.org/snapshots/portage-latest.tar.xz","funded_packages_count":450},"icon_url":"https://github.com/gentoo.png","created_at":"2026-05-26T08:59:24.155Z","updated_at":"2026-08-12T05:05:20.132Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gentoo-portage/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/gentoo-portage/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/gentoo-portage/namespaces"}},{"id":13674909,"name":"thin","ecosystem":"debian","description":null,"homepage":"https://github.com/macournoyer/thin","licenses":"other","normalized_licenses":[],"repository_url":"https://github.com/macournoyer/thin","keywords_array":["web"],"namespace":"main","versions_count":1,"first_release_published_at":"2026-02-12T15:23:56.675Z","latest_release_published_at":"2026-02-12T15:23:56.675Z","latest_release_number":"1.8.2+git20250216.de6b618-1","last_synced_at":"2026-03-12T16:13:54.485Z","created_at":"2026-02-12T15:23:56.438Z","updated_at":"2026-08-05T16:32:52.322Z","registry_url":"https://tracker.debian.org/pkg/thin","install_command":"apt-get install thin","documentation_url":"https://packages.debian.org/trixie/thin","metadata":{"component":"main","architecture":"any","priority":"source","binary":"thin","standards_version":"4.7.2","maintainer":"Debian Ruby Team \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper-compat (= 13), gem2deb (\u003e= 1), help2man, iproute2, ruby-daemons, ruby-eventmachine, ruby-rack (\u003c\u003c 4), ruby-rspec","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":41207598,"uuid":"68","full_name":"macournoyer/thin","owner":"macournoyer","description":"A very fast \u0026 simple Ruby web server","archived":true,"fork":false,"pushed_at":"2026-07-15T19:34:32.000Z","size":2054,"stargazers_count":2274,"open_issues_count":21,"forks_count":344,"subscribers_count":49,"default_branch":"master","last_synced_at":"2026-07-28T13:10:58.376Z","etag":null,"topics":["rack","rails","ruby","server","thin","web-server"],"latest_commit_sha":null,"homepage":"https://rubygems.org/gems/thin","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/macournoyer.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":".github/FUNDING.yml","license":"license.md","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},"funding":{"custom":"https://github.com/socketry/community/#funding","github":"ioquatix"}},"created_at":"2008-01-19T05:39:04.000Z","updated_at":"2026-07-15T19:34:54.000Z","dependencies_parsed_at":"2023-02-16T23:15:17.255Z","dependency_job_id":"577acd28-56e2-42e6-b132-6375f5e0eed3","html_url":"https://github.com/macournoyer/thin","commit_stats":{"total_commits":831,"total_committers":111,"mean_commits":7.486486486486487,"dds":0.4452466907340553,"last_synced_commit":"3f375389d29deae252e03080b07a1f10aa60d957"},"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"purl":"pkg:github/macournoyer/thin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/macournoyer","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/sbom","scorecard":{"id":609819,"data":{"date":"2025-08-11","repo":{"name":"github.com/macournoyer/thin","commit":"84a5188612d84bcf5c6ad1f1c27c750645917f5c"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.7,"checks":[{"name":"Maintained","score":10,"reason":"9 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":4,"reason":"Found 9/20 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: topLevel 'contents' permission set to 'read': .github/workflows/test.yml:12","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Info: Possibly incomplete results: error parsing shell code: \u003e must be followed by a word: lib/thin/controllers/service.sh.erb:0","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:70: update your workflow using https://app.stepsecurity.io/secureworkflow/macournoyer/thin/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:72: update your workflow using https://app.stepsecurity.io/secureworkflow/macournoyer/thin/test.yml/master?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"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: license.md: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":"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 23 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-21T02:22:13.197Z","repository_id":41207598,"created_at":"2025-08-21T02:22:13.197Z","updated_at":"2025-08-21T02:22:13.197Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36083092,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-30T02:00:05.956Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"repo_metadata_updated_at":"2026-08-05T16:32:52.322Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:deb/debian/thin?arch=source\u0026distro=debian-13\u0026repository_url=https://packages.debian.org/trixie","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/debian/thin","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/debian/thin","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/debian/thin/dependencies","status":null,"funding_links":["https://github.com/socketry/community/#funding","https://github.com/sponsors/ioquatix"],"critical":null,"issue_metadata":{"last_synced_at":"2026-07-21T20:04:04.097Z","issues_count":119,"pull_requests_count":50,"avg_time_to_close_issue":102857912.1372549,"avg_time_to_close_pull_request":14001021.731707318,"issues_closed_count":102,"pull_requests_closed_count":41,"pull_request_authors_count":28,"issue_authors_count":91,"avg_comments_per_issue":1.2941176470588236,"avg_comments_per_pull_request":2.16,"merged_pull_requests_count":34,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":4,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":100788.0,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":2,"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":2.25,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":2,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/issues","maintainers":[{"login":"ioquatix","count":13,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ioquatix"},{"login":"macournoyer","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/macournoyer"}],"active_maintainers":[{"login":"macournoyer","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/macournoyer"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/thin/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/thin/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/thin/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/thin/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/thin/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/thin/codemeta","maintainers":[],"registry":{"name":"debian-13","url":"https://packages.debian.org/trixie","ecosystem":"debian","default":false,"packages_count":38024,"maintainers_count":0,"namespaces_count":4,"keywords_count":1985,"github":"debian","metadata":{"codename":"trixie","funded_packages_count":1208},"icon_url":"https://github.com/debian.png","created_at":"2026-02-04T11:01:50.448Z","updated_at":"2026-08-12T05:05:15.557Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/namespaces"}},{"id":12341631,"name":"thin","ecosystem":"rubygems","description":"A thin and fast web server","homepage":"https://github.com/macournoyer/thin","licenses":"GPL-2.0-or-later,Ruby","normalized_licenses":["GPL-2.0-or-later","Ruby"],"repository_url":"https://github.com/macournoyer/thin","keywords_array":[],"namespace":null,"versions_count":71,"first_release_published_at":"2009-07-25T17:49:52.000Z","latest_release_published_at":"2026-08-11T22:03:27.602Z","latest_release_number":null,"last_synced_at":"2026-08-11T22:03:28.216Z","created_at":"2025-10-07T06:28:56.626Z","updated_at":"2026-08-11T22:08:29.379Z","registry_url":"https://gem.coop/gems/thin","install_command":"gem install thin -s https://gem.coop","documentation_url":"http://www.rubydoc.info/gems/thin/","metadata":{"funding":null},"repo_metadata":{"id":41207598,"uuid":"68","full_name":"macournoyer/thin","owner":"macournoyer","description":"A very fast \u0026 simple Ruby web server","archived":true,"fork":false,"pushed_at":"2026-07-15T19:34:32.000Z","size":2054,"stargazers_count":2275,"open_issues_count":21,"forks_count":344,"subscribers_count":49,"default_branch":"master","last_synced_at":"2026-08-05T15:01:23.616Z","etag":null,"topics":["rack","rails","ruby","server","thin","web-server"],"latest_commit_sha":null,"homepage":"https://rubygems.org/gems/thin","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/macournoyer.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":".github/FUNDING.yml","license":"license.md","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},"funding":{"custom":"https://github.com/socketry/community/#funding","github":"ioquatix"}},"created_at":"2008-01-19T05:39:04.000Z","updated_at":"2026-08-02T14:13:11.000Z","dependencies_parsed_at":"2023-02-16T23:15:17.255Z","dependency_job_id":"577acd28-56e2-42e6-b132-6375f5e0eed3","html_url":"https://github.com/macournoyer/thin","commit_stats":{"total_commits":831,"total_committers":111,"mean_commits":7.486486486486487,"dds":0.4452466907340553,"last_synced_commit":"3f375389d29deae252e03080b07a1f10aa60d957"},"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"purl":"pkg:github/macournoyer/thin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/macournoyer","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/sbom","scorecard":{"id":609819,"data":{"date":"2025-08-11","repo":{"name":"github.com/macournoyer/thin","commit":"84a5188612d84bcf5c6ad1f1c27c750645917f5c"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.7,"checks":[{"name":"Maintained","score":10,"reason":"9 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":4,"reason":"Found 9/20 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: topLevel 'contents' permission set to 'read': .github/workflows/test.yml:12","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Info: Possibly incomplete results: error parsing shell code: \u003e must be followed by a word: lib/thin/controllers/service.sh.erb:0","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:70: update your workflow using https://app.stepsecurity.io/secureworkflow/macournoyer/thin/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:72: update your workflow using https://app.stepsecurity.io/secureworkflow/macournoyer/thin/test.yml/master?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"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: license.md: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":"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 23 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-21T02:22:13.197Z","repository_id":41207598,"created_at":"2025-08-21T02:22:13.197Z","updated_at":"2025-08-21T02:22:13.197Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36314646,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-08-05T02:00:06.619Z","response_time":104,"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":"macournoyer","name":"Marc-André Cournoyer","uuid":"22","kind":"user","description":"I enjoy walks in the park, VMs, neural nets, servers, anything with a loop.","email":"macournoyer@gmail.com","website":"http://macournoyer.com","location":"Montreal, QC, Canada","twitter":"macournoyer","company":"@Shopify ","icon_url":"https://avatars.githubusercontent.com/u/22?v=4","repositories_count":71,"last_synced_at":"2026-08-08T09:25:33.173Z","metadata":{"has_sponsors_listing":false,"funding":null},"html_url":"https://github.com/macournoyer","funding_links":[],"total_stars":4503,"followers":1316,"following":54,"created_at":"2022-11-02T16:59:07.830Z","updated_at":"2026-08-08T09:25:33.242Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/macournoyer","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/macournoyer/repositories"},"tags":[{"name":"v2.0.1","sha":"84a5188612d84bcf5c6ad1f1c27c750645917f5c","kind":"commit","published_at":"2025-06-24T04:57:46.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v2.0.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v2.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v2.0.1/manifests"},{"name":"v2.0.0","sha":"955db1a5c2b5f1134d6de4a951cb6c29ddd2dba7","kind":"commit","published_at":"2025-06-22T15:29:19.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v2.0.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v2.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v2.0.0/manifests"},{"name":"v1.8.2","sha":"85b956cf1cf377e3e53911cd4e717f7392f7f818","kind":"commit","published_at":"2023-03-31T10:58:22.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.8.2","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.8.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.8.2/manifests"},{"name":"v1.8.1","sha":"0712d603a31d97b9fa8a0260da400da2e4217d60","kind":"commit","published_at":"2021-05-20T00:59:01.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.8.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.8.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.8.1/manifests"},{"name":"v1.8.0","sha":"02f0a3a72620313c69a1d797671cc522399d9b4c","kind":"commit","published_at":"2020-11-13T06:43:08.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.8.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.8.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.8.0/manifests"},{"name":"v1.7.2","sha":"f83ab677f008afcfabcdfa8930225f6cea88f461","kind":"commit","published_at":"2017-07-08T14:16:21.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.7.2","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.7.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.7.2/manifests"},{"name":"v1.7.1","sha":"5ad246880a0589b9da9d9543af2fafbbc64a926e","kind":"commit","published_at":"2017-06-13T01:10:36.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.7.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.7.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.7.1/manifests"},{"name":"v1.7.0","sha":"9774036766c03e89d33b06cad3d1efb97e90bdae","kind":"commit","published_at":"2016-05-27T21:12:22.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.7.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.7.0/manifests"},{"name":"v1.6.4","sha":"0770aa00399480bbd8ca7391d416c8700818e719","kind":"commit","published_at":"2015-09-19T02:41:15.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.6.4","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.6.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.6.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.4/manifests"},{"name":"v1.6.3","sha":"a1d69d683b820d4355aaaa4454f4212d76f712db","kind":"commit","published_at":"2014-10-02T00:18:05.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.6.3","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.6.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.6.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.3/manifests"},{"name":"v1.6.2","sha":"2296e7babcabc90e5d75755574b8129b9a3335dc","kind":"commit","published_at":"2014-03-04T14:28:58.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.6.2","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.6.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.2/manifests"},{"name":"v1.6.1","sha":"11346bb433958d71e6e7c7c4405e2a82a7f63d04","kind":"commit","published_at":"2013-10-31T14:43:46.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.6.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.6.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.1/manifests"},{"name":"v1.6.0","sha":"fd8f48e618ef23b74cd8282f772f957ca5d8912a","kind":"commit","published_at":"2013-10-02T16:36:58.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.6.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.0/manifests"},{"name":"v1.5.1","sha":"a04411db466e4f9c6d5db8a104884f97fa267c4f","kind":"commit","published_at":"2013-03-18T16:42:02.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.5.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.5.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.5.1/manifests"},{"name":"v2.0.0.pre","sha":"647832a734e63de38ca673fb250e2d6cba1c47ef","kind":"tag","published_at":"2012-09-21T17:43:02.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v2.0.0.pre","html_url":"https://github.com/macournoyer/thin/releases/tag/v2.0.0.pre","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v2.0.0.pre","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v2.0.0.pre","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v2.0.0.pre/manifests"},{"name":"v1.5.0","sha":"bf8a2272fc7bb5800eb6949ab731c855d9c9bf36","kind":"commit","published_at":"2012-09-19T18:12:32.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.5.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.5.0/manifests"},{"name":"v1.4.1","sha":"12cf2016e647bf605f91fbe66e51060e536a7fbb","kind":"commit","published_at":"2012-07-03T15:03:44.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.4.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.4.1/manifests"},{"name":"v1.4.0","sha":"f6184c54a00058b6bbb91a3c1bd6841dc3186616","kind":"commit","published_at":"2012-07-03T14:53:25.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.4.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.4.0/manifests"},{"name":"v1.3.1","sha":"652f5d75c14a6873974521c291262a61c9b4cca0","kind":"tag","published_at":"2011-11-14T14:16:37.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.3.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"6998c313098b11cae0dabdcd22eb7889c3b05c47","kind":"tag","published_at":"2011-11-12T02:18:33.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.3.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.3.0/manifests"},{"name":"v1.2.8","sha":"51f816954a22cde17c41ac8cb4a0bf9da162c45d","kind":"tag","published_at":"2011-02-25T18:16:42.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.2.8","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.2.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.2.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.8/manifests"},{"name":"v1.2.7","sha":"fe31d8065e6b0499495fc41aa2d2d79024d822fc","kind":"tag","published_at":"2010-03-01T12:48:33.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.2.7","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.2.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.2.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.7/manifests"},{"name":"v1.2.6","sha":"2dc260b32428b7280838d608ef18db5c68442b14","kind":"tag","published_at":"2010-02-25T20:57:00.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.2.6","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.2.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.2.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.6/manifests"},{"name":"v1.2.4","sha":"f52228f87ef443276a76719bd281c03403c17b3d","kind":"tag","published_at":"2009-09-06T02:57:35.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.2.4","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.2.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.2.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.4/manifests"},{"name":"v1.2.3","sha":"4ad001ceab5f8e2142e0a66906889e32263880f0","kind":"tag","published_at":"2009-09-06T02:49:07.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.2.3","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.2.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.3/manifests"},{"name":"v1.2.2","sha":"b1908c0c38e4b7b253975492abc463cddf631dde","kind":"tag","published_at":"2009-05-21T20:27:59.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.2.2","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.2/manifests"},{"name":"v1.2.1","sha":"ed2325ff41c187156abf17a61453653eadcaea98","kind":"tag","published_at":"2009-05-02T02:17:46.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.2.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.1/manifests"},{"name":"v1.2.0","sha":"bba1db29ff910da218a6c45481e97d80b9dc7208","kind":"tag","published_at":"2009-04-22T00:54:34.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.2.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.0/manifests"},{"name":"v1.1.1","sha":"c8f4627bf046680abb85665f28ab926e36c931db","kind":"tag","published_at":"2009-03-17T01:43:55.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.1.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.1.1/manifests"},{"name":"v1.1.0","sha":"0e20e432433e68db98637c34ab113d1bae4699c6","kind":"tag","published_at":"2009-02-24T01:04:52.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.1.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"2ab507223d0aec596f3574e5f7fc30c276efa68a","kind":"tag","published_at":"2008-09-29T13:53:11.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.0.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.0.0/manifests"},{"name":"v0.8.2","sha":"bdddd86657ae44adef067acc43b0a7391f3530de","kind":"tag","published_at":"2008-06-26T01:07:28.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.8.2","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.8.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.8.2/manifests"},{"name":"v0.8.1","sha":"a9acdec985583b0a9dd539417634b2c0eaee3b40","kind":"tag","published_at":"2008-04-20T01:49:45.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.8.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.8.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.8.1/manifests"},{"name":"v0.7.1","sha":"2c01c5f75680d291d2ce1003bad1219b5a5079ae","kind":"tag","published_at":"2008-03-06T15:26:10.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.7.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.7.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.7.1/manifests"},{"name":"v0.7.0","sha":"04664f6b7c51c1b3be2a2b7f8ce9036a09d25b45","kind":"tag","published_at":"2008-02-25T03:03:57.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.7.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.7.0/manifests"},{"name":"v0.6.3","sha":"580bf4cf1184d3c12dbdaade8d1e0375e328f879","kind":"tag","published_at":"2008-02-07T16:06:06.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.6.3","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.6.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.6.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.6.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.6.3/manifests"},{"name":"v0.6.2","sha":"b6aa2a6e55acd25c77c217759789d5d9e8c2bc93","kind":"tag","published_at":"2008-01-30T20:52:36.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.6.2","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.6.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.6.2/manifests"},{"name":"v0.6.1","sha":"488564f0f113991d021c9166c85c5fe747a54eb2","kind":"tag","published_at":"2008-01-26T04:48:55.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.6.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.6.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.6.1/manifests"},{"name":"v0.6.0","sha":"38b7c0d42699fc8f40a48a08507021bab625adcb","kind":"tag","published_at":"2008-01-25T19:31:05.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.6.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.6.0/manifests"},{"name":"v0.5.3","sha":"da5cf49093fb4f057bf36f567b909ccf8ad8ab70","kind":"tag","published_at":"2008-01-18T21:54:18.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.5.3","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.5.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.5.3/manifests"},{"name":"v0.5.2","sha":"0ff4b4247b109554fabed4422c7046e3e104cb7d","kind":"tag","published_at":"2008-01-12T17:30:30.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.5.2","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.5.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.5.2/manifests"}]},"repo_metadata_updated_at":"2026-08-11T22:08:29.379Z","dependent_packages_count":0,"downloads":207874656,"downloads_period":"total","dependent_repos_count":0,"rankings":{"downloads":0.11673467181884509,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":1.0830383440970628,"forks_count":1.531602129326884,"docker_downloads_count":0.25292512227416436,"average":0.4973833779194927},"purl":"pkg:gem/thin?repository_url=https://gem.coop","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/rubygems/thin","docker_dependents_count":476,"docker_downloads_count":490432177,"usage_url":"https://repos.ecosyste.ms/usage/rubygems/thin","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/rubygems/thin/dependencies","status":null,"funding_links":["https://github.com/socketry/community/#funding","https://github.com/sponsors/ioquatix"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-09T21:09:10.366Z","issues_count":119,"pull_requests_count":50,"avg_time_to_close_issue":102857912.1372549,"avg_time_to_close_pull_request":14001021.731707318,"issues_closed_count":102,"pull_requests_closed_count":41,"pull_request_authors_count":28,"issue_authors_count":91,"avg_comments_per_issue":1.2941176470588236,"avg_comments_per_pull_request":2.16,"merged_pull_requests_count":34,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":4,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":100788.0,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":2,"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":2.25,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":2,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/issues","maintainers":[{"login":"ioquatix","count":13,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ioquatix"},{"login":"macournoyer","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/macournoyer"}],"active_maintainers":[{"login":"macournoyer","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/macournoyer"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/thin/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/thin/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/thin/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/thin/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/thin/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/thin/codemeta","maintainers":[{"uuid":"44200","login":"ioquatix","name":null,"email":null,"url":null,"packages_count":263,"html_url":"https://gem.coop/profiles/ioquatix","role":null,"created_at":"2025-10-09T23:27:16.508Z","updated_at":"2025-10-09T23:27:16.508Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/ioquatix/packages"},{"uuid":"2415","login":"macournoyer_","name":null,"email":null,"url":null,"packages_count":8,"html_url":"https://gem.coop/profiles/macournoyer_","role":null,"created_at":"2025-10-09T23:27:16.461Z","updated_at":"2025-10-09T23:27:16.461Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/macournoyer_/packages"}],"registry":{"name":"gem.coop","url":"https://gem.coop","ecosystem":"rubygems","default":false,"packages_count":195055,"maintainers_count":68463,"namespaces_count":0,"keywords_count":18999,"github":"gem-coop","metadata":{"funded_packages_count":7542},"icon_url":"https://github.com/gem-coop.png","created_at":"2025-10-06T17:24:20.932Z","updated_at":"2026-08-12T05:05:26.854Z","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":10389804,"name":"github.com/macournoyer/thin","ecosystem":"go","description":null,"homepage":null,"licenses":"other","normalized_licenses":["Other"],"repository_url":"https://github.com/macournoyer/thin","keywords_array":[],"namespace":null,"versions_count":40,"first_release_published_at":"2008-01-12T17:23:25.000Z","latest_release_published_at":"2025-06-24T04:57:46.000Z","latest_release_number":"v2.0.1+incompatible","last_synced_at":"2026-08-11T22:03:29.014Z","created_at":"2024-06-18T04:29:37.041Z","updated_at":"2026-08-11T22:03:29.014Z","registry_url":"https://pkg.go.dev/github.com/macournoyer/thin","install_command":"go get github.com/macournoyer/thin","documentation_url":"https://pkg.go.dev/github.com/macournoyer/thin#section-documentation","metadata":{},"repo_metadata":{"id":41207598,"uuid":"68","full_name":"macournoyer/thin","owner":"macournoyer","description":"A very fast \u0026 simple Ruby web server","archived":true,"fork":false,"pushed_at":"2026-07-15T19:34:32.000Z","size":2054,"stargazers_count":2274,"open_issues_count":21,"forks_count":344,"subscribers_count":49,"default_branch":"master","last_synced_at":"2026-07-28T13:10:58.376Z","etag":null,"topics":["rack","rails","ruby","server","thin","web-server"],"latest_commit_sha":null,"homepage":"https://rubygems.org/gems/thin","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/macournoyer.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":".github/FUNDING.yml","license":"license.md","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},"funding":{"custom":"https://github.com/socketry/community/#funding","github":"ioquatix"}},"created_at":"2008-01-19T05:39:04.000Z","updated_at":"2026-07-15T19:34:54.000Z","dependencies_parsed_at":"2023-02-16T23:15:17.255Z","dependency_job_id":"577acd28-56e2-42e6-b132-6375f5e0eed3","html_url":"https://github.com/macournoyer/thin","commit_stats":{"total_commits":831,"total_committers":111,"mean_commits":7.486486486486487,"dds":0.4452466907340553,"last_synced_commit":"3f375389d29deae252e03080b07a1f10aa60d957"},"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"purl":"pkg:github/macournoyer/thin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/macournoyer","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/sbom","scorecard":{"id":609819,"data":{"date":"2025-08-11","repo":{"name":"github.com/macournoyer/thin","commit":"84a5188612d84bcf5c6ad1f1c27c750645917f5c"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.7,"checks":[{"name":"Maintained","score":10,"reason":"9 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":4,"reason":"Found 9/20 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: topLevel 'contents' permission set to 'read': .github/workflows/test.yml:12","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Info: Possibly incomplete results: error parsing shell code: \u003e must be followed by a word: lib/thin/controllers/service.sh.erb:0","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:70: update your workflow using https://app.stepsecurity.io/secureworkflow/macournoyer/thin/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:72: update your workflow using https://app.stepsecurity.io/secureworkflow/macournoyer/thin/test.yml/master?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"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: license.md: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":"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 23 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-21T02:22:13.197Z","repository_id":41207598,"created_at":"2025-08-21T02:22:13.197Z","updated_at":"2025-08-21T02:22:13.197Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36083092,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-30T02:00:05.956Z","response_time":106,"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":"macournoyer","name":"Marc-André Cournoyer","uuid":"22","kind":"user","description":"I enjoy walks in the park, VMs, neural nets, servers, anything with a loop.","email":"","website":"http://macournoyer.com","location":"Montreal, QC, Canada","twitter":"macournoyer","company":"@Shopify ","icon_url":"https://avatars.githubusercontent.com/u/22?v=4","repositories_count":69,"last_synced_at":"2025-09-07T23:54:13.516Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/macournoyer","funding_links":[],"total_stars":4507,"followers":1266,"following":56,"created_at":"2022-11-02T16:59:07.830Z","updated_at":"2025-09-07T23:54:13.517Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/macournoyer","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/macournoyer/repositories"},"tags":[{"name":"v2.0.1","sha":"84a5188612d84bcf5c6ad1f1c27c750645917f5c","kind":"commit","published_at":"2025-06-24T04:57:46.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v2.0.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v2.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v2.0.1/manifests"},{"name":"v2.0.0","sha":"955db1a5c2b5f1134d6de4a951cb6c29ddd2dba7","kind":"commit","published_at":"2025-06-22T15:29:19.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v2.0.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v2.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v2.0.0/manifests"},{"name":"v1.8.2","sha":"85b956cf1cf377e3e53911cd4e717f7392f7f818","kind":"commit","published_at":"2023-03-31T10:58:22.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.8.2","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.8.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.8.2/manifests"},{"name":"v1.8.1","sha":"0712d603a31d97b9fa8a0260da400da2e4217d60","kind":"commit","published_at":"2021-05-20T00:59:01.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.8.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.8.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.8.1/manifests"},{"name":"v1.8.0","sha":"02f0a3a72620313c69a1d797671cc522399d9b4c","kind":"commit","published_at":"2020-11-13T06:43:08.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.8.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.8.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.8.0/manifests"},{"name":"v1.7.2","sha":"f83ab677f008afcfabcdfa8930225f6cea88f461","kind":"commit","published_at":"2017-07-08T14:16:21.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.7.2","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.7.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.7.2/manifests"},{"name":"v1.7.1","sha":"5ad246880a0589b9da9d9543af2fafbbc64a926e","kind":"commit","published_at":"2017-06-13T01:10:36.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.7.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.7.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.7.1/manifests"},{"name":"v1.7.0","sha":"9774036766c03e89d33b06cad3d1efb97e90bdae","kind":"commit","published_at":"2016-05-27T21:12:22.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.7.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.7.0/manifests"},{"name":"v1.6.4","sha":"0770aa00399480bbd8ca7391d416c8700818e719","kind":"commit","published_at":"2015-09-19T02:41:15.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.6.4","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.6.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.6.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.4/manifests"},{"name":"v1.6.3","sha":"a1d69d683b820d4355aaaa4454f4212d76f712db","kind":"commit","published_at":"2014-10-02T00:18:05.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.6.3","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.6.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.6.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.3/manifests"},{"name":"v1.6.2","sha":"2296e7babcabc90e5d75755574b8129b9a3335dc","kind":"commit","published_at":"2014-03-04T14:28:58.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.6.2","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.6.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.2/manifests"},{"name":"v1.6.1","sha":"11346bb433958d71e6e7c7c4405e2a82a7f63d04","kind":"commit","published_at":"2013-10-31T14:43:46.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.6.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.6.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.1/manifests"},{"name":"v1.6.0","sha":"fd8f48e618ef23b74cd8282f772f957ca5d8912a","kind":"commit","published_at":"2013-10-02T16:36:58.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.6.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.0/manifests"},{"name":"v1.5.1","sha":"a04411db466e4f9c6d5db8a104884f97fa267c4f","kind":"commit","published_at":"2013-03-18T16:42:02.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.5.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.5.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.5.1/manifests"},{"name":"v2.0.0.pre","sha":"647832a734e63de38ca673fb250e2d6cba1c47ef","kind":"tag","published_at":"2012-09-21T17:43:02.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v2.0.0.pre","html_url":"https://github.com/macournoyer/thin/releases/tag/v2.0.0.pre","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v2.0.0.pre","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v2.0.0.pre","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v2.0.0.pre/manifests"},{"name":"v1.5.0","sha":"bf8a2272fc7bb5800eb6949ab731c855d9c9bf36","kind":"commit","published_at":"2012-09-19T18:12:32.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.5.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.5.0/manifests"},{"name":"v1.4.1","sha":"12cf2016e647bf605f91fbe66e51060e536a7fbb","kind":"commit","published_at":"2012-07-03T15:03:44.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.4.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.4.1/manifests"},{"name":"v1.4.0","sha":"f6184c54a00058b6bbb91a3c1bd6841dc3186616","kind":"commit","published_at":"2012-07-03T14:53:25.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.4.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.4.0/manifests"},{"name":"v1.3.1","sha":"652f5d75c14a6873974521c291262a61c9b4cca0","kind":"tag","published_at":"2011-11-14T14:16:37.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.3.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"6998c313098b11cae0dabdcd22eb7889c3b05c47","kind":"tag","published_at":"2011-11-12T02:18:33.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.3.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.3.0/manifests"},{"name":"v1.2.8","sha":"51f816954a22cde17c41ac8cb4a0bf9da162c45d","kind":"tag","published_at":"2011-02-25T18:16:42.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.2.8","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.2.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.2.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.8/manifests"},{"name":"v1.2.7","sha":"fe31d8065e6b0499495fc41aa2d2d79024d822fc","kind":"tag","published_at":"2010-03-01T12:48:33.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.2.7","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.2.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.2.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.7/manifests"},{"name":"v1.2.6","sha":"2dc260b32428b7280838d608ef18db5c68442b14","kind":"tag","published_at":"2010-02-25T20:57:00.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.2.6","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.2.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.2.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.6/manifests"},{"name":"v1.2.4","sha":"f52228f87ef443276a76719bd281c03403c17b3d","kind":"tag","published_at":"2009-09-06T02:57:35.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.2.4","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.2.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.2.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.4/manifests"},{"name":"v1.2.3","sha":"4ad001ceab5f8e2142e0a66906889e32263880f0","kind":"tag","published_at":"2009-09-06T02:49:07.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.2.3","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.2.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.3/manifests"},{"name":"v1.2.2","sha":"b1908c0c38e4b7b253975492abc463cddf631dde","kind":"tag","published_at":"2009-05-21T20:27:59.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.2.2","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.2/manifests"},{"name":"v1.2.1","sha":"ed2325ff41c187156abf17a61453653eadcaea98","kind":"tag","published_at":"2009-05-02T02:17:46.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.2.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.1/manifests"},{"name":"v1.2.0","sha":"bba1db29ff910da218a6c45481e97d80b9dc7208","kind":"tag","published_at":"2009-04-22T00:54:34.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.2.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.0/manifests"},{"name":"v1.1.1","sha":"c8f4627bf046680abb85665f28ab926e36c931db","kind":"tag","published_at":"2009-03-17T01:43:55.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.1.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.1.1/manifests"},{"name":"v1.1.0","sha":"0e20e432433e68db98637c34ab113d1bae4699c6","kind":"tag","published_at":"2009-02-24T01:04:52.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.1.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"2ab507223d0aec596f3574e5f7fc30c276efa68a","kind":"tag","published_at":"2008-09-29T13:53:11.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.0.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.0.0/manifests"},{"name":"v0.8.2","sha":"bdddd86657ae44adef067acc43b0a7391f3530de","kind":"tag","published_at":"2008-06-26T01:07:28.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.8.2","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.8.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.8.2/manifests"},{"name":"v0.8.1","sha":"a9acdec985583b0a9dd539417634b2c0eaee3b40","kind":"tag","published_at":"2008-04-20T01:49:45.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.8.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.8.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.8.1/manifests"},{"name":"v0.7.1","sha":"2c01c5f75680d291d2ce1003bad1219b5a5079ae","kind":"tag","published_at":"2008-03-06T15:26:10.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.7.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.7.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.7.1/manifests"},{"name":"v0.7.0","sha":"04664f6b7c51c1b3be2a2b7f8ce9036a09d25b45","kind":"tag","published_at":"2008-02-25T03:03:57.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.7.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.7.0/manifests"},{"name":"v0.6.3","sha":"580bf4cf1184d3c12dbdaade8d1e0375e328f879","kind":"tag","published_at":"2008-02-07T16:06:06.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.6.3","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.6.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.6.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.6.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.6.3/manifests"},{"name":"v0.6.2","sha":"b6aa2a6e55acd25c77c217759789d5d9e8c2bc93","kind":"tag","published_at":"2008-01-30T20:52:36.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.6.2","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.6.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.6.2/manifests"},{"name":"v0.6.1","sha":"488564f0f113991d021c9166c85c5fe747a54eb2","kind":"tag","published_at":"2008-01-26T04:48:55.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.6.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.6.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.6.1/manifests"},{"name":"v0.6.0","sha":"38b7c0d42699fc8f40a48a08507021bab625adcb","kind":"tag","published_at":"2008-01-25T19:31:05.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.6.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.6.0/manifests"},{"name":"v0.5.3","sha":"da5cf49093fb4f057bf36f567b909ccf8ad8ab70","kind":"tag","published_at":"2008-01-18T21:54:18.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.5.3","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.5.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.5.3/manifests"},{"name":"v0.5.2","sha":"0ff4b4247b109554fabed4422c7046e3e104cb7d","kind":"tag","published_at":"2008-01-12T17:30:30.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.5.2","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.5.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.5.2/manifests"}]},"repo_metadata_updated_at":"2026-08-05T16:32:52.338Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":6.926206638817217,"dependent_packages_count":6.488435311463325,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":6.707320975140272},"purl":"pkg:golang/github.com/macournoyer/thin","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/macournoyer/thin","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/macournoyer/thin","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/macournoyer/thin/dependencies","status":null,"funding_links":["https://github.com/socketry/community/#funding","https://github.com/sponsors/ioquatix"],"critical":null,"issue_metadata":{"last_synced_at":"2026-07-21T20:04:04.097Z","issues_count":119,"pull_requests_count":50,"avg_time_to_close_issue":102857912.1372549,"avg_time_to_close_pull_request":14001021.731707318,"issues_closed_count":102,"pull_requests_closed_count":41,"pull_request_authors_count":28,"issue_authors_count":91,"avg_comments_per_issue":1.2941176470588236,"avg_comments_per_pull_request":2.16,"merged_pull_requests_count":34,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":4,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":100788.0,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":2,"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":2.25,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":2,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/issues","maintainers":[{"login":"ioquatix","count":13,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ioquatix"},{"login":"macournoyer","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/macournoyer"}],"active_maintainers":[{"login":"macournoyer","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/macournoyer"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fmacournoyer%2Fthin/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fmacournoyer%2Fthin/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fmacournoyer%2Fthin/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fmacournoyer%2Fthin/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fmacournoyer%2Fthin/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fmacournoyer%2Fthin/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":2263068,"maintainers_count":0,"namespaces_count":837425,"keywords_count":122443,"github":"golang","metadata":{"funded_packages_count":65362,"sync_missing_packages_cursor":{"timestamp":"2026-08-12T00:18:10.975284Z","path":"github.com/fhunleth/muontrap","version":"v0.2.1"},"rate_limit":1},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2026-08-12T12:33:12.528Z","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":316201,"name":"thin","ecosystem":"rubygems","description":"A thin and fast web server","homepage":"https://github.com/macournoyer/thin","licenses":"GPL-2.0-or-later,Ruby","normalized_licenses":["GPL-2.0-or-later","Ruby"],"repository_url":"https://github.com/macournoyer/thin","keywords_array":[],"namespace":null,"versions_count":71,"first_release_published_at":"2009-07-25T17:49:52.000Z","latest_release_published_at":"2025-06-24T04:58:19.267Z","latest_release_number":"2.0.1","last_synced_at":"2026-08-12T22:25:47.518Z","created_at":"2022-04-06T11:45:56.925Z","updated_at":"2026-08-12T22:25:48.072Z","registry_url":"https://rubygems.org/gems/thin","install_command":"gem install thin -s https://rubygems.org","documentation_url":"http://www.rubydoc.info/gems/thin/","metadata":{"funding":null},"repo_metadata":{"id":41207598,"uuid":"68","full_name":"macournoyer/thin","owner":"macournoyer","description":"A very fast \u0026 simple Ruby web server","archived":true,"fork":false,"pushed_at":"2026-07-15T19:34:32.000Z","size":2054,"stargazers_count":2275,"open_issues_count":21,"forks_count":344,"subscribers_count":49,"default_branch":"master","last_synced_at":"2026-08-05T15:01:23.616Z","etag":null,"topics":["rack","rails","ruby","server","thin","web-server"],"latest_commit_sha":null,"homepage":"https://rubygems.org/gems/thin","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/macournoyer.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":".github/FUNDING.yml","license":"license.md","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},"funding":{"custom":"https://github.com/socketry/community/#funding","github":"ioquatix"}},"created_at":"2008-01-19T05:39:04.000Z","updated_at":"2026-08-02T14:13:11.000Z","dependencies_parsed_at":"2023-02-16T23:15:17.255Z","dependency_job_id":"577acd28-56e2-42e6-b132-6375f5e0eed3","html_url":"https://github.com/macournoyer/thin","commit_stats":{"total_commits":831,"total_committers":111,"mean_commits":7.486486486486487,"dds":0.4452466907340553,"last_synced_commit":"3f375389d29deae252e03080b07a1f10aa60d957"},"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"purl":"pkg:github/macournoyer/thin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/macournoyer","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/sbom","scorecard":{"id":609819,"data":{"date":"2025-08-11","repo":{"name":"github.com/macournoyer/thin","commit":"84a5188612d84bcf5c6ad1f1c27c750645917f5c"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.7,"checks":[{"name":"Maintained","score":10,"reason":"9 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":4,"reason":"Found 9/20 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: topLevel 'contents' permission set to 'read': .github/workflows/test.yml:12","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Info: Possibly incomplete results: error parsing shell code: \u003e must be followed by a word: lib/thin/controllers/service.sh.erb:0","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:70: update your workflow using https://app.stepsecurity.io/secureworkflow/macournoyer/thin/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:72: update your workflow using https://app.stepsecurity.io/secureworkflow/macournoyer/thin/test.yml/master?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"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: license.md: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":"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 23 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-21T02:22:13.197Z","repository_id":41207598,"created_at":"2025-08-21T02:22:13.197Z","updated_at":"2025-08-21T02:22:13.197Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36314646,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-08-05T02:00:06.619Z","response_time":104,"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":"macournoyer","name":"Marc-André Cournoyer","uuid":"22","kind":"user","description":"I enjoy walks in the park, VMs, neural nets, servers, anything with a loop.","email":"macournoyer@gmail.com","website":"http://macournoyer.com","location":"Montreal, QC, Canada","twitter":"macournoyer","company":"@Shopify ","icon_url":"https://avatars.githubusercontent.com/u/22?v=4","repositories_count":71,"last_synced_at":"2026-08-08T09:25:33.173Z","metadata":{"has_sponsors_listing":false,"funding":null},"html_url":"https://github.com/macournoyer","funding_links":[],"total_stars":4503,"followers":1316,"following":54,"created_at":"2022-11-02T16:59:07.830Z","updated_at":"2026-08-08T09:25:33.242Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/macournoyer","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/macournoyer/repositories"},"tags":[{"name":"v2.0.1","sha":"84a5188612d84bcf5c6ad1f1c27c750645917f5c","kind":"commit","published_at":"2025-06-24T04:57:46.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v2.0.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v2.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v2.0.1/manifests"},{"name":"v2.0.0","sha":"955db1a5c2b5f1134d6de4a951cb6c29ddd2dba7","kind":"commit","published_at":"2025-06-22T15:29:19.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v2.0.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v2.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v2.0.0/manifests"},{"name":"v1.8.2","sha":"85b956cf1cf377e3e53911cd4e717f7392f7f818","kind":"commit","published_at":"2023-03-31T10:58:22.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.8.2","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.8.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.8.2/manifests"},{"name":"v1.8.1","sha":"0712d603a31d97b9fa8a0260da400da2e4217d60","kind":"commit","published_at":"2021-05-20T00:59:01.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.8.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.8.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.8.1/manifests"},{"name":"v1.8.0","sha":"02f0a3a72620313c69a1d797671cc522399d9b4c","kind":"commit","published_at":"2020-11-13T06:43:08.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.8.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.8.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.8.0/manifests"},{"name":"v1.7.2","sha":"f83ab677f008afcfabcdfa8930225f6cea88f461","kind":"commit","published_at":"2017-07-08T14:16:21.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.7.2","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.7.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.7.2/manifests"},{"name":"v1.7.1","sha":"5ad246880a0589b9da9d9543af2fafbbc64a926e","kind":"commit","published_at":"2017-06-13T01:10:36.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.7.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.7.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.7.1/manifests"},{"name":"v1.7.0","sha":"9774036766c03e89d33b06cad3d1efb97e90bdae","kind":"commit","published_at":"2016-05-27T21:12:22.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.7.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.7.0/manifests"},{"name":"v1.6.4","sha":"0770aa00399480bbd8ca7391d416c8700818e719","kind":"commit","published_at":"2015-09-19T02:41:15.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.6.4","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.6.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.6.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.4/manifests"},{"name":"v1.6.3","sha":"a1d69d683b820d4355aaaa4454f4212d76f712db","kind":"commit","published_at":"2014-10-02T00:18:05.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.6.3","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.6.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.6.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.3/manifests"},{"name":"v1.6.2","sha":"2296e7babcabc90e5d75755574b8129b9a3335dc","kind":"commit","published_at":"2014-03-04T14:28:58.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.6.2","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.6.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.2/manifests"},{"name":"v1.6.1","sha":"11346bb433958d71e6e7c7c4405e2a82a7f63d04","kind":"commit","published_at":"2013-10-31T14:43:46.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.6.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.6.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.1/manifests"},{"name":"v1.6.0","sha":"fd8f48e618ef23b74cd8282f772f957ca5d8912a","kind":"commit","published_at":"2013-10-02T16:36:58.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.6.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.6.0/manifests"},{"name":"v1.5.1","sha":"a04411db466e4f9c6d5db8a104884f97fa267c4f","kind":"commit","published_at":"2013-03-18T16:42:02.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.5.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.5.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.5.1/manifests"},{"name":"v2.0.0.pre","sha":"647832a734e63de38ca673fb250e2d6cba1c47ef","kind":"tag","published_at":"2012-09-21T17:43:02.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v2.0.0.pre","html_url":"https://github.com/macournoyer/thin/releases/tag/v2.0.0.pre","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v2.0.0.pre","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v2.0.0.pre","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v2.0.0.pre/manifests"},{"name":"v1.5.0","sha":"bf8a2272fc7bb5800eb6949ab731c855d9c9bf36","kind":"commit","published_at":"2012-09-19T18:12:32.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.5.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.5.0/manifests"},{"name":"v1.4.1","sha":"12cf2016e647bf605f91fbe66e51060e536a7fbb","kind":"commit","published_at":"2012-07-03T15:03:44.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.4.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.4.1/manifests"},{"name":"v1.4.0","sha":"f6184c54a00058b6bbb91a3c1bd6841dc3186616","kind":"commit","published_at":"2012-07-03T14:53:25.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.4.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.4.0/manifests"},{"name":"v1.3.1","sha":"652f5d75c14a6873974521c291262a61c9b4cca0","kind":"tag","published_at":"2011-11-14T14:16:37.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.3.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"6998c313098b11cae0dabdcd22eb7889c3b05c47","kind":"tag","published_at":"2011-11-12T02:18:33.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.3.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.3.0/manifests"},{"name":"v1.2.8","sha":"51f816954a22cde17c41ac8cb4a0bf9da162c45d","kind":"tag","published_at":"2011-02-25T18:16:42.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.2.8","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.2.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.2.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.8/manifests"},{"name":"v1.2.7","sha":"fe31d8065e6b0499495fc41aa2d2d79024d822fc","kind":"tag","published_at":"2010-03-01T12:48:33.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.2.7","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.2.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.2.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.7/manifests"},{"name":"v1.2.6","sha":"2dc260b32428b7280838d608ef18db5c68442b14","kind":"tag","published_at":"2010-02-25T20:57:00.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.2.6","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.2.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.2.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.6/manifests"},{"name":"v1.2.4","sha":"f52228f87ef443276a76719bd281c03403c17b3d","kind":"tag","published_at":"2009-09-06T02:57:35.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.2.4","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.2.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.2.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.4/manifests"},{"name":"v1.2.3","sha":"4ad001ceab5f8e2142e0a66906889e32263880f0","kind":"tag","published_at":"2009-09-06T02:49:07.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.2.3","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.2.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.3/manifests"},{"name":"v1.2.2","sha":"b1908c0c38e4b7b253975492abc463cddf631dde","kind":"tag","published_at":"2009-05-21T20:27:59.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.2.2","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.2/manifests"},{"name":"v1.2.1","sha":"ed2325ff41c187156abf17a61453653eadcaea98","kind":"tag","published_at":"2009-05-02T02:17:46.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.2.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.1/manifests"},{"name":"v1.2.0","sha":"bba1db29ff910da218a6c45481e97d80b9dc7208","kind":"tag","published_at":"2009-04-22T00:54:34.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.2.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.2.0/manifests"},{"name":"v1.1.1","sha":"c8f4627bf046680abb85665f28ab926e36c931db","kind":"tag","published_at":"2009-03-17T01:43:55.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.1.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.1.1/manifests"},{"name":"v1.1.0","sha":"0e20e432433e68db98637c34ab113d1bae4699c6","kind":"tag","published_at":"2009-02-24T01:04:52.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.1.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"2ab507223d0aec596f3574e5f7fc30c276efa68a","kind":"tag","published_at":"2008-09-29T13:53:11.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v1.0.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v1.0.0/manifests"},{"name":"v0.8.2","sha":"bdddd86657ae44adef067acc43b0a7391f3530de","kind":"tag","published_at":"2008-06-26T01:07:28.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.8.2","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.8.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.8.2/manifests"},{"name":"v0.8.1","sha":"a9acdec985583b0a9dd539417634b2c0eaee3b40","kind":"tag","published_at":"2008-04-20T01:49:45.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.8.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.8.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.8.1/manifests"},{"name":"v0.7.1","sha":"2c01c5f75680d291d2ce1003bad1219b5a5079ae","kind":"tag","published_at":"2008-03-06T15:26:10.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.7.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.7.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.7.1/manifests"},{"name":"v0.7.0","sha":"04664f6b7c51c1b3be2a2b7f8ce9036a09d25b45","kind":"tag","published_at":"2008-02-25T03:03:57.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.7.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.7.0/manifests"},{"name":"v0.6.3","sha":"580bf4cf1184d3c12dbdaade8d1e0375e328f879","kind":"tag","published_at":"2008-02-07T16:06:06.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.6.3","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.6.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.6.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.6.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.6.3/manifests"},{"name":"v0.6.2","sha":"b6aa2a6e55acd25c77c217759789d5d9e8c2bc93","kind":"tag","published_at":"2008-01-30T20:52:36.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.6.2","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.6.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.6.2/manifests"},{"name":"v0.6.1","sha":"488564f0f113991d021c9166c85c5fe747a54eb2","kind":"tag","published_at":"2008-01-26T04:48:55.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.6.1","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.6.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.6.1/manifests"},{"name":"v0.6.0","sha":"38b7c0d42699fc8f40a48a08507021bab625adcb","kind":"tag","published_at":"2008-01-25T19:31:05.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.6.0","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.6.0/manifests"},{"name":"v0.5.3","sha":"da5cf49093fb4f057bf36f567b909ccf8ad8ab70","kind":"tag","published_at":"2008-01-18T21:54:18.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.5.3","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.5.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.5.3/manifests"},{"name":"v0.5.2","sha":"0ff4b4247b109554fabed4422c7046e3e104cb7d","kind":"tag","published_at":"2008-01-12T17:30:30.000Z","download_url":"https://codeload.github.com/macournoyer/thin/tar.gz/v0.5.2","html_url":"https://github.com/macournoyer/thin/releases/tag/v0.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/macournoyer/thin@v0.5.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/tags/v0.5.2/manifests"}]},"repo_metadata_updated_at":"2026-08-12T22:25:48.072Z","dependent_packages_count":912,"downloads":207904136,"downloads_period":"total","dependent_repos_count":75529,"rankings":{"downloads":0.11540906100511814,"dependent_repos_count":0.13492267035380962,"dependent_packages_count":0.05240797939362853,"stargazers_count":1.029761041915233,"forks_count":1.471326144891337,"docker_downloads_count":0.664020249551187,"average":0.5779745245183855},"purl":"pkg:gem/thin","advisories":[{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLWoyNHAtcjZ3eC1yNzl3","url":"https://github.com/advisories/GHSA-j24p-r6wx-r79w","title":"High severity vulnerability that affects thin","description":"lib/thin/connection.rb in Thin web server before 1.2.4 relies on the X-Forwarded-For header to determine the IP address of the client, which allows remote attackers to spoof the IP address and hide activities via a modified X-Forwarded-For header.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2017-10-24T18:33:38.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://nvd.nist.gov/vuln/detail/CVE-2009-3287","https://github.com/advisories/GHSA-j24p-r6wx-r79w","http://github.com/macournoyer/thin/blob/master/CHANGELOG","http://github.com/macournoyer/thin/commit/7bd027914c5ffd36bb408ef47dc749de3b6e063a","http://www.openwall.com/lists/oss-security/2009/09/12/1","https://github.com/rubysec/ruby-advisory-db/blob/master/gems/thin/CVE-2009-3287.yml"],"source_kind":"github","identifiers":["GHSA-j24p-r6wx-r79w","CVE-2009-3287"],"repository_url":"https://github.com/macournoyer/thin","blast_radius":0.0,"created_at":"2022-12-21T16:13:37.917Z","updated_at":"2026-08-12T21:23:45.849Z","epss_percentage":0.01382,"epss_percentile":0.69508,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLWoyNHAtcjZ3eC1yNzl3","html_url":"https://advisories.ecosyste.ms/advisories/MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLWoyNHAtcjZ3eC1yNzl3","packages":[{"ecosystem":"rubygems","package_name":"thin","versions":[{"first_patched_version":"1.2.4","vulnerable_version_range":"\u003c 1.2.4"}],"purl":"pkg:gem/thin"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLWoyNHAtcjZ3eC1yNzl3/related_packages","related_advisories":[]}],"docker_usage_url":"https://docker.ecosyste.ms/usage/rubygems/thin","docker_dependents_count":476,"docker_downloads_count":490432177,"usage_url":"https://repos.ecosyste.ms/usage/rubygems/thin","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/rubygems/thin/dependencies","status":null,"funding_links":["https://github.com/socketry/community/#funding","https://github.com/sponsors/ioquatix"],"critical":true,"issue_metadata":{"last_synced_at":"2026-08-09T21:09:10.366Z","issues_count":119,"pull_requests_count":50,"avg_time_to_close_issue":102857912.1372549,"avg_time_to_close_pull_request":14001021.731707318,"issues_closed_count":102,"pull_requests_closed_count":41,"pull_request_authors_count":28,"issue_authors_count":91,"avg_comments_per_issue":1.2941176470588236,"avg_comments_per_pull_request":2.16,"merged_pull_requests_count":34,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":4,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":100788.0,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":2,"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":2.25,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":2,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/issues","maintainers":[{"login":"ioquatix","count":13,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ioquatix"},{"login":"macournoyer","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/macournoyer"}],"active_maintainers":[{"login":"macournoyer","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/macournoyer"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/thin/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/thin/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/thin/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/thin/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/thin/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/thin/codemeta","maintainers":[{"uuid":"44200","login":"ioquatix","name":null,"email":null,"url":null,"packages_count":263,"html_url":"https://rubygems.org/profiles/ioquatix","role":null,"created_at":"2022-11-09T09:54:01.752Z","updated_at":"2022-11-09T09:54:01.752Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/ioquatix/packages"},{"uuid":"2415","login":"macournoyer_","name":null,"email":null,"url":null,"packages_count":8,"html_url":"https://rubygems.org/profiles/macournoyer_","role":null,"created_at":"2022-11-09T09:54:01.745Z","updated_at":"2022-11-09T09:54:01.745Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/macournoyer_/packages"}],"registry":{"name":"rubygems.org","url":"https://rubygems.org","ecosystem":"rubygems","default":true,"packages_count":210473,"maintainers_count":69451,"namespaces_count":0,"keywords_count":19391,"github":"rubygems","metadata":{"funded_packages_count":7917},"icon_url":"https://github.com/rubygems.png","created_at":"2022-04-04T15:19:23.446Z","updated_at":"2026-08-12T05:03:25.267Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/namespaces"}}],"commits":{"id":3467,"full_name":"macournoyer/thin","default_branch":"master","total_commits":858,"total_committers":115,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":7.460869565217391,"dds":0.4533799533799534,"past_year_total_commits":2,"past_year_total_committers":2,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":1.0,"past_year_dds":0.5,"last_synced_at":"2026-08-15T23:24:00.210Z","last_synced_commit":"e7886a9bca2742586da74e06fffdd2093cc3a397","created_at":"2023-03-07T09:17:52.091Z","updated_at":"2026-08-15T23:24:00.053Z","committers":[{"name":"macournoyer","email":"macournoyer@gmail.com","login":"macournoyer","count":469},{"name":"macournoyer","email":"macournoyer@ab7993de-5426-0410-a80b-baa00616f331","login":null,"count":133},{"name":"Samuel Williams","email":"samuel.williams@oriontransfer.co.nz","login":"ioquatix","count":30},{"name":"raggi","email":"jftucker@gmail.com","login":"raggi","count":25},{"name":"Kevin Williams","email":"kevwil@gmail.com","login":"kevwil","count":21},{"name":"Michael S. Klishin","email":"michael@novemberain.com","login":"michaelklishin","count":17},{"name":"Aman Gupta","email":"aman@tmm1.net","login":"tmm1","count":6},{"name":"Cliff Moon","email":"cliff@aa0-009-5.u.powerset.com","login":null,"count":5},{"name":"Prem Sichanugrist","email":"s@sikachu.com","login":"sikachu","count":4},{"name":"Marek Goldmann","email":"marek.goldmann@gmail.com","login":"goldmann","count":4},{"name":"Loic Nageleisen","email":"loic.nageleisen@gmail.com","login":"lloeki","count":4},{"name":"Vít Ondruch","email":"vondruch@redhat.com","login":"voxik","count":4},{"name":"Chris Cherry","email":"ccherry@ccherry.local","login":null,"count":3},{"name":"Joshua Peek","email":"josh@joshpeek.com","login":"josh","count":3},{"name":"Jun Aruga","email":"jaruga@redhat.com","login":"junaruga","count":3},{"name":"MasterLambaster","email":"masterlambaster@gmail.com","login":"MasterLambaster","count":3},{"name":"Matt Todd","email":"chiology@gmail.com","login":"mtodd","count":3},{"name":"Robert McLeod","email":"robert@penguinpower.co.nz","login":"penguinpowernz","count":3},{"name":"Aleksandar Totic","email":"a@totic.org","login":"atotic","count":2},{"name":"Bruce Krysiak","email":"brucek@alum.mit.edu","login":"brucek","count":2},{"name":"Carl Zulauf","email":"carl@linkleaf.com","login":"carlzulauf","count":2},{"name":"Diego Elio 'Flameeyes' Pettenò","email":"flameeyes@gmail.com","login":"Flameeyes","count":2},{"name":"Glenn Rempe","email":"glenn@rempe.us","login":"grempe","count":2},{"name":"Jesse Cooke","email":"jesse@jc00ke.com","login":"jc00ke","count":2},{"name":"Jérémy Zurcher","email":"jeremy@asynk.ch","login":"jeremyz","count":2},{"name":"Luis Lavena","email":"luislavena@gmail.com","login":"luislavena","count":2},{"name":"Mark Burns","email":"markthedeveloper@gmail.com","login":"markburns","count":2},{"name":"Michal Kwiatkowski","email":"michal@trivas.pl","login":"mkwiatkowski","count":2},{"name":"Pierre Chapuis","email":"catwell@archlinux.us","login":"catwell","count":2},{"name":"Steven Parkes","email":"smparkes@smparkes.net","login":"smparkes","count":2},{"name":"Wincent Colaiuta","email":"win@wincent.com","login":"wincent","count":2},{"name":"frameworked","email":"development@frameworked.de","login":"frameworked","count":2},{"name":"schneems","email":"richard.schneeman@gmail.com","login":"schneems","count":2},{"name":"Andrea Lorenzetti","email":"andrea@lorenzetti.me","login":"and9000","count":2},{"name":"Roberto Gaiser","email":"gaiser@geekbunker.org","login":null,"count":2},{"name":"Markus Schirp","email":"mbj@seonic.net","login":null,"count":2},{"name":"Mark Bates","email":"mark@mackframework.com","login":"markbates","count":2},{"name":"Mark Bates","email":"mbates@markbates.com","login":null,"count":2},{"name":"Evan","email":"eweaver@mackenzie.cnet.cnwk","login":null,"count":2},{"name":"Andrew Parker","email":"andy@puppetlabs.com","login":"zaphod42","count":1},{"name":"BenBasson","email":"github@basson.at","login":"benbasson","count":1},{"name":"David Smyth","email":"David.Smyth@Millennium-Space.com","login":null,"count":1},{"name":"Akshay Moghe","email":"amoghe@maginatics.com","login":null,"count":1},{"name":"David Padilla","email":"david@crowdint.com","login":null,"count":1},{"name":"Dandy","email":"dandy.fenz@madvertise.com","login":null,"count":1},{"name":"Dan Kubb","email":"dan.kubb@autopilotmarketing.com","login":null,"count":1},{"name":"Cliff Moon","email":"cliff@moonpolysoft.com","login":null,"count":1},{"name":"Benedikt Böhm","email":"benedikt.boehm@madvertise.com","login":null,"count":1},{"name":"Glebov Vladimir","email":"vglebov@at-consulting.ru","login":null,"count":1},{"name":"Hellekin O. Wolf =8","email":"hellekin@cepheide.org","login":null,"count":1},{"name":"Lee Jarvis","email":"lee@jarvis.co","login":null,"count":1},{"name":"Nimish","email":"nimish@vinsol.com","login":null,"count":1},{"name":"Oliver Vartiainen","email":"firoxer@gmail.com","login":null,"count":1},{"name":"Rajarshi Das","email":"rajarshid@cybage.com","login":null,"count":1},{"name":"Takehiro SUGITA","email":"sugita@iij.ad.jp","login":null,"count":1},{"name":"Thibault Jouan","email":"tj@a13.fr","login":null,"count":1},{"name":"Vincent Martinez","email":"vincent@pebbleit.com","login":null,"count":1},{"name":"slivu","email":"slivuz@gmail.com","login":null,"count":1},{"name":"Mark Eschbach","email":"meschbach@gmail.com","login":"meschbach","count":1},{"name":"Mathieu Lemoine","email":"mlemoine@mentel.com","login":"lemoinem","count":1},{"name":"Michael Lutsiuk","email":"michael.lutsiuk@gmail.com","login":"mluts","count":1},{"name":"Michael Xavier","email":"michael@michaelxavier.net","login":"MichaelXavier","count":1},{"name":"Nick Howard","email":"nick@gnipcentral.com","login":"baroquebobcat","count":1},{"name":"Nishant Modak","email":"modak.nishant@gmail.com","login":"nishantmodak","count":1},{"name":"Nobuyoshi Nakada","email":"nobu.nakada@gmail.com","login":"nobu","count":1},{"name":"Olle Jonsson","email":"olle.jonsson@gmail.com","login":"olleolleolle","count":1},{"name":"Ricardo Chimal, Jr","email":"ricardo@heroku.com","login":"ricardochimal","count":1},{"name":"Rob Sterner","email":"rob.sterner@gmail.com","login":"fermion","count":1},{"name":"Roman Samoilov","email":"rsamoilov@yandex.ua","login":"rsamoilov","count":1},{"name":"Sergio Durigan Junior","email":"sergio.durigan@canonical.com","login":"sergiodj","count":1},{"name":"Simon Menke","email":"simon.menke@gmail.com","login":"fd","count":1},{"name":"Steven Harman","email":"steven@harmanly.com","login":"stevenharman","count":1},{"name":"Tim Shadel","email":"github@timshadel.com","login":"timshadel","count":1},{"name":"Tom Dalling","email":"tomdalling","login":"tomdalling","count":1},{"name":"Tony Kemp","email":"tony.kemp@newcastle.edu.au","login":"tonykemp","count":1},{"name":"Vasily Fedoseyev","email":"github@vasfed.ru","login":"Vasfed","count":1},{"name":"Victor Costan","email":"costan@gmail.com","login":"pwnall","count":1},{"name":"countingpine","email":"matthew.w.fearnley@gmail.com","login":"countingpine","count":1},{"name":"dave@kapoq.com","email":"dave@kapoq.com","login":"textgoeshere","count":1},{"name":"dug","email":"dduugg","login":"dduugg","count":1},{"name":"freemanoid","email":"freemanoid321@gmail.com","login":"freemanoid","count":1},{"name":"hasimo","email":"sulky.to@gmail.com","login":"hasimo","count":1},{"name":"huma","email":"huma@boxbot.org","login":"huma-","count":1},{"name":"patriot","email":"nazarok.oi@gmail.com","login":"nazarok","count":1},{"name":"phiggins","email":"pete@peterhiggins.org","login":"phiggins","count":1},{"name":"seedot1234","email":"54840747+seedot1234","login":"seedot1234","count":1},{"name":"Alexey Borzenkov","email":"snaury@gmail.com","login":"snaury","count":1},{"name":"Alexander Shakhmatov","email":"Xardas1307@gmail.com","login":"X2rdas","count":1},{"name":"Alex Chaffee","email":"alexch@gmail.com","login":"alexch","count":1},{"name":"Adrien Smith","email":"adrien@bouldersmiths.com","login":"PanisSupraOmnia","count":1},{"name":"Aaron Patterson","email":"aaron.patterson@gmail.com","login":"tenderlove","count":1},{"name":"David Dollar","email":"ddollar@gmail.com","login":"ddollar","count":1},{"name":"Daniel Koch","email":"koch@triple6.org","login":"kochd","count":1},{"name":"Cheah Chu Yeow","email":"chuyeow@gmail.com","login":"chuyeow","count":1},{"name":"Brian Murray","email":"brian@murraytwins.com","login":"murraybd","count":1},{"name":"Blake Mizerany","email":"blake.mizerany@gmail.com","login":"bmizerany","count":1},{"name":"Erik Tribou","email":"49534735+erikt9","login":"erikt9","count":1},{"name":"Greg Howdeshell","email":"poloka","login":"poloka","count":1},{"name":"Grey Baker","email":"greysteil@gmail.com","login":"greysteil","count":1},{"name":"James C. Davis","email":"jdavis@salsify.com","login":"jamescdavis","count":1},{"name":"James Golick","email":"james@giraffesoft.ca","login":"jamesgolick","count":1},{"name":"Jason May","email":"jmay@pobox.com","login":"jmay","count":1},{"name":"Jeffrey Harrington","email":"jeff.harrington@gmail.com","login":"jeffharrington","count":1},{"name":"Jeremy Evans","email":"code@jeremyevans.net","login":"jeremyevans","count":1},{"name":"Joel Jackson","email":"jackson.joel@gmail.com","login":"joeljackson","count":1},{"name":"Juan C. Rodriguez","email":"JuampiRodriguez@gmail.com","login":"JuanC","count":1},{"name":"Julien Ammous","email":"schmurfy@gmail.com","login":"schmurfy","count":1},{"name":"Justin Lambert","email":"jlambert@eml.cc","login":"jlambert121","count":1},{"name":"Kensuke Nagae","email":"kyanny@gmail.com","login":"kyanny","count":1},{"name":"Kunpei Sakai","email":"namusyaka@gmail.com","login":"namusyaka","count":1},{"name":"Leo Correa","email":"lcorr005@gmail.com","login":"Tonkpils","count":1},{"name":"Liam Sean Brady","email":"liamseanbrady@gmail.com","login":"liamseanbrady","count":1},{"name":"Luke Bakken","email":"luke@bowbak.org","login":"lukebakken","count":1},{"name":"Marc Anguera Insa","email":"srmarc.ai@gmail.com","login":"markets","count":1},{"name":"tise.c","email":"tiseheaini@gmail.com","login":"tiseheaini","count":1}],"past_year_committers":[{"name":"Nobuyoshi Nakada","email":"nobu.nakada@gmail.com","login":"nobu","count":1},{"name":"Marc-André Cournoyer","email":"macournoyer@gmail.com","login":"macournoyer","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-08-16T00:00:07.202Z","repositories_count":6671873,"commits_count":952104959,"contributors_count":40364727,"owners_count":1341198,"committers_count":3314366,"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":"macournoyer/thin","html_url":"https://github.com/macournoyer/thin","last_synced_at":"2026-08-12T22:30:51.620Z","status":"error","issues_count":119,"pull_requests_count":50,"avg_time_to_close_issue":102857912.1372549,"avg_time_to_close_pull_request":14001021.731707318,"issues_closed_count":102,"pull_requests_closed_count":41,"pull_request_authors_count":28,"issue_authors_count":91,"avg_comments_per_issue":1.2941176470588236,"avg_comments_per_pull_request":2.16,"merged_pull_requests_count":34,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":4,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":100788.0,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":2,"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":2.25,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":2,"created_at":"2023-05-12T18:20:37.789Z","updated_at":"2026-08-12T22:30:51.620Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/macournoyer%2Fthin/issues","issue_labels_count":{},"pull_request_labels_count":{},"issue_author_associations_count":{"NONE":112,"CONTRIBUTOR":7},"pull_request_author_associations_count":{"CONTRIBUTOR":20,"NONE":13,"COLLABORATOR":13,"OWNER":4},"issue_authors":{"ndregs":21,"TuanNguyen2807":4,"acrolink":3,"Tommybio":2,"ghost":2,"junaruga":2,"beno":1,"amoghe":1,"matheussilvasantos":1,"scanlanjames":1,"Kampfkarren":1,"virtualfunction":1,"djrobby":1,"pozelli":1,"u007":1,"rankin":1,"ndeto":1,"jaunkst":1,"ssamppa":1,"AshwiniSeetharam-Oracle":1,"earthgecko":1,"hkamphor":1,"haowangz":1,"voxik":1,"poloka":1,"hiveer":1,"vbisbest":1,"ian-kelling":1,"thesamesam":1,"Segaja":1,"nazarok":1,"ain":1,"rempargo":1,"lzap":1,"gudata":1,"dream-x":1,"Gu7z":1,"shubham-selldo":1,"yegor256":1,"arslanaly47":1,"tomdalling":1,"julik":1,"alepore":1,"thom-nic":1,"kranthi3896":1,"graial":1,"Aetherus":1,"dspaeth-faber":1,"yahonda":1,"MikeFlint":1,"clickworkorange":1,"LupinoTech":1,"nitsujri":1,"fearnowrath":1,"kyoma-takahashi":1,"emschwar":1,"lukeasrodgers":1,"lacostenycoder":1,"kenballus":1,"maoluanjuan":1,"rp-pedraza":1,"tkrotoff":1,"MichaelVacirca":1,"enzote84":1,"paradisaeidae":1,"lucaskanashiro":1,"amitkushwahanavyug":1,"moserke":1,"5ynatra":1,"haad":1,"cessien":1,"fabn":1,"lucianoshl":1,"loqs":1,"laoyouzi":1,"Intrepidd":1,"eflukx":1,"AaronMertes":1,"jsh562":1,"optix2000":1,"d-hat":1,"kballenegger":1,"bornwa00":1,"casret":1,"ChristianHirsch":1,"grosser":1,"eduardobarbiero":1,"vimutter":1,"heavydawson":1,"tagliala":1,"shravanc":1},"pull_request_authors":{"ioquatix":13,"macournoyer":4,"and9000":4,"roel4d":2,"lloeki":2,"poloka":2,"erikt9":2,"achamely":1,"Ginkggo":1,"sergiodj":1,"indrekj":1,"countingpine":1,"murraybd":1,"olleolleolle":1,"mbj":1,"seedot1234":1,"jamescdavis":1,"tomdalling":1,"nobu":1,"gogainda":1,"strelec":1,"junaruga":1,"voxik":1,"dduugg":1,"firoxer":1,"Vasfed":1,"emschwar":1,"Irvin-Solis":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-08-13T00:00:06.201Z","repositories_count":16030262,"issues_count":40447245,"pull_requests_count":130854994,"authors_count":11444367,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{"NONE":1},"past_year_pull_request_author_associations_count":{"CONTRIBUTOR":1,"OWNER":1},"past_year_issue_authors":{"graial":1},"past_year_pull_request_authors":{"macournoyer":1,"nobu":1},"maintainers":[{"login":"ioquatix","count":13,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ioquatix"},{"login":"macournoyer","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/macournoyer"}],"active_maintainers":[{"login":"macournoyer","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/macournoyer"}]},"events":{"total":{"DeleteEvent":6,"PullRequestEvent":20,"ForkEvent":46,"IssuesEvent":54,"WatchEvent":20,"IssueCommentEvent":58,"PushEvent":40,"CreateEvent":7},"last_year":{"IssuesEvent":1,"WatchEvent":1,"IssueCommentEvent":2,"PushEvent":2}},"keywords":["rack","rails","ruby","server","thin","web-server"],"dependencies":[{"ecosystem":"rubygems","filepath":"Gemfile","sha":null,"kind":"manifest","created_at":"2022-08-10T01:43:11.050Z","updated_at":"2022-08-10T01:43:11.050Z","repository_link":"https://github.com/macournoyer/thin/blob/master/Gemfile","dependencies":[{"id":991950892,"package_name":"rake-compiler","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":991950893,"package_name":"rake","ecosystem":"rubygems","requirements":"\u003e= 12.3.3","direct":true,"kind":"development","optional":false},{"id":991950894,"package_name":"rspec","ecosystem":"rubygems","requirements":"~\u003e 3.5","direct":true,"kind":"development","optional":false}]},{"ecosystem":"rubygems","filepath":"thin.gemspec","sha":null,"kind":"manifest","created_at":"2022-08-10T01:43:11.162Z","updated_at":"2022-08-10T01:43:11.162Z","repository_link":"https://github.com/macournoyer/thin/blob/master/thin.gemspec","dependencies":[{"id":991952061,"package_name":"rack","ecosystem":"rubygems","requirements":"\u003e= 1, \u003c 3","direct":true,"kind":"runtime","optional":false},{"id":991952062,"package_name":"eventmachine","ecosystem":"rubygems","requirements":"~\u003e 1.0, \u003e= 1.0.4","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/development.yml","sha":null,"kind":"manifest","created_at":"2023-01-24T04:30:40.059Z","updated_at":"2023-01-24T04:30:40.059Z","repository_link":"https://github.com/macournoyer/thin/blob/master/.github/workflows/development.yml","dependencies":[{"id":7133267231,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":7133267232,"package_name":"ruby/setup-ruby","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false}]}],"score":33.541248740779466,"created_at":"2024-12-15T21:38:07.697Z","updated_at":"2026-08-16T00:01:39.990Z","avatar_url":"https://github.com/macournoyer.png","language":"Ruby","monthly_downloads":0,"readme":"# Thin\n\n## 📌 Archived\n\nAfter 20 years, Thin is no longer maintained. If you're starting something new, or looking to move off Thin, check out [Falcon](https://github.com/socketry/falcon) — a modern, actively maintained Ruby web server.\n\nSpecial thanks to Samuel Williams, who has kept Thin maintained over the past couple of years.\n\nTo everyone who used Thin, filed issues, sent patches, or contributed over the years: thank you. This project meant a lot to me, and being part of a community because of it changed my life.\n\n— Marc\n\nA small and fast Ruby web server\n\n## Installation\n\n```\ngem install thin\n```\n\nOr add `thin` to your `Gemfile`:\n\n```ruby\ngem 'thin'\n```\n\n## Usage\n\nA +thin+ script offers an easy way to start your Rack application:\n\n```\nthin start\n```\n\nBrowse the `example` directory for sample applications.\n\n### CLI\n\nUse a rackup (config.ru) file and bind to localhost port 8080:\n\n```\nthin -R config.ru -a 127.0.0.1 -p 8080 start\n```\n\nStore the server process ID, log to a file and daemonize:\n\n```\nthin -p 9292 -P tmp/pids/thin.pid -l logs/thin.log -d start\n```\n\nThin is quite flexible in that many options can be specified at the command line (see `thin -h` for more).\n\n### Configuration files\n\nYou can create a configuration file using `thin config -C config/thin.yml`.\n\nYou can then use it with all commands, such as: `thin start -C config/thin.yml`.\n\nHere is an example config file:\n\n```yaml\n--- \nuser: www-data\ngroup: www-data\npid: tmp/pids/thin.pid\ntimeout: 30\nwait: 30\nlog: log/thin.log\nmax_conns: 1024\nrequire: []\nenvironment: production\nmax_persistent_conns: 512\nservers: 1\nthreaded: true\nno-epoll: true\ndaemonize: true\nsocket: tmp/sockets/thin.sock\nchdir: /path/to/your/apps/root\ntag: a-name-to-show-up-in-ps aux\n```\n\n## License\n\nCopyright, 2007-2025, by Marc-Andre Cournoyer and other contributors.\n\nReleased under the Ruby License, the 2-clause BSDL and the GNU General Public License (GPL) version 2 (or later). You can redistribute it and/or modify it under the terms of any of these licenses.\n\n## Credits\n\nThe parser was originally from Mongrel http://mongrel.rubyforge.org by Zed Shaw.\nMongrel is copyright 2007 Zed A. Shaw and contributors. It is licensed under\nthe Ruby license and the GPL2.\n\nThin is copyright Marc-Andre Cournoyer \u003cmacournoyer@gmail.com\u003e\n\nGet help at http://groups.google.com/group/thin-ruby/\nReport bugs at https://github.com/macournoyer/thin/issues\nand major security issues directly to me at macournoyer@gmail.com.\n","funding_links":["https://github.com/socketry/community/#funding","https://github.com/sponsors/ioquatix"],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["activerecord","activejob","mvc","rubygems","sinatra","multithreading","rspec","ruby-gem","background-jobs","rubocop"],"project_url":"https://ruby.ecosyste.ms/api/v1/projects/310","html_url":"https://ruby.ecosyste.ms/projects/310"}