{"id":369325,"url":"https://github.com/python-trio/sniffio","last_synced_at":"2026-08-24T12:36:52.088Z","repository":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":154,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-20T10:39:41.655Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-08-14T08:37:37.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"002167c7-d7dc-4de4-a844-52fbd42bd798","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36791458,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-20T02:00:06.210Z","response_time":54,"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":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-22T22:44:00.548Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9494,"followers":147,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-22T22:44:00.564Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"packages":[{"id":13775369,"name":"python-sniffio","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/python-trio/sniffio","licenses":"other","normalized_licenses":[],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":["universe/misc"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-13T12:41:36.787Z","latest_release_published_at":"2026-02-13T12:41:36.787Z","latest_release_number":"1.2.0-1","last_synced_at":"2026-03-13T19:46:01.415Z","created_at":"2026-02-13T12:41:36.314Z","updated_at":"2026-08-20T10:52:04.848Z","registry_url":"https://launchpad.net/ubuntu/+source/python-sniffio","install_command":"apt-get install python-sniffio","documentation_url":null,"metadata":{"component":"universe","architecture":"all","priority":"optional","binary":"python3-sniffio","standards_version":"4.2.1.2","maintainer":"Robie Basak \u003crobie@justgohome.co.uk\u003e","build_depends":"debhelper (\u003e= 9~), debhelper-compat (= 13), dh-python, python3, python3-pytest, python3-setuptools","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":153,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-06T07:22:09.780Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-07-30T22:52:44.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"de5dcff8-734b-447d-b709-d60e2559a4a1","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36341075,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"ssl_error","status_checked_at":"2026-08-06T04:43:02.660Z","response_time":54,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T10:52:04.848Z","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/python-sniffio?arch=source\u0026distro=ubuntu-22.04\u0026repository_url=https://launchpad.net/ubuntu/jammy","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/python-sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/python-sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/python-sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/python-sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/python-sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/python-sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/python-sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/python-sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/python-sniffio/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":971},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:46.486Z","updated_at":"2026-08-24T05:06:06.213Z","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":13952302,"name":"python-sniffio","ecosystem":"guix","description":"Detect which async library a program is running under","homepage":"https://github.com/python-trio/sniffio","licenses":"expat, asl2.0","normalized_licenses":["CERN-OHL-P-2.0"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":[],"namespace":null,"versions_count":1,"first_release_published_at":"2026-03-02T19:33:09.768Z","latest_release_published_at":"2026-03-02T19:33:09.768Z","latest_release_number":"1.3.1","last_synced_at":"2026-04-27T16:25:55.898Z","created_at":"2026-03-02T19:33:09.576Z","updated_at":"2026-08-20T11:02:07.695Z","registry_url":"https://packages.guix.gnu.org/packages/python-sniffio/1.3.1/","install_command":"guix install python-sniffio","documentation_url":"https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/python-xyz.scm#n17477","metadata":{"location":"gnu/packages/python-xyz.scm:17477","variable_name":"python-sniffio"},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":153,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-06T07:22:09.780Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-07-30T22:52:44.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"de5dcff8-734b-447d-b709-d60e2559a4a1","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36341075,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"ssl_error","status_checked_at":"2026-08-06T04:43:02.660Z","response_time":54,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T11:02:07.695Z","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/python-sniffio","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/guix/python-sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/guix/python-sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/guix/python-sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/python-sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/python-sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/python-sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/python-sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/python-sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/python-sniffio/codemeta","maintainers":[],"registry":{"name":"guix","url":"https://guix.gnu.org","ecosystem":"guix","default":true,"packages_count":32336,"maintainers_count":0,"namespaces_count":0,"keywords_count":1654,"github":"guix-mirror","metadata":{"funded_packages_count":1223},"icon_url":"https://github.com/guix-mirror.png","created_at":"2026-03-02T16:23:46.981Z","updated_at":"2026-08-24T05:05:20.073Z","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":8678216,"name":"py3-sniffio-pyc","ecosystem":"alpine","description":"Precompiled Python bytecode for py3-sniffio","homepage":"https://github.com/python-trio/sniffio","licenses":"MIT OR Apache-2.0","normalized_licenses":["MIT","Apache-2.0"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":[],"namespace":"community","versions_count":1,"first_release_published_at":"2023-04-28T23:45:29.000Z","latest_release_published_at":"2023-04-28T23:45:29.000Z","latest_release_number":"1.3.0-r2","last_synced_at":"2026-07-28T18:01:33.243Z","created_at":"2023-12-20T10:30:38.885Z","updated_at":"2026-08-20T11:02:07.829Z","registry_url":"https://pkgs.alpinelinux.org/package/v3.19/community/x86_64/py3-sniffio-pyc","install_command":"apk add py3-sniffio-pyc","documentation_url":null,"metadata":{"repository":"community","architecture":"x86_64"},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":153,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-06T07:22:09.780Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-07-30T22:52:44.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"de5dcff8-734b-447d-b709-d60e2559a4a1","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36341075,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"ssl_error","status_checked_at":"2026-08-06T04:43:02.660Z","response_time":54,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T11:02:07.828Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:apk/alpine/py3-sniffio-pyc?arch=x86_64\u0026repository_url=https://pkgs.alpinelinux.org/packages?branch=v3.19","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/alpine/py3-sniffio-pyc","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/alpine/py3-sniffio-pyc","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/alpine/py3-sniffio-pyc/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.19/packages/py3-sniffio-pyc/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.19/packages/py3-sniffio-pyc/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.19/packages/py3-sniffio-pyc/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.19/packages/py3-sniffio-pyc/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.19/packages/py3-sniffio-pyc/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.19/packages/py3-sniffio-pyc/codemeta","maintainers":[{"uuid":"bribbers@disroot.org","login":null,"name":"Bart Ribbers","email":null,"url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","packages_count":2188,"html_url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","role":null,"created_at":"2024-08-20T10:28:04.745Z","updated_at":"2024-08-20T10:28:04.745Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.19/maintainers/bribbers@disroot.org/packages"}],"registry":{"name":"alpine-v3.19","url":"https://pkgs.alpinelinux.org/packages?branch=v3.19","ecosystem":"alpine","default":false,"packages_count":23031,"maintainers_count":392,"namespaces_count":2,"keywords_count":3176,"github":"alpinelinux","metadata":{"repos":["main","community"],"funded_packages_count":957},"icon_url":"https://github.com/alpinelinux.png","created_at":"2023-12-20T09:51:56.346Z","updated_at":"2026-08-24T05:06:38.587Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.19/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.19/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.19/namespaces"}},{"id":7780142,"name":"py3-sniffio","ecosystem":"alpine","description":"Sniff out which async library your code is running under","homepage":"https://github.com/python-trio/sniffio","licenses":"MIT OR Apache-2.0","normalized_licenses":["MIT","Apache-2.0"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":[],"namespace":"community","versions_count":1,"first_release_published_at":"2023-04-28T23:45:29.000Z","latest_release_published_at":"2023-04-28T23:45:29.000Z","latest_release_number":"1.3.0-r2","last_synced_at":"2026-04-01T03:43:37.787Z","created_at":"2023-05-22T14:38:28.494Z","updated_at":"2026-08-20T11:02:07.956Z","registry_url":"https://pkgs.alpinelinux.org/package/v3.18/community/x86_64/py3-sniffio","install_command":"apk add py3-sniffio","documentation_url":null,"metadata":{"repository":"community","architecture":"x86_64"},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":153,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-06T07:22:09.780Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-07-30T22:52:44.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"de5dcff8-734b-447d-b709-d60e2559a4a1","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36341075,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"ssl_error","status_checked_at":"2026-08-06T04:43:02.660Z","response_time":54,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T11:02:07.956Z","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":19.729689292304624,"forks_count":22.547503865143884,"docker_downloads_count":null,"average":10.569298289362127},"purl":"pkg:apk/alpine/py3-sniffio?arch=x86_64\u0026repository_url=https://pkgs.alpinelinux.org/packages?branch=v3.18","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/alpine/py3-sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/alpine/py3-sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/alpine/py3-sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.18/packages/py3-sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.18/packages/py3-sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.18/packages/py3-sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.18/packages/py3-sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.18/packages/py3-sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.18/packages/py3-sniffio/codemeta","maintainers":[{"uuid":"bribbers@disroot.org","login":null,"name":"Bart Ribbers","email":null,"url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","packages_count":2146,"html_url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","role":null,"created_at":"2023-05-23T08:04:35.002Z","updated_at":"2023-05-23T08:04:35.002Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.18/maintainers/bribbers@disroot.org/packages"}],"registry":{"name":"alpine-v3.18","url":"https://pkgs.alpinelinux.org/packages?branch=v3.18","ecosystem":"alpine","default":false,"packages_count":20068,"maintainers_count":367,"namespaces_count":2,"keywords_count":3639,"github":"alpinelinux","metadata":{"repos":["main","community"],"funded_packages_count":1238},"icon_url":"https://github.com/alpinelinux.png","created_at":"2023-05-22T10:43:30.622Z","updated_at":"2026-08-22T05:06:15.110Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.18/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.18/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.18/namespaces"}},{"id":6087307,"name":"py3-sniffio","ecosystem":"alpine","description":"Sniff out which async library your code is running under","homepage":"https://github.com/python-trio/sniffio","licenses":"MIT OR Apache-2.0","normalized_licenses":["MIT","Apache-2.0"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":[],"namespace":"community","versions_count":1,"first_release_published_at":"2022-10-23T18:02:15.000Z","latest_release_published_at":"2022-10-23T18:02:15.000Z","latest_release_number":"1.3.0-r0","last_synced_at":"2026-04-01T03:50:47.866Z","created_at":"2023-01-31T20:11:31.970Z","updated_at":"2026-08-20T11:02:08.043Z","registry_url":"https://pkgs.alpinelinux.org/package/v3.17/community/x86_64/py3-sniffio","install_command":"apk add py3-sniffio","documentation_url":null,"metadata":{"repository":"community","architecture":"x86_64"},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":153,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-06T07:22:09.780Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-07-30T22:52:44.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"de5dcff8-734b-447d-b709-d60e2559a4a1","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36341075,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"ssl_error","status_checked_at":"2026-08-06T04:43:02.660Z","response_time":54,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T11:02:08.042Z","dependent_packages_count":2,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":12.748400134725497,"stargazers_count":17.907263949702482,"forks_count":20.135848209273604,"average":12.697878073425397},"purl":"pkg:apk/alpine/py3-sniffio?arch=x86_64\u0026repository_url=https://pkgs.alpinelinux.org/packages?branch=v3.17","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/alpine/py3-sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/alpine/py3-sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/alpine/py3-sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.17/packages/py3-sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.17/packages/py3-sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.17/packages/py3-sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.17/packages/py3-sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.17/packages/py3-sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.17/packages/py3-sniffio/codemeta","maintainers":[{"uuid":"bribbers@disroot.org","login":null,"name":"Bart Ribbers","email":null,"url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","packages_count":1951,"html_url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","role":null,"created_at":"2023-02-01T05:36:36.652Z","updated_at":"2023-02-01T05:36:36.652Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.17/maintainers/bribbers@disroot.org/packages"}],"registry":{"name":"alpine-v3.17","url":"https://pkgs.alpinelinux.org/packages?branch=v3.17","ecosystem":"alpine","default":false,"packages_count":17817,"maintainers_count":352,"namespaces_count":2,"keywords_count":3375,"github":"alpinelinux","metadata":{"repos":["main","community"],"funded_packages_count":1065},"icon_url":"https://github.com/alpinelinux.png","created_at":"2023-01-31T17:27:50.642Z","updated_at":"2026-08-24T05:06:44.447Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.17/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.17/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.17/namespaces"}},{"id":14513210,"name":"dev-python/sniffio","ecosystem":"gentoo","description":"Sniff out which async library your code is running under","homepage":"https://github.com/python-trio/sniffio/","licenses":"|| ( Apache-2.0 MIT )","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":["~alpha","amd64","arm","arm64","~hppa","~loong","~mips","ppc","ppc64","~riscv","~s390","~sparc","x86"],"namespace":"dev-python","versions_count":1,"first_release_published_at":"2026-05-11T16:39:47.000Z","latest_release_published_at":"2026-05-11T16:39:47.000Z","latest_release_number":"1.3.1","last_synced_at":"2026-05-27T02:38:56.937Z","created_at":"2026-05-27T02:38:56.637Z","updated_at":"2026-08-20T11:04:21.345Z","registry_url":"https://packages.gentoo.org/packages/dev-python/sniffio","install_command":"emerge dev-python/sniffio","documentation_url":"https://packages.gentoo.org/packages/dev-python/sniffio","metadata":{"category":"dev-python","slot":"0","eapi":"8","inherit":"distutils-r1","iuse":"test python_targets_pypy3_11 python_targets_python3_11 python_targets_python3_12 python_targets_python3_13 python_targets_python3_14"},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":153,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-06T07:22:09.780Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-07-30T22:52:44.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"de5dcff8-734b-447d-b709-d60e2559a4a1","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36341075,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"ssl_error","status_checked_at":"2026-08-06T04:43:02.660Z","response_time":54,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T11:04:21.345Z","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/dev-python/sniffio","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/gentoo/dev-python/sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/gentoo/dev-python/sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/gentoo/dev-python/sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/gentoo-portage/packages/dev-python%2Fsniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/gentoo-portage/packages/dev-python%2Fsniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/gentoo-portage/packages/dev-python%2Fsniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/gentoo-portage/packages/dev-python%2Fsniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/gentoo-portage/packages/dev-python%2Fsniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/gentoo-portage/packages/dev-python%2Fsniffio/codemeta","maintainers":[],"registry":{"name":"gentoo-portage","url":"https://packages.gentoo.org/","ecosystem":"gentoo","default":true,"packages_count":19524,"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":620},"icon_url":"https://github.com/gentoo.png","created_at":"2026-05-26T08:59:24.155Z","updated_at":"2026-08-24T05:05:20.930Z","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":7780143,"name":"py3-sniffio-pyc","ecosystem":"alpine","description":"Precompiled Python bytecode for py3-sniffio","homepage":"https://github.com/python-trio/sniffio","licenses":"MIT OR Apache-2.0","normalized_licenses":["MIT","Apache-2.0"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":[],"namespace":"community","versions_count":1,"first_release_published_at":"2023-04-28T23:45:29.000Z","latest_release_published_at":"2023-04-28T23:45:29.000Z","latest_release_number":"1.3.0-r2","last_synced_at":"2026-03-19T05:09:45.861Z","created_at":"2023-05-22T14:38:28.770Z","updated_at":"2026-08-20T11:04:21.514Z","registry_url":"https://pkgs.alpinelinux.org/package/v3.18/community/x86_64/py3-sniffio-pyc","install_command":"apk add py3-sniffio-pyc","documentation_url":null,"metadata":{"repository":"community","architecture":"x86_64"},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":153,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-06T07:22:09.780Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-07-30T22:52:44.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"de5dcff8-734b-447d-b709-d60e2559a4a1","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36341075,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"ssl_error","status_checked_at":"2026-08-06T04:43:02.660Z","response_time":54,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T11:04:21.514Z","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":19.729689292304624,"forks_count":22.547503865143884,"docker_downloads_count":null,"average":10.569298289362127},"purl":"pkg:apk/alpine/py3-sniffio-pyc?arch=x86_64\u0026repository_url=https://pkgs.alpinelinux.org/packages?branch=v3.18","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/alpine/py3-sniffio-pyc","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/alpine/py3-sniffio-pyc","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/alpine/py3-sniffio-pyc/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.18/packages/py3-sniffio-pyc/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.18/packages/py3-sniffio-pyc/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.18/packages/py3-sniffio-pyc/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.18/packages/py3-sniffio-pyc/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.18/packages/py3-sniffio-pyc/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.18/packages/py3-sniffio-pyc/codemeta","maintainers":[{"uuid":"bribbers@disroot.org","login":null,"name":"Bart Ribbers","email":null,"url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","packages_count":2146,"html_url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","role":null,"created_at":"2023-05-23T08:04:37.077Z","updated_at":"2023-05-23T08:04:37.077Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.18/maintainers/bribbers@disroot.org/packages"}],"registry":{"name":"alpine-v3.18","url":"https://pkgs.alpinelinux.org/packages?branch=v3.18","ecosystem":"alpine","default":false,"packages_count":20068,"maintainers_count":367,"namespaces_count":2,"keywords_count":3639,"github":"alpinelinux","metadata":{"repos":["main","community"],"funded_packages_count":1238},"icon_url":"https://github.com/alpinelinux.png","created_at":"2023-05-22T10:43:30.622Z","updated_at":"2026-08-22T05:06:15.110Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.18/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.18/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.18/namespaces"}},{"id":8678215,"name":"py3-sniffio","ecosystem":"alpine","description":"Sniff out which async library your code is running under","homepage":"https://github.com/python-trio/sniffio","licenses":"MIT OR Apache-2.0","normalized_licenses":["MIT","Apache-2.0"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":[],"namespace":"community","versions_count":1,"first_release_published_at":"2023-04-28T23:45:29.000Z","latest_release_published_at":"2023-04-28T23:45:29.000Z","latest_release_number":"1.3.0-r2","last_synced_at":"2026-04-01T03:27:43.035Z","created_at":"2023-12-20T10:30:38.759Z","updated_at":"2026-08-20T11:04:21.659Z","registry_url":"https://pkgs.alpinelinux.org/package/v3.19/community/x86_64/py3-sniffio","install_command":"apk add py3-sniffio","documentation_url":null,"metadata":{"repository":"community","architecture":"x86_64"},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":153,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-06T07:22:09.780Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-07-30T22:52:44.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"de5dcff8-734b-447d-b709-d60e2559a4a1","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36341075,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"ssl_error","status_checked_at":"2026-08-06T04:43:02.660Z","response_time":54,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T11:04:21.659Z","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:apk/alpine/py3-sniffio?arch=x86_64\u0026repository_url=https://pkgs.alpinelinux.org/packages?branch=v3.19","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/alpine/py3-sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/alpine/py3-sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/alpine/py3-sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.19/packages/py3-sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.19/packages/py3-sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.19/packages/py3-sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.19/packages/py3-sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.19/packages/py3-sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.19/packages/py3-sniffio/codemeta","maintainers":[{"uuid":"bribbers@disroot.org","login":null,"name":"Bart Ribbers","email":null,"url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","packages_count":2188,"html_url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","role":null,"created_at":"2024-02-05T01:11:14.013Z","updated_at":"2024-02-05T01:11:14.013Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.19/maintainers/bribbers@disroot.org/packages"}],"registry":{"name":"alpine-v3.19","url":"https://pkgs.alpinelinux.org/packages?branch=v3.19","ecosystem":"alpine","default":false,"packages_count":23031,"maintainers_count":392,"namespaces_count":2,"keywords_count":3176,"github":"alpinelinux","metadata":{"repos":["main","community"],"funded_packages_count":957},"icon_url":"https://github.com/alpinelinux.png","created_at":"2023-12-20T09:51:56.346Z","updated_at":"2026-08-24T05:06:38.587Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.19/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.19/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.19/namespaces"}},{"id":11766987,"name":"py3-sniffio-pyc","ecosystem":"alpine","description":"Precompiled Python bytecode for py3-sniffio","homepage":"https://github.com/python-trio/sniffio","licenses":"MIT OR Apache-2.0","normalized_licenses":["MIT","Apache-2.0"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":[],"namespace":"community","versions_count":1,"first_release_published_at":"2024-04-12T09:59:22.000Z","latest_release_published_at":"2024-04-12T09:59:22.000Z","latest_release_number":"1.3.1-r1","last_synced_at":"2026-04-01T01:55:10.075Z","created_at":"2025-06-07T18:59:34.061Z","updated_at":"2026-08-20T11:04:21.731Z","registry_url":"https://pkgs.alpinelinux.org/package/v3.22/community/x86_64/py3-sniffio-pyc","install_command":"apk add py3-sniffio-pyc","documentation_url":null,"metadata":{"repository":"community","architecture":"x86_64"},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":153,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-06T07:22:09.780Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-07-30T22:52:44.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"de5dcff8-734b-447d-b709-d60e2559a4a1","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36341075,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"ssl_error","status_checked_at":"2026-08-06T04:43:02.660Z","response_time":54,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T11:04:21.731Z","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:apk/alpine/py3-sniffio-pyc?arch=x86_64\u0026repository_url=https://pkgs.alpinelinux.org/packages?branch=v3.22","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/alpine/py3-sniffio-pyc","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/alpine/py3-sniffio-pyc","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/alpine/py3-sniffio-pyc/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.22/packages/py3-sniffio-pyc/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.22/packages/py3-sniffio-pyc/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.22/packages/py3-sniffio-pyc/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.22/packages/py3-sniffio-pyc/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.22/packages/py3-sniffio-pyc/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.22/packages/py3-sniffio-pyc/codemeta","maintainers":[{"uuid":"bribbers@disroot.org","login":null,"name":"Bart Ribbers","email":null,"url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","packages_count":2396,"html_url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","role":null,"created_at":"2025-06-08T17:02:55.072Z","updated_at":"2025-06-08T17:02:55.072Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.22/maintainers/bribbers@disroot.org/packages"}],"registry":{"name":"alpine-v3.22","url":"https://pkgs.alpinelinux.org/packages?branch=v3.22","ecosystem":"alpine","default":false,"packages_count":26323,"maintainers_count":422,"namespaces_count":2,"keywords_count":4638,"github":"alpinelinux","metadata":{"repos":["main","community"],"funded_packages_count":1803},"icon_url":"https://github.com/alpinelinux.png","created_at":"2025-06-05T10:49:56.987Z","updated_at":"2026-08-24T05:06:25.345Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.22/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.22/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.22/namespaces"}},{"id":5293483,"name":"sniffio","ecosystem":"conda","description":null,"homepage":"https://github.com/python-trio/sniffio","licenses":"Apache-2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":[],"namespace":null,"versions_count":4,"first_release_published_at":"2018-08-17T12:32:24.000Z","latest_release_published_at":"2022-09-01T16:55:57.000Z","latest_release_number":"1.3.0","last_synced_at":"2026-04-01T13:33:34.435Z","created_at":"2022-10-03T15:55:20.579Z","updated_at":"2026-08-20T11:04:21.734Z","registry_url":"https://anaconda.org/conda-forge/sniffio","install_command":"conda install -c conda-forge sniffio","documentation_url":null,"metadata":{},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":153,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-06T07:22:09.780Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-07-30T22:52:44.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"de5dcff8-734b-447d-b709-d60e2559a4a1","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36341075,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"ssl_error","status_checked_at":"2026-08-06T04:43:02.660Z","response_time":54,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T11:04:21.734Z","dependent_packages_count":14,"downloads":30825742,"downloads_period":"total","dependent_repos_count":268,"rankings":{"downloads":null,"dependent_repos_count":1.9711562453216227,"dependent_packages_count":4.471281002046011,"stargazers_count":34.797145566146014,"forks_count":39.51794001696691,"docker_downloads_count":null,"average":20.18938070762014},"purl":"pkg:conda/sniffio?repository_url=https://conda-forge.org","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/conda/sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/conda/sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/conda/sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/sniffio/codemeta","maintainers":[],"registry":{"name":"conda-forge.org","url":"https://conda-forge.org","ecosystem":"conda","default":false,"packages_count":20636,"maintainers_count":0,"namespaces_count":0,"keywords_count":13549,"github":"conda-forge","metadata":{"kind":"conda-forge","key":"CondaForge","api":"https://conda.anaconda.org","funded_packages_count":2348},"icon_url":"https://github.com/conda-forge.png","created_at":"2022-10-03T15:37:08.743Z","updated_at":"2026-08-23T05:06:09.364Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/namespaces"}},{"id":10345836,"name":"py3-sniffio-pyc","ecosystem":"alpine","description":"Precompiled Python bytecode for py3-sniffio","homepage":"https://github.com/python-trio/sniffio","licenses":"MIT OR Apache-2.0","normalized_licenses":["MIT","Apache-2.0"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":[],"namespace":"community","versions_count":1,"first_release_published_at":"2024-04-12T09:59:22.000Z","latest_release_published_at":"2024-04-12T09:59:22.000Z","latest_release_number":"1.3.1-r1","last_synced_at":"2026-03-09T00:34:27.098Z","created_at":"2024-06-11T10:42:03.206Z","updated_at":"2026-08-20T11:04:22.083Z","registry_url":"https://pkgs.alpinelinux.org/package/v3.20/community/x86_64/py3-sniffio-pyc","install_command":"apk add py3-sniffio-pyc","documentation_url":null,"metadata":{"repository":"community","architecture":"x86_64"},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":153,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-06T07:22:09.780Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-07-30T22:52:44.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"de5dcff8-734b-447d-b709-d60e2559a4a1","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36341075,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"ssl_error","status_checked_at":"2026-08-06T04:43:02.660Z","response_time":54,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T11:04:22.083Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:apk/alpine/py3-sniffio-pyc?arch=x86_64\u0026repository_url=https://pkgs.alpinelinux.org/packages?branch=v3.20","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/alpine/py3-sniffio-pyc","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/alpine/py3-sniffio-pyc","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/alpine/py3-sniffio-pyc/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.20/packages/py3-sniffio-pyc/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.20/packages/py3-sniffio-pyc/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.20/packages/py3-sniffio-pyc/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.20/packages/py3-sniffio-pyc/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.20/packages/py3-sniffio-pyc/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.20/packages/py3-sniffio-pyc/codemeta","maintainers":[{"uuid":"bribbers@disroot.org","login":null,"name":"Bart Ribbers","email":null,"url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","packages_count":2423,"html_url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","role":null,"created_at":"2024-06-12T01:38:52.918Z","updated_at":"2024-06-12T01:38:52.918Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.20/maintainers/bribbers@disroot.org/packages"}],"registry":{"name":"alpine-v3.20","url":"https://pkgs.alpinelinux.org/packages?branch=v3.20","ecosystem":"alpine","default":false,"packages_count":24162,"maintainers_count":405,"namespaces_count":2,"keywords_count":4251,"github":"alpinelinux","metadata":{"repos":["main","community"],"funded_packages_count":1543},"icon_url":"https://github.com/alpinelinux.png","created_at":"2024-06-07T11:51:39.915Z","updated_at":"2026-08-24T05:06:36.705Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.20/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.20/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.20/namespaces"}},{"id":12834021,"name":"python311Packages.sniffio","ecosystem":"nixpkgs","description":"Sniff out which async library your code is running under","homepage":"https://github.com/python-trio/sniffio","licenses":"Apache-2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":["python"],"namespace":null,"versions_count":1,"first_release_published_at":"2026-01-26T20:34:56.593Z","latest_release_published_at":"2026-01-26T20:34:56.593Z","latest_release_number":"1.3.0","last_synced_at":"2026-04-03T10:15:41.990Z","created_at":"2026-01-26T20:34:56.399Z","updated_at":"2026-08-20T11:07:32.315Z","registry_url":"https://search.nixos.org/packages?channel=23.05\u0026query=python311Packages.sniffio","install_command":"nix-env -iA nixpkgs.python311Packages.sniffio","documentation_url":"https://github.com/NixOS/nixpkgs/blob/nixos-23.05/pkgs/development/python-modules/sniffio/default.nix#L35","metadata":{"nix_attribute":"python3.11-sniffio-1.3.0","position":"pkgs/development/python-modules/sniffio/default.nix:35","platforms":["aarch64-linux","armv5tel-linux","armv6l-linux","armv7a-linux","armv7l-linux","i686-linux","loongarch64-linux","m68k-linux","microblaze-linux","microblazeel-linux","mipsel-linux","mips64el-linux","powerpc64-linux","powerpc64le-linux","riscv32-linux","riscv64-linux","s390-linux","s390x-linux","x86_64-linux","x86_64-darwin","i686-darwin","aarch64-darwin","armv7a-darwin"],"broken":false,"insecure":false,"unfree":false,"outputs":["dist","out"],"upstream_ecosystem":"pypi","upstream_name":"sniffio","upstream_purl":"pkg:pypi/sniffio"},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":153,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-06T07:22:09.780Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-07-30T22:52:44.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"de5dcff8-734b-447d-b709-d60e2559a4a1","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36341075,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"ssl_error","status_checked_at":"2026-08-06T04:43:02.660Z","response_time":54,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T11:07:32.315Z","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:nix/python311Packages.sniffio?channel=23.05\u0026repository_url=https://channels.nixos.org/nixos-23.05","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/nixpkgs/python311Packages.sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/nixpkgs/python311Packages.sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/nixpkgs/python311Packages.sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/packages/python311Packages.sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/packages/python311Packages.sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/packages/python311Packages.sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/packages/python311Packages.sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/packages/python311Packages.sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/packages/python311Packages.sniffio/codemeta","maintainers":[],"registry":{"name":"nixpkgs-23.05","url":"https://channels.nixos.org/nixos-23.05","ecosystem":"nixpkgs","default":false,"packages_count":101092,"maintainers_count":2622,"namespaces_count":0,"keywords_count":613,"github":"NixOS","metadata":{"funded_packages_count":2146},"icon_url":"https://github.com/NixOS.png","created_at":"2026-01-25T22:30:53.882Z","updated_at":"2026-08-24T05:04:28.515Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/namespaces"}},{"id":13080792,"name":"python311Packages.sniffio","ecosystem":"nixpkgs","description":"Sniff out which async library your code is running under","homepage":"https://github.com/python-trio/sniffio","licenses":"Apache-2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":["python"],"namespace":null,"versions_count":1,"first_release_published_at":"2026-02-01T17:48:04.768Z","latest_release_published_at":"2026-02-01T17:48:04.768Z","latest_release_number":"1.3.1","last_synced_at":"2026-03-07T11:15:50.804Z","created_at":"2026-02-01T17:48:04.105Z","updated_at":"2026-08-20T11:07:32.335Z","registry_url":"https://search.nixos.org/packages?channel=24.11\u0026query=python311Packages.sniffio","install_command":"nix-env -iA nixpkgs.python311Packages.sniffio","documentation_url":"https://github.com/NixOS/nixpkgs/blob/nixos-24.11/pkgs/development/python-modules/sniffio/default.nix#L40","metadata":{"nix_attribute":"python3.11-sniffio-1.3.1","position":"pkgs/development/python-modules/sniffio/default.nix:40","platforms":["aarch64-linux","armv5tel-linux","armv6l-linux","armv7a-linux","armv7l-linux","i686-linux","loongarch64-linux","m68k-linux","microblaze-linux","microblazeel-linux","mips-linux","mips64-linux","mips64el-linux","mipsel-linux","powerpc64-linux","powerpc64le-linux","riscv32-linux","riscv64-linux","s390-linux","s390x-linux","x86_64-linux","x86_64-darwin","i686-darwin","aarch64-darwin","armv7a-darwin","i686-cygwin","x86_64-cygwin","aarch64-windows","x86_64-windows","i686-windows","i686-freebsd","x86_64-freebsd"],"broken":false,"insecure":false,"unfree":false,"outputs":["dist","out"],"upstream_ecosystem":"pypi","upstream_name":"sniffio","upstream_purl":"pkg:pypi/sniffio"},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":153,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-06T07:22:09.780Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-07-30T22:52:44.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"de5dcff8-734b-447d-b709-d60e2559a4a1","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36341075,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"ssl_error","status_checked_at":"2026-08-06T04:43:02.660Z","response_time":54,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T11:07:32.335Z","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:nix/python311Packages.sniffio?channel=24.11\u0026repository_url=https://channels.nixos.org/nixos-24.11","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/nixpkgs/python311Packages.sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/nixpkgs/python311Packages.sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/nixpkgs/python311Packages.sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/packages/python311Packages.sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/packages/python311Packages.sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/packages/python311Packages.sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/packages/python311Packages.sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/packages/python311Packages.sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/packages/python311Packages.sniffio/codemeta","maintainers":[],"registry":{"name":"nixpkgs-24.11","url":"https://channels.nixos.org/nixos-24.11","ecosystem":"nixpkgs","default":false,"packages_count":121983,"maintainers_count":3777,"namespaces_count":0,"keywords_count":739,"github":"NixOS","metadata":{"funded_packages_count":3349},"icon_url":"https://github.com/NixOS.png","created_at":"2026-01-25T22:30:53.059Z","updated_at":"2026-08-24T05:04:31.033Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/namespaces"}},{"id":13800655,"name":"python-sniffio","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/python-trio/sniffio","licenses":"other","normalized_licenses":[],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":["universe/misc"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-13T17:26:27.297Z","latest_release_published_at":"2026-02-13T17:26:27.297Z","latest_release_number":"1.2.0-1","last_synced_at":"2026-03-14T08:15:25.970Z","created_at":"2026-02-13T17:26:27.090Z","updated_at":"2026-08-20T11:07:32.298Z","registry_url":"https://launchpad.net/ubuntu/+source/python-sniffio","install_command":"apt-get install python-sniffio","documentation_url":null,"metadata":{"component":"universe","architecture":"all","priority":"optional","binary":"python3-sniffio","standards_version":"4.2.1.2","maintainer":"Robie Basak \u003crobie@justgohome.co.uk\u003e","build_depends":"debhelper (\u003e= 9~), debhelper-compat (= 13), dh-python, python3, python3-pytest, python3-setuptools","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":153,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-06T07:22:09.780Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-07-30T22:52:44.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"de5dcff8-734b-447d-b709-d60e2559a4a1","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36341075,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"ssl_error","status_checked_at":"2026-08-06T04:43:02.660Z","response_time":54,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T11:07:32.298Z","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/python-sniffio?arch=source\u0026distro=ubuntu-23.10\u0026repository_url=https://launchpad.net/ubuntu/mantic","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/python-sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/python-sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/python-sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/python-sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/python-sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/python-sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/python-sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/python-sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/python-sniffio/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":1334},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:48.636Z","updated_at":"2026-08-24T05:06:10.948Z","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":5285715,"name":"sniffio","ecosystem":"conda","description":null,"homepage":"https://github.com/python-trio/sniffio","licenses":"MIT OR Apache-2.0","normalized_licenses":["MIT","Apache-2.0"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":[],"namespace":null,"versions_count":4,"first_release_published_at":"2020-07-06T18:09:58.000Z","latest_release_published_at":"2025-11-28T11:26:13.000Z","latest_release_number":"1.3.1","last_synced_at":"2026-03-28T14:08:38.452Z","created_at":"2022-10-03T15:43:15.049Z","updated_at":"2026-08-20T11:10:23.404Z","registry_url":"https://anaconda.org/anaconda/sniffio","install_command":"conda install -c anaconda sniffio","documentation_url":null,"metadata":{},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":153,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-06T07:22:09.780Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-07-30T22:52:44.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"de5dcff8-734b-447d-b709-d60e2559a4a1","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36341075,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"ssl_error","status_checked_at":"2026-08-06T04:43:02.660Z","response_time":54,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T11:10:23.404Z","dependent_packages_count":5,"downloads":null,"downloads_period":null,"dependent_repos_count":268,"rankings":{"downloads":null,"dependent_repos_count":11.386288130474178,"dependent_packages_count":15.070975536091815,"stargazers_count":44.12564180006041,"forks_count":48.86741165810933,"docker_downloads_count":null,"average":29.862579281183933},"purl":"pkg:conda/sniffio","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/conda/sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/conda/sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/conda/sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/sniffio/codemeta","maintainers":[],"registry":{"name":"anaconda.org","url":"https://anaconda.org","ecosystem":"conda","default":true,"packages_count":5475,"maintainers_count":0,"namespaces_count":0,"keywords_count":3313,"github":"Anaconda","metadata":{"kind":"anaconda","key":"Main","api":"https://repo.ananconda.com","funded_packages_count":852},"icon_url":"https://github.com/Anaconda.png","created_at":"2022-10-03T15:37:08.736Z","updated_at":"2026-08-24T05:06:29.101Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/namespaces"}},{"id":6052640,"name":"py3-sniffio","ecosystem":"alpine","description":"Sniff out which async library your code is running under","homepage":"https://github.com/python-trio/sniffio","licenses":"MIT OR Apache-2.0","normalized_licenses":["MIT","Apache-2.0"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":[],"namespace":"community","versions_count":5,"first_release_published_at":"2022-11-22T19:33:35.000Z","latest_release_published_at":"2026-03-27T19:39:20.000Z","latest_release_number":"1.3.1-r2","last_synced_at":"2026-04-02T15:28:25.874Z","created_at":"2023-01-31T18:32:34.932Z","updated_at":"2026-08-20T11:10:23.555Z","registry_url":"https://pkgs.alpinelinux.org/package/edge/community/x86_64/py3-sniffio","install_command":"apk add py3-sniffio","documentation_url":null,"metadata":{"repository":"community","architecture":"x86_64"},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":153,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-06T07:22:09.780Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-07-30T22:52:44.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"de5dcff8-734b-447d-b709-d60e2559a4a1","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36341075,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"ssl_error","status_checked_at":"2026-08-06T04:43:02.660Z","response_time":54,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T11:10:23.554Z","dependent_packages_count":1,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":6.030839073262366,"stargazers_count":21.211646837820915,"forks_count":23.30932999373826,"average":12.637953976205385},"purl":"pkg:apk/alpine/py3-sniffio?arch=x86_64\u0026repository_url=https://pkgs.alpinelinux.org/packages?branch=edge","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/alpine/py3-sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/alpine/py3-sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/alpine/py3-sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-edge/packages/py3-sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-edge/packages/py3-sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-edge/packages/py3-sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-edge/packages/py3-sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-edge/packages/py3-sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-edge/packages/py3-sniffio/codemeta","maintainers":[{"uuid":"bribbers@disroot.org","login":null,"name":"Bart Ribbers","email":"bribbers@disroot.org","url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","packages_count":3041,"html_url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","role":null,"created_at":"2023-01-31T22:03:45.232Z","updated_at":"2023-01-31T22:03:45.232Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-edge/maintainers/bribbers@disroot.org/packages"}],"registry":{"name":"alpine-edge","url":"https://pkgs.alpinelinux.org/packages?branch=edge","ecosystem":"alpine","default":false,"packages_count":39924,"maintainers_count":905,"namespaces_count":3,"keywords_count":6584,"github":"alpinelinux","metadata":{"repos":["main","community","testing"],"funded_packages_count":2944},"icon_url":"https://github.com/alpinelinux.png","created_at":"2023-01-31T17:27:50.616Z","updated_at":"2026-08-24T05:05:51.343Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-edge/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-edge/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-edge/namespaces"}},{"id":11140312,"name":"py3-sniffio","ecosystem":"alpine","description":"Sniff out which async library your code is running under","homepage":"https://github.com/python-trio/sniffio","licenses":"MIT OR Apache-2.0","normalized_licenses":["MIT","Apache-2.0"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":[],"namespace":"community","versions_count":1,"first_release_published_at":"2024-04-12T09:59:22.000Z","latest_release_published_at":"2024-04-12T09:59:22.000Z","latest_release_number":"1.3.1-r1","last_synced_at":"2026-04-01T01:48:02.464Z","created_at":"2024-12-07T13:16:48.367Z","updated_at":"2026-08-20T11:22:21.251Z","registry_url":"https://pkgs.alpinelinux.org/package/v3.21/community/x86_64/py3-sniffio","install_command":"apk add py3-sniffio","documentation_url":null,"metadata":{"repository":"community","architecture":"x86_64"},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":153,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-06T07:22:09.780Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-07-30T22:52:44.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"de5dcff8-734b-447d-b709-d60e2559a4a1","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36341075,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"ssl_error","status_checked_at":"2026-08-06T04:43:02.660Z","response_time":54,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T11:22:21.251Z","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:apk/alpine/py3-sniffio?arch=x86_64\u0026repository_url=https://pkgs.alpinelinux.org/packages?branch=v3.21","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/alpine/py3-sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/alpine/py3-sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/alpine/py3-sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.21/packages/py3-sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.21/packages/py3-sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.21/packages/py3-sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.21/packages/py3-sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.21/packages/py3-sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.21/packages/py3-sniffio/codemeta","maintainers":[{"uuid":"bribbers@disroot.org","login":null,"name":"Bart Ribbers","email":null,"url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","packages_count":2462,"html_url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","role":null,"created_at":"2024-12-18T13:37:11.077Z","updated_at":"2024-12-18T13:37:11.077Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.21/maintainers/bribbers@disroot.org/packages"}],"registry":{"name":"alpine-v3.21","url":"https://pkgs.alpinelinux.org/packages?branch=v3.21","ecosystem":"alpine","default":false,"packages_count":25394,"maintainers_count":413,"namespaces_count":2,"keywords_count":3607,"github":"alpinelinux","metadata":{"repos":["main","community"],"funded_packages_count":1400},"icon_url":"https://github.com/alpinelinux.png","created_at":"2024-12-06T12:06:36.014Z","updated_at":"2026-08-24T05:06:22.358Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.21/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.21/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.21/namespaces"}},{"id":14533728,"name":"misc/py-sniffio","ecosystem":"pkgsrc","description":"Sniff out which async library your code is running under","homepage":"https://github.com/python-trio/sniffio","licenses":"mit","normalized_licenses":["MIT"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":["misc","python"],"namespace":"misc","versions_count":1,"first_release_published_at":"2026-03-19T05:33:32.000Z","latest_release_published_at":"2026-03-19T05:33:32.000Z","latest_release_number":"1.3.1nb1","last_synced_at":"2026-05-27T08:25:22.609Z","created_at":"2026-05-27T08:25:22.245Z","updated_at":"2026-08-20T11:33:20.316Z","registry_url":"https://pkgsrc.se/misc/py-sniffio","install_command":"pkg_add py311-sniffio","documentation_url":"https://pkgsrc.se/misc/py-sniffio","metadata":{"pkg_slug":"py-sniffio","pkgbase":"py311-sniffio","machine_arch":"x86_64","opsys":"NetBSD","pkgname_latest":"py311-sniffio-1.3.1nb1"},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":153,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-06T07:22:09.780Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-07-30T22:52:44.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"de5dcff8-734b-447d-b709-d60e2559a4a1","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36341075,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"ssl_error","status_checked_at":"2026-08-06T04:43:02.660Z","response_time":54,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T11:33:20.316Z","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/misc/py-sniffio?arch=x86_64\u0026os=NetBSD","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pkgsrc/misc/py-sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pkgsrc/misc/py-sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pkgsrc/misc/py-sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pkgsrc-netbsd-x86_64-10.1-all/packages/misc%2Fpy-sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pkgsrc-netbsd-x86_64-10.1-all/packages/misc%2Fpy-sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/pkgsrc-netbsd-x86_64-10.1-all/packages/misc%2Fpy-sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pkgsrc-netbsd-x86_64-10.1-all/packages/misc%2Fpy-sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pkgsrc-netbsd-x86_64-10.1-all/packages/misc%2Fpy-sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pkgsrc-netbsd-x86_64-10.1-all/packages/misc%2Fpy-sniffio/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":368,"github":"pkgsrc","metadata":{"funded_packages_count":479},"icon_url":"https://github.com/pkgsrc.png","created_at":"2026-05-26T08:59:24.518Z","updated_at":"2026-08-24T05:00:24.175Z","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":13307379,"name":"python311Packages.sniffio","ecosystem":"nixpkgs","description":"Sniff out which async library your code is running under","homepage":"https://github.com/python-trio/sniffio","licenses":"Apache-2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":["python"],"namespace":null,"versions_count":1,"first_release_published_at":"2026-02-02T07:07:59.063Z","latest_release_published_at":"2026-02-02T07:07:59.063Z","latest_release_number":"1.3.0","last_synced_at":"2026-04-12T23:01:47.596Z","created_at":"2026-02-02T07:07:58.774Z","updated_at":"2026-08-20T11:36:07.678Z","registry_url":"https://search.nixos.org/packages?channel=23.11\u0026query=python311Packages.sniffio","install_command":"nix-env -iA nixpkgs.python311Packages.sniffio","documentation_url":"https://github.com/NixOS/nixpkgs/blob/nixos-23.11/pkgs/development/python-modules/sniffio/default.nix#L35","metadata":{"nix_attribute":"python3.11-sniffio-1.3.0","position":"pkgs/development/python-modules/sniffio/default.nix:35","platforms":["aarch64-linux","armv5tel-linux","armv6l-linux","armv7a-linux","armv7l-linux","i686-linux","loongarch64-linux","m68k-linux","microblaze-linux","microblazeel-linux","mips-linux","mips64-linux","mips64el-linux","mipsel-linux","powerpc64-linux","powerpc64le-linux","riscv32-linux","riscv64-linux","s390-linux","s390x-linux","x86_64-linux","x86_64-darwin","i686-darwin","aarch64-darwin","armv7a-darwin","i686-cygwin","x86_64-cygwin","x86_64-windows","i686-windows"],"broken":false,"insecure":false,"unfree":false,"outputs":["dist","out"],"upstream_ecosystem":"pypi","upstream_name":"sniffio","upstream_purl":"pkg:pypi/sniffio"},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":153,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-06T07:22:09.780Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-07-30T22:52:44.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"de5dcff8-734b-447d-b709-d60e2559a4a1","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36341075,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"ssl_error","status_checked_at":"2026-08-06T04:43:02.660Z","response_time":54,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T11:36:07.678Z","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:nix/python311Packages.sniffio?channel=23.11\u0026repository_url=https://channels.nixos.org/nixos-23.11","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/nixpkgs/python311Packages.sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/nixpkgs/python311Packages.sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/nixpkgs/python311Packages.sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/packages/python311Packages.sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/packages/python311Packages.sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/packages/python311Packages.sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/packages/python311Packages.sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/packages/python311Packages.sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/packages/python311Packages.sniffio/codemeta","maintainers":[],"registry":{"name":"nixpkgs-23.11","url":"https://channels.nixos.org/nixos-23.11","ecosystem":"nixpkgs","default":false,"packages_count":108178,"maintainers_count":2997,"namespaces_count":0,"keywords_count":569,"github":"NixOS","metadata":{"funded_packages_count":3080},"icon_url":"https://github.com/NixOS.png","created_at":"2026-01-25T22:30:53.577Z","updated_at":"2026-08-24T05:04:51.596Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/namespaces"}},{"id":13089642,"name":"python312Packages.sniffio","ecosystem":"nixpkgs","description":"Sniff out which async library your code is running under","homepage":"https://github.com/python-trio/sniffio","licenses":"Apache-2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":["python"],"namespace":null,"versions_count":1,"first_release_published_at":"2026-02-01T18:13:59.796Z","latest_release_published_at":"2026-02-01T18:13:59.796Z","latest_release_number":"1.3.1","last_synced_at":"2026-03-09T01:20:52.876Z","created_at":"2026-02-01T18:13:55.933Z","updated_at":"2026-08-20T11:36:08.069Z","registry_url":"https://search.nixos.org/packages?channel=24.11\u0026query=python312Packages.sniffio","install_command":"nix-env -iA nixpkgs.python312Packages.sniffio","documentation_url":"https://github.com/NixOS/nixpkgs/blob/nixos-24.11/pkgs/development/python-modules/sniffio/default.nix#L40","metadata":{"nix_attribute":"python3.12-sniffio-1.3.1","position":"pkgs/development/python-modules/sniffio/default.nix:40","platforms":["aarch64-linux","armv5tel-linux","armv6l-linux","armv7a-linux","armv7l-linux","i686-linux","loongarch64-linux","m68k-linux","microblaze-linux","microblazeel-linux","mips-linux","mips64-linux","mips64el-linux","mipsel-linux","powerpc64-linux","powerpc64le-linux","riscv32-linux","riscv64-linux","s390-linux","s390x-linux","x86_64-linux","x86_64-darwin","i686-darwin","aarch64-darwin","armv7a-darwin","i686-cygwin","x86_64-cygwin","aarch64-windows","x86_64-windows","i686-windows","i686-freebsd","x86_64-freebsd"],"broken":false,"insecure":false,"unfree":false,"outputs":["dist","out"],"upstream_ecosystem":"pypi","upstream_name":"sniffio","upstream_purl":"pkg:pypi/sniffio"},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":154,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-20T10:39:41.655Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-08-14T08:37:37.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"002167c7-d7dc-4de4-a844-52fbd42bd798","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36791458,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-20T02:00:06.210Z","response_time":54,"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":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T11:36:08.069Z","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:nix/python312Packages.sniffio?channel=24.11\u0026repository_url=https://channels.nixos.org/nixos-24.11","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/nixpkgs/python312Packages.sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/nixpkgs/python312Packages.sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/nixpkgs/python312Packages.sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/packages/python312Packages.sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/packages/python312Packages.sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/packages/python312Packages.sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/packages/python312Packages.sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/packages/python312Packages.sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/packages/python312Packages.sniffio/codemeta","maintainers":[],"registry":{"name":"nixpkgs-24.11","url":"https://channels.nixos.org/nixos-24.11","ecosystem":"nixpkgs","default":false,"packages_count":121983,"maintainers_count":3777,"namespaces_count":0,"keywords_count":739,"github":"NixOS","metadata":{"funded_packages_count":3349},"icon_url":"https://github.com/NixOS.png","created_at":"2026-01-25T22:30:53.059Z","updated_at":"2026-08-24T05:04:31.033Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/namespaces"}},{"id":11140313,"name":"py3-sniffio-pyc","ecosystem":"alpine","description":"Precompiled Python bytecode for py3-sniffio","homepage":"https://github.com/python-trio/sniffio","licenses":"MIT OR Apache-2.0","normalized_licenses":["MIT","Apache-2.0"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":[],"namespace":"community","versions_count":1,"first_release_published_at":"2024-04-12T09:59:22.000Z","latest_release_published_at":"2024-04-12T09:59:22.000Z","latest_release_number":"1.3.1-r1","last_synced_at":"2026-04-01T01:49:39.688Z","created_at":"2024-12-07T13:16:48.886Z","updated_at":"2026-08-20T12:03:18.715Z","registry_url":"https://pkgs.alpinelinux.org/package/v3.21/community/x86_64/py3-sniffio-pyc","install_command":"apk add py3-sniffio-pyc","documentation_url":null,"metadata":{"repository":"community","architecture":"x86_64"},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":154,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-20T10:39:41.655Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-08-14T08:37:37.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"002167c7-d7dc-4de4-a844-52fbd42bd798","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36791458,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-20T02:00:06.210Z","response_time":54,"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":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T12:03:18.715Z","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:apk/alpine/py3-sniffio-pyc?arch=x86_64\u0026repository_url=https://pkgs.alpinelinux.org/packages?branch=v3.21","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/alpine/py3-sniffio-pyc","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/alpine/py3-sniffio-pyc","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/alpine/py3-sniffio-pyc/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.21/packages/py3-sniffio-pyc/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.21/packages/py3-sniffio-pyc/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.21/packages/py3-sniffio-pyc/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.21/packages/py3-sniffio-pyc/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.21/packages/py3-sniffio-pyc/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.21/packages/py3-sniffio-pyc/codemeta","maintainers":[{"uuid":"bribbers@disroot.org","login":null,"name":"Bart Ribbers","email":null,"url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","packages_count":2462,"html_url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","role":null,"created_at":"2024-12-18T13:37:10.380Z","updated_at":"2024-12-18T13:37:10.380Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.21/maintainers/bribbers@disroot.org/packages"}],"registry":{"name":"alpine-v3.21","url":"https://pkgs.alpinelinux.org/packages?branch=v3.21","ecosystem":"alpine","default":false,"packages_count":25394,"maintainers_count":413,"namespaces_count":2,"keywords_count":3607,"github":"alpinelinux","metadata":{"repos":["main","community"],"funded_packages_count":1400},"icon_url":"https://github.com/alpinelinux.png","created_at":"2024-12-06T12:06:36.014Z","updated_at":"2026-08-24T05:06:22.358Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.21/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.21/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.21/namespaces"}},{"id":12821687,"name":"python310Packages.sniffio","ecosystem":"nixpkgs","description":"Sniff out which async library your code is running under","homepage":"https://github.com/python-trio/sniffio","licenses":"Apache-2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":["python"],"namespace":null,"versions_count":1,"first_release_published_at":"2026-01-26T18:12:16.899Z","latest_release_published_at":"2026-01-26T18:12:16.899Z","latest_release_number":"1.3.0","last_synced_at":"2026-03-09T01:20:39.150Z","created_at":"2026-01-26T18:12:16.744Z","updated_at":"2026-08-20T12:22:20.467Z","registry_url":"https://search.nixos.org/packages?channel=23.05\u0026query=python310Packages.sniffio","install_command":"nix-env -iA nixpkgs.python310Packages.sniffio","documentation_url":"https://github.com/NixOS/nixpkgs/blob/nixos-23.05/pkgs/development/python-modules/sniffio/default.nix#L35","metadata":{"nix_attribute":"python3.10-sniffio-1.3.0","position":"pkgs/development/python-modules/sniffio/default.nix:35","platforms":["aarch64-linux","armv5tel-linux","armv6l-linux","armv7a-linux","armv7l-linux","i686-linux","loongarch64-linux","m68k-linux","microblaze-linux","microblazeel-linux","mipsel-linux","mips64el-linux","powerpc64-linux","powerpc64le-linux","riscv32-linux","riscv64-linux","s390-linux","s390x-linux","x86_64-linux","x86_64-darwin","i686-darwin","aarch64-darwin","armv7a-darwin"],"broken":false,"insecure":false,"unfree":false,"outputs":["dist","out"],"upstream_ecosystem":"pypi","upstream_name":"sniffio","upstream_purl":"pkg:pypi/sniffio"},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":154,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-20T10:39:41.655Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-08-14T08:37:37.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"002167c7-d7dc-4de4-a844-52fbd42bd798","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36791458,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-20T02:00:06.210Z","response_time":54,"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":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T12:22:20.467Z","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:nix/python310Packages.sniffio?channel=23.05\u0026repository_url=https://channels.nixos.org/nixos-23.05","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/nixpkgs/python310Packages.sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/nixpkgs/python310Packages.sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/nixpkgs/python310Packages.sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/packages/python310Packages.sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/packages/python310Packages.sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/packages/python310Packages.sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/packages/python310Packages.sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/packages/python310Packages.sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/packages/python310Packages.sniffio/codemeta","maintainers":[],"registry":{"name":"nixpkgs-23.05","url":"https://channels.nixos.org/nixos-23.05","ecosystem":"nixpkgs","default":false,"packages_count":101092,"maintainers_count":2622,"namespaces_count":0,"keywords_count":613,"github":"NixOS","metadata":{"funded_packages_count":2146},"icon_url":"https://github.com/NixOS.png","created_at":"2026-01-25T22:30:53.882Z","updated_at":"2026-08-24T05:04:28.515Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/namespaces"}},{"id":13665731,"name":"python-sniffio","ecosystem":"debian","description":null,"homepage":"https://github.com/python-trio/sniffio","licenses":"other","normalized_licenses":[],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":["misc"],"namespace":"main","versions_count":1,"first_release_published_at":"2026-02-12T10:48:03.155Z","latest_release_published_at":"2026-02-12T10:48:03.155Z","latest_release_number":"1.3.1-1","last_synced_at":"2026-03-14T10:00:37.283Z","created_at":"2026-02-12T10:48:02.937Z","updated_at":"2026-08-20T12:50:08.083Z","registry_url":"https://tracker.debian.org/pkg/python-sniffio","install_command":"apt-get install python-sniffio","documentation_url":"https://packages.debian.org/trixie/python-sniffio","metadata":{"component":"main","architecture":"all","priority":"extra","binary":"python-sniffio-doc, python3-sniffio","standards_version":"4.6.2","maintainer":"Debian Python Team \u003cteam+python@tracker.debian.org\u003e","build_depends":"debhelper-compat (= 13), dh-python, pybuild-plugin-pyproject, python3-all, python3-pytest, python3-setuptools, python3-sphinx, python3-sphinx-rtd-theme, python3-sphinxcontrib.trio, python3-trio","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":154,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-20T10:39:41.655Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-08-14T08:37:37.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"002167c7-d7dc-4de4-a844-52fbd42bd798","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36791458,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-20T02:00:06.210Z","response_time":54,"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":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T12:50:08.083Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:deb/debian/python-sniffio?arch=source\u0026distro=debian-13\u0026repository_url=https://packages.debian.org/trixie","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/debian/python-sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/debian/python-sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/debian/python-sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/python-sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/python-sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/python-sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/python-sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/python-sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/python-sniffio/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":1681},"icon_url":"https://github.com/debian.png","created_at":"2026-02-04T11:01:50.448Z","updated_at":"2026-08-24T05:05:13.674Z","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":6208510,"name":"py3-sniffio","ecosystem":"alpine","description":"Sniff out which async library your code is running under","homepage":"https://github.com/python-trio/sniffio","licenses":"MIT OR Apache-2.0","normalized_licenses":["MIT","Apache-2.0"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":[],"namespace":"community","versions_count":1,"first_release_published_at":"2020-10-31T20:37:15.000Z","latest_release_published_at":"2020-10-31T20:37:15.000Z","latest_release_number":"1.2.0-r0","last_synced_at":"2026-04-01T01:05:27.968Z","created_at":"2023-02-01T02:43:37.729Z","updated_at":"2026-08-20T12:50:08.090Z","registry_url":"https://pkgs.alpinelinux.org/package/v3.13/community/x86_64/py3-sniffio","install_command":"apk add py3-sniffio","documentation_url":null,"metadata":{"repository":"community","architecture":"x86_64"},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":154,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-20T10:39:41.655Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-08-14T08:37:37.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"002167c7-d7dc-4de4-a844-52fbd42bd798","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36791458,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-20T02:00:06.210Z","response_time":54,"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":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T12:50:08.089Z","dependent_packages_count":2,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":9.376124343383465,"stargazers_count":12.03137367777218,"forks_count":13.815931496006332,"average":8.805857379290494},"purl":"pkg:apk/alpine/py3-sniffio?arch=x86_64\u0026repository_url=https://pkgs.alpinelinux.org/packages?branch=v3.13","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/alpine/py3-sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/alpine/py3-sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/alpine/py3-sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.13/packages/py3-sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.13/packages/py3-sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.13/packages/py3-sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.13/packages/py3-sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.13/packages/py3-sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.13/packages/py3-sniffio/codemeta","maintainers":[{"uuid":"bribbers@disroot.org","login":null,"name":"Bart Ribbers","email":null,"url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","packages_count":1436,"html_url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","role":null,"created_at":"2023-02-20T01:47:37.864Z","updated_at":"2023-02-20T01:47:37.864Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.13/maintainers/bribbers@disroot.org/packages"}],"registry":{"name":"alpine-v3.13","url":"https://pkgs.alpinelinux.org/packages?branch=v3.13","ecosystem":"alpine","default":false,"packages_count":13897,"maintainers_count":231,"namespaces_count":2,"keywords_count":1898,"github":"alpinelinux","metadata":{"repos":["main","community"],"funded_packages_count":599},"icon_url":"https://github.com/alpinelinux.png","created_at":"2023-01-31T17:27:50.734Z","updated_at":"2026-08-24T05:03:26.518Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.13/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.13/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.13/namespaces"}},{"id":13299715,"name":"python310Packages.sniffio","ecosystem":"nixpkgs","description":"Sniff out which async library your code is running under","homepage":"https://github.com/python-trio/sniffio","licenses":"Apache-2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":["python"],"namespace":null,"versions_count":1,"first_release_published_at":"2026-02-02T06:38:19.504Z","latest_release_published_at":"2026-02-02T06:38:19.504Z","latest_release_number":"1.3.0","last_synced_at":"2026-04-15T05:05:54.420Z","created_at":"2026-02-02T06:37:37.010Z","updated_at":"2026-08-20T13:00:06.777Z","registry_url":"https://search.nixos.org/packages?channel=23.11\u0026query=python310Packages.sniffio","install_command":"nix-env -iA nixpkgs.python310Packages.sniffio","documentation_url":"https://github.com/NixOS/nixpkgs/blob/nixos-23.11/pkgs/development/python-modules/sniffio/default.nix#L35","metadata":{"nix_attribute":"python3.10-sniffio-1.3.0","position":"pkgs/development/python-modules/sniffio/default.nix:35","platforms":["aarch64-linux","armv5tel-linux","armv6l-linux","armv7a-linux","armv7l-linux","i686-linux","loongarch64-linux","m68k-linux","microblaze-linux","microblazeel-linux","mips-linux","mips64-linux","mips64el-linux","mipsel-linux","powerpc64-linux","powerpc64le-linux","riscv32-linux","riscv64-linux","s390-linux","s390x-linux","x86_64-linux","x86_64-darwin","i686-darwin","aarch64-darwin","armv7a-darwin","i686-cygwin","x86_64-cygwin","x86_64-windows","i686-windows"],"broken":false,"insecure":false,"unfree":false,"outputs":["dist","out"],"upstream_ecosystem":"pypi","upstream_name":"sniffio","upstream_purl":"pkg:pypi/sniffio"},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":154,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-20T10:39:41.655Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-08-14T08:37:37.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"002167c7-d7dc-4de4-a844-52fbd42bd798","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36791458,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-20T02:00:06.210Z","response_time":54,"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":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T13:00:06.777Z","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:nix/python310Packages.sniffio?channel=23.11\u0026repository_url=https://channels.nixos.org/nixos-23.11","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/nixpkgs/python310Packages.sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/nixpkgs/python310Packages.sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/nixpkgs/python310Packages.sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/packages/python310Packages.sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/packages/python310Packages.sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/packages/python310Packages.sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/packages/python310Packages.sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/packages/python310Packages.sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/packages/python310Packages.sniffio/codemeta","maintainers":[],"registry":{"name":"nixpkgs-23.11","url":"https://channels.nixos.org/nixos-23.11","ecosystem":"nixpkgs","default":false,"packages_count":108178,"maintainers_count":2997,"namespaces_count":0,"keywords_count":569,"github":"NixOS","metadata":{"funded_packages_count":3080},"icon_url":"https://github.com/NixOS.png","created_at":"2026-01-25T22:30:53.577Z","updated_at":"2026-08-24T05:04:51.596Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/namespaces"}},{"id":13010409,"name":"py3-sniffio","ecosystem":"alpine","description":"Sniff out which async library your code is running under","homepage":"https://github.com/python-trio/sniffio","licenses":"MIT OR Apache-2.0","normalized_licenses":["MIT","Apache-2.0"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":[],"namespace":"community","versions_count":1,"first_release_published_at":"2024-04-12T09:59:22.000Z","latest_release_published_at":"2024-04-12T09:59:22.000Z","latest_release_number":"1.3.1-r1","last_synced_at":"2026-04-09T01:04:01.102Z","created_at":"2026-01-31T01:21:02.940Z","updated_at":"2026-08-20T13:00:07.309Z","registry_url":"https://pkgs.alpinelinux.org/package/v3.23/community/x86_64/py3-sniffio","install_command":"apk add py3-sniffio","documentation_url":null,"metadata":{"repository":"community","architecture":"x86_64"},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":154,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-20T10:39:41.655Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-08-14T08:37:37.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"002167c7-d7dc-4de4-a844-52fbd42bd798","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36791458,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-20T02:00:06.210Z","response_time":54,"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":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T13:00:07.309Z","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:apk/alpine/py3-sniffio?arch=x86_64\u0026repository_url=https://pkgs.alpinelinux.org/packages?branch=v3.23","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/alpine/py3-sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/alpine/py3-sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/alpine/py3-sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.23/packages/py3-sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.23/packages/py3-sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.23/packages/py3-sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.23/packages/py3-sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.23/packages/py3-sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.23/packages/py3-sniffio/codemeta","maintainers":[{"uuid":"bribbers@disroot.org","login":null,"name":"Bart Ribbers","email":"bribbers@disroot.org","url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","packages_count":2364,"html_url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","role":null,"created_at":"2026-03-03T16:30:12.840Z","updated_at":"2026-03-03T16:30:12.840Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.23/maintainers/bribbers@disroot.org/packages"}],"registry":{"name":"alpine-v3.23","url":"https://pkgs.alpinelinux.org/packages?branch=v3.23","ecosystem":"alpine","default":false,"packages_count":27576,"maintainers_count":428,"namespaces_count":2,"keywords_count":189,"github":"alpinelinux","metadata":{"repos":["main","community"],"funded_packages_count":1042},"icon_url":"https://github.com/alpinelinux.png","created_at":"2026-01-24T14:35:50.739Z","updated_at":"2026-08-24T05:05:17.086Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.23/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.23/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.23/namespaces"}},{"id":13602708,"name":"python-sniffio","ecosystem":"debian","description":null,"homepage":"https://github.com/python-trio/sniffio","licenses":"other","normalized_licenses":[],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":["misc"],"namespace":"main","versions_count":1,"first_release_published_at":"2026-02-11T11:00:44.752Z","latest_release_published_at":"2026-02-11T11:00:44.752Z","latest_release_number":"1.0.0-1","last_synced_at":"2026-03-13T18:05:57.693Z","created_at":"2026-02-11T11:00:44.588Z","updated_at":"2026-08-20T13:43:43.845Z","registry_url":"https://tracker.debian.org/pkg/python-sniffio","install_command":"apt-get install python-sniffio","documentation_url":"https://packages.debian.org/buster/python-sniffio","metadata":{"component":"main","architecture":"all","priority":"extra","binary":"python3-sniffio","standards_version":"4.2.1.2","maintainer":"Robie Basak \u003crobie@justgohome.co.uk\u003e","build_depends":"debhelper (\u003e= 9~), dh-python, python3 (\u003e= 3.7~) | python3.7, python3-pytest, python3-setuptools","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":154,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-20T10:39:41.655Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-08-14T08:37:37.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"002167c7-d7dc-4de4-a844-52fbd42bd798","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36791458,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-20T02:00:06.210Z","response_time":54,"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":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T13:43:43.844Z","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/python-sniffio?arch=source\u0026distro=debian-10\u0026repository_url=https://packages.debian.org/buster","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/debian/python-sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/debian/python-sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/debian/python-sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/debian-10/packages/python-sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-10/packages/python-sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/debian-10/packages/python-sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-10/packages/python-sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-10/packages/python-sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/debian-10/packages/python-sniffio/codemeta","maintainers":[],"registry":{"name":"debian-10","url":"https://packages.debian.org/buster","ecosystem":"debian","default":false,"packages_count":28836,"maintainers_count":0,"namespaces_count":3,"keywords_count":903,"github":"debian","metadata":{"codename":"buster","mirror":"http://archive.debian.org/debian","funded_packages_count":606},"icon_url":"https://github.com/debian.png","created_at":"2026-02-04T11:01:50.156Z","updated_at":"2026-08-24T05:03:25.597Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-10/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-10/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/debian-10/namespaces"}},{"id":13563476,"name":"python-sniffio","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/python-trio/sniffio","licenses":"other","normalized_licenses":[],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":["universe/misc"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-11T05:57:02.944Z","latest_release_published_at":"2026-02-11T05:57:02.944Z","latest_release_number":"1.2.0-1","last_synced_at":"2026-03-11T06:06:32.708Z","created_at":"2026-02-11T05:57:02.760Z","updated_at":"2026-08-20T14:10:36.033Z","registry_url":"https://launchpad.net/ubuntu/+source/python-sniffio","install_command":"apt-get install python-sniffio","documentation_url":null,"metadata":{"component":"universe","architecture":"all","priority":"optional","binary":"python3-sniffio","standards_version":"4.2.1.2","maintainer":"Robie Basak \u003crobie@justgohome.co.uk\u003e","build_depends":"debhelper (\u003e= 9~), debhelper-compat (= 13), dh-python, python3, python3-pytest, python3-setuptools","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":154,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-20T10:39:41.655Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-08-14T08:37:37.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"002167c7-d7dc-4de4-a844-52fbd42bd798","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36791458,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-20T02:00:06.210Z","response_time":54,"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":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T14:10:36.033Z","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/python-sniffio?arch=source\u0026distro=ubuntu-23.04\u0026repository_url=https://launchpad.net/ubuntu/lunar","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/python-sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/python-sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/python-sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/python-sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/python-sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/python-sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/python-sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/python-sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/python-sniffio/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":999,"github":"ubuntu","metadata":{"codename":"lunar","mirror":"http://old-releases.ubuntu.com/ubuntu","funded_packages_count":1100},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:49.117Z","updated_at":"2026-08-24T05:06:12.490Z","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":12900993,"name":"python314Packages.sniffio","ecosystem":"nixpkgs","description":"Sniff out which async library your code is running under","homepage":"https://github.com/python-trio/sniffio","licenses":"Apache-2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":["python"],"namespace":null,"versions_count":1,"first_release_published_at":"2026-01-27T10:21:13.972Z","latest_release_published_at":"2026-01-27T10:21:13.972Z","latest_release_number":"1.3.1","last_synced_at":"2026-03-09T01:25:48.081Z","created_at":"2026-01-27T10:21:13.324Z","updated_at":"2026-08-20T17:13:25.368Z","registry_url":"https://search.nixos.org/packages?channel=unstable\u0026query=python314Packages.sniffio","install_command":"nix-env -iA nixpkgs.python314Packages.sniffio","documentation_url":"https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/development/python-modules/sniffio/default.nix#L40","metadata":{"nix_attribute":"python3.14-sniffio-1.3.1","position":"pkgs/development/python-modules/sniffio/default.nix:40","platforms":["aarch64-linux","armv5tel-linux","armv6l-linux","armv7a-linux","armv7l-linux","i686-linux","loongarch64-linux","m68k-linux","microblaze-linux","microblazeel-linux","mips-linux","mips64-linux","mips64el-linux","mipsel-linux","powerpc-linux","powerpc64-linux","powerpc64le-linux","riscv32-linux","riscv64-linux","s390-linux","s390x-linux","x86_64-linux","x86_64-darwin","aarch64-darwin","aarch64-windows","x86_64-windows","i686-windows","i686-freebsd","x86_64-freebsd","aarch64-freebsd"],"broken":false,"insecure":false,"unfree":false,"outputs":["dist","out"],"upstream_ecosystem":"pypi","upstream_name":"sniffio","upstream_purl":"pkg:pypi/sniffio"},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":154,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-20T10:39:41.655Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-08-14T08:37:37.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"002167c7-d7dc-4de4-a844-52fbd42bd798","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36791458,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-20T02:00:06.210Z","response_time":54,"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":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T17:13:25.368Z","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:nix/python314Packages.sniffio?channel=unstable","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/nixpkgs/python314Packages.sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/nixpkgs/python314Packages.sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/nixpkgs/python314Packages.sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/packages/python314Packages.sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/packages/python314Packages.sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/packages/python314Packages.sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/packages/python314Packages.sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/packages/python314Packages.sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/packages/python314Packages.sniffio/codemeta","maintainers":[],"registry":{"name":"nixpkgs-unstable","url":"https://channels.nixos.org/nixos-unstable","ecosystem":"nixpkgs","default":true,"packages_count":153756,"maintainers_count":4901,"namespaces_count":0,"keywords_count":3257,"github":"NixOS","metadata":{"funded_packages_count":5996},"icon_url":"https://github.com/NixOS.png","created_at":"2026-01-25T22:30:52.762Z","updated_at":"2026-08-24T05:00:11.845Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/namespaces"}},{"id":6179503,"name":"py3-sniffio","ecosystem":"alpine","description":"Sniff out which async library your code is running under","homepage":"https://github.com/python-trio/sniffio","licenses":"MIT OR Apache-2.0","normalized_licenses":["MIT","Apache-2.0"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":[],"namespace":"community","versions_count":1,"first_release_published_at":"2021-04-05T18:18:29.000Z","latest_release_published_at":"2021-04-05T18:18:29.000Z","latest_release_number":"1.2.0-r1","last_synced_at":"2026-04-01T01:37:03.656Z","created_at":"2023-02-01T00:32:15.026Z","updated_at":"2026-08-20T18:20:57.846Z","registry_url":"https://pkgs.alpinelinux.org/package/v3.15/community/x86_64/py3-sniffio","install_command":"apk add py3-sniffio","documentation_url":null,"metadata":{"repository":"community","architecture":"x86_64"},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":154,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-20T10:39:41.655Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-08-14T08:37:37.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"002167c7-d7dc-4de4-a844-52fbd42bd798","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36791458,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-20T02:00:06.210Z","response_time":54,"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":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T18:20:57.846Z","dependent_packages_count":2,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":10.935233650753611,"stargazers_count":13.69742069748376,"forks_count":15.589329633600302,"average":10.055495995459419},"purl":"pkg:apk/alpine/py3-sniffio?arch=x86_64\u0026repository_url=https://pkgs.alpinelinux.org/packages?branch=v3.15","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/alpine/py3-sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/alpine/py3-sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/alpine/py3-sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.15/packages/py3-sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.15/packages/py3-sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.15/packages/py3-sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.15/packages/py3-sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.15/packages/py3-sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.15/packages/py3-sniffio/codemeta","maintainers":[{"uuid":"bribbers@disroot.org","login":null,"name":"Bart Ribbers","email":null,"url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","packages_count":1917,"html_url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","role":null,"created_at":"2023-02-20T01:47:38.636Z","updated_at":"2023-02-20T01:47:38.636Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.15/maintainers/bribbers@disroot.org/packages"}],"registry":{"name":"alpine-v3.15","url":"https://pkgs.alpinelinux.org/packages?branch=v3.15","ecosystem":"alpine","default":false,"packages_count":15857,"maintainers_count":287,"namespaces_count":2,"keywords_count":2466,"github":"alpinelinux","metadata":{"repos":["main","community"],"funded_packages_count":799},"icon_url":"https://github.com/alpinelinux.png","created_at":"2023-01-31T17:27:50.684Z","updated_at":"2026-08-24T05:06:01.591Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.15/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.15/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.15/namespaces"}},{"id":13748874,"name":"python-sniffio","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/python-trio/sniffio","licenses":"other","normalized_licenses":[],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":["universe/misc"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-13T06:39:58.037Z","latest_release_published_at":"2026-02-13T06:39:58.037Z","latest_release_number":"1.1.0-1","last_synced_at":"2026-07-26T18:04:50.268Z","created_at":"2026-02-13T06:39:57.877Z","updated_at":"2026-08-20T19:24:37.610Z","registry_url":"https://launchpad.net/ubuntu/+source/python-sniffio","install_command":"apt-get install python-sniffio","documentation_url":null,"metadata":{"component":"universe","architecture":"all","priority":"optional","binary":"python3-sniffio","standards_version":"4.2.1.2","maintainer":"Robie Basak \u003crobie@justgohome.co.uk\u003e","build_depends":"debhelper (\u003e= 9~), dh-python, python3, python3-pytest, python3-setuptools","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":154,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-20T10:39:41.655Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-08-14T08:37:37.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"002167c7-d7dc-4de4-a844-52fbd42bd798","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36791458,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-20T02:00:06.210Z","response_time":54,"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":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T19:24:37.610Z","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/python-sniffio?arch=source\u0026distro=ubuntu-20.04\u0026repository_url=https://launchpad.net/ubuntu/focal","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/python-sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/python-sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/python-sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/packages/python-sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/packages/python-sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/packages/python-sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/packages/python-sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/packages/python-sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/packages/python-sniffio/codemeta","maintainers":[],"registry":{"name":"ubuntu-20.04","url":"https://launchpad.net/ubuntu/focal","ecosystem":"ubuntu","default":false,"packages_count":30789,"maintainers_count":0,"namespaces_count":4,"keywords_count":1429,"github":"ubuntu","metadata":{"codename":"focal","funded_packages_count":754},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:47.233Z","updated_at":"2026-08-24T05:06:13.646Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/namespaces"}},{"id":13708578,"name":"python-sniffio","ecosystem":"debian","description":null,"homepage":"https://github.com/python-trio/sniffio","licenses":"other","normalized_licenses":[],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":["misc"],"namespace":"main","versions_count":1,"first_release_published_at":"2026-02-12T22:41:17.699Z","latest_release_published_at":"2026-02-12T22:41:17.699Z","latest_release_number":"1.2.0-1","last_synced_at":"2026-03-13T08:36:15.872Z","created_at":"2026-02-12T22:41:17.492Z","updated_at":"2026-08-20T19:33:03.440Z","registry_url":"https://tracker.debian.org/pkg/python-sniffio","install_command":"apt-get install python-sniffio","documentation_url":"https://packages.debian.org/bookworm/python-sniffio","metadata":{"component":"main","architecture":"all","priority":"extra","binary":"python3-sniffio","standards_version":"4.2.1.2","maintainer":"Robie Basak \u003crobie@justgohome.co.uk\u003e","build_depends":"debhelper (\u003e= 9~), debhelper-compat (= 13), dh-python, python3, python3-pytest, python3-setuptools","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":154,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-20T10:39:41.655Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-08-14T08:37:37.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"002167c7-d7dc-4de4-a844-52fbd42bd798","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36791458,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-20T02:00:06.210Z","response_time":54,"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":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T19:33:03.440Z","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/python-sniffio?arch=source\u0026distro=debian-12","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/debian/python-sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/debian/python-sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/debian/python-sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/python-sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/python-sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/python-sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/python-sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/python-sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/python-sniffio/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":2650,"github":"debian","metadata":{"codename":"bookworm","funded_packages_count":1231},"icon_url":"https://github.com/debian.png","created_at":"2026-02-04T11:01:49.459Z","updated_at":"2026-08-24T05:06:15.317Z","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":6123828,"name":"py3-sniffio","ecosystem":"alpine","description":"Sniff out which async library your code is running under","homepage":"https://github.com/python-trio/sniffio","licenses":"MIT OR Apache-2.0","normalized_licenses":["MIT","Apache-2.0"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":[],"namespace":"community","versions_count":1,"first_release_published_at":"2021-12-15T19:17:47.000Z","latest_release_published_at":"2021-12-15T19:17:47.000Z","latest_release_number":"1.2.0-r2","last_synced_at":"2026-08-03T05:05:36.045Z","created_at":"2023-01-31T21:50:43.479Z","updated_at":"2026-08-20T21:16:36.122Z","registry_url":"https://pkgs.alpinelinux.org/package/v3.16/community/x86_64/py3-sniffio","install_command":"apk add py3-sniffio","documentation_url":null,"metadata":{"repository":"community","architecture":"x86_64"},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":154,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-20T10:39:41.655Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-08-14T08:37:37.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"002167c7-d7dc-4de4-a844-52fbd42bd798","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36791458,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-20T02:00:06.210Z","response_time":54,"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":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T21:16:36.122Z","dependent_packages_count":4,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":9.00393261724482,"stargazers_count":15.020250044021836,"forks_count":16.974819510477197,"average":10.249750542935963},"purl":"pkg:apk/alpine/py3-sniffio?arch=x86_64\u0026repository_url=https://pkgs.alpinelinux.org/packages?branch=v3.16","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/alpine/py3-sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/alpine/py3-sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/alpine/py3-sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.16/packages/py3-sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.16/packages/py3-sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.16/packages/py3-sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.16/packages/py3-sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.16/packages/py3-sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.16/packages/py3-sniffio/codemeta","maintainers":[{"uuid":"bribbers@disroot.org","login":null,"name":"Bart Ribbers","email":null,"url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","packages_count":1944,"html_url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","role":null,"created_at":"2023-02-01T10:51:53.279Z","updated_at":"2023-02-01T10:51:53.279Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.16/maintainers/bribbers@disroot.org/packages"}],"registry":{"name":"alpine-v3.16","url":"https://pkgs.alpinelinux.org/packages?branch=v3.16","ecosystem":"alpine","default":false,"packages_count":17040,"maintainers_count":328,"namespaces_count":2,"keywords_count":2855,"github":"alpinelinux","metadata":{"repos":["main","community"],"funded_packages_count":947},"icon_url":"https://github.com/alpinelinux.png","created_at":"2023-01-31T17:27:50.662Z","updated_at":"2026-08-22T05:05:52.310Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.16/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.16/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.16/namespaces"}},{"id":13207835,"name":"python312Packages.sniffio","ecosystem":"nixpkgs","description":"Sniff out which async library your code is running under","homepage":"https://github.com/python-trio/sniffio","licenses":"Apache-2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":["python"],"namespace":null,"versions_count":1,"first_release_published_at":"2026-02-02T01:12:00.652Z","latest_release_published_at":"2026-02-02T01:12:00.652Z","latest_release_number":"1.3.1","last_synced_at":"2026-04-10T22:01:21.010Z","created_at":"2026-02-02T01:11:55.978Z","updated_at":"2026-08-21T01:05:59.440Z","registry_url":"https://search.nixos.org/packages?channel=24.05\u0026query=python312Packages.sniffio","install_command":"nix-env -iA nixpkgs.python312Packages.sniffio","documentation_url":"https://github.com/NixOS/nixpkgs/blob/nixos-24.05/pkgs/development/python-modules/sniffio/default.nix#L40","metadata":{"nix_attribute":"python3.12-sniffio-1.3.1","position":"pkgs/development/python-modules/sniffio/default.nix:40","platforms":["aarch64-linux","armv5tel-linux","armv6l-linux","armv7a-linux","armv7l-linux","i686-linux","loongarch64-linux","m68k-linux","microblaze-linux","microblazeel-linux","mips-linux","mips64-linux","mips64el-linux","mipsel-linux","powerpc64-linux","powerpc64le-linux","riscv32-linux","riscv64-linux","s390-linux","s390x-linux","x86_64-linux","x86_64-darwin","i686-darwin","aarch64-darwin","armv7a-darwin","i686-cygwin","x86_64-cygwin","x86_64-windows","i686-windows"],"broken":false,"insecure":false,"unfree":false,"outputs":["dist","out"],"upstream_ecosystem":"pypi","upstream_name":"sniffio","upstream_purl":"pkg:pypi/sniffio"},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":154,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-20T10:39:41.655Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-08-14T08:37:37.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"002167c7-d7dc-4de4-a844-52fbd42bd798","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36791458,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-20T02:00:06.210Z","response_time":54,"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":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-21T01:05:59.440Z","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:nix/python312Packages.sniffio?channel=24.05\u0026repository_url=https://channels.nixos.org/nixos-24.05","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/nixpkgs/python312Packages.sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/nixpkgs/python312Packages.sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/nixpkgs/python312Packages.sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/packages/python312Packages.sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/packages/python312Packages.sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/packages/python312Packages.sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/packages/python312Packages.sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/packages/python312Packages.sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/packages/python312Packages.sniffio/codemeta","maintainers":[],"registry":{"name":"nixpkgs-24.05","url":"https://channels.nixos.org/nixos-24.05","ecosystem":"nixpkgs","default":false,"packages_count":116156,"maintainers_count":3383,"namespaces_count":0,"keywords_count":654,"github":"NixOS","metadata":{"funded_packages_count":3165},"icon_url":"https://github.com/NixOS.png","created_at":"2026-01-25T22:30:53.309Z","updated_at":"2026-08-24T05:01:24.965Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/namespaces"}},{"id":13010411,"name":"py3-sniffio-pyc","ecosystem":"alpine","description":"Precompiled Python bytecode for py3-sniffio","homepage":"https://github.com/python-trio/sniffio","licenses":"MIT OR Apache-2.0","normalized_licenses":["MIT","Apache-2.0"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":[],"namespace":"community","versions_count":1,"first_release_published_at":"2024-04-12T09:59:22.000Z","latest_release_published_at":"2024-04-12T09:59:22.000Z","latest_release_number":"1.3.1-r1","last_synced_at":"2026-04-09T01:03:11.742Z","created_at":"2026-01-31T01:21:04.595Z","updated_at":"2026-08-21T03:15:44.191Z","registry_url":"https://pkgs.alpinelinux.org/package/v3.23/community/x86_64/py3-sniffio-pyc","install_command":"apk add py3-sniffio-pyc","documentation_url":null,"metadata":{"repository":"community","architecture":"x86_64"},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":154,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-20T10:39:41.655Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-08-14T08:37:37.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"002167c7-d7dc-4de4-a844-52fbd42bd798","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36791458,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-20T02:00:06.210Z","response_time":54,"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":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-21T03:15:44.190Z","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:apk/alpine/py3-sniffio-pyc?arch=x86_64\u0026repository_url=https://pkgs.alpinelinux.org/packages?branch=v3.23","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/alpine/py3-sniffio-pyc","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/alpine/py3-sniffio-pyc","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/alpine/py3-sniffio-pyc/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.23/packages/py3-sniffio-pyc/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.23/packages/py3-sniffio-pyc/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.23/packages/py3-sniffio-pyc/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.23/packages/py3-sniffio-pyc/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.23/packages/py3-sniffio-pyc/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.23/packages/py3-sniffio-pyc/codemeta","maintainers":[{"uuid":"bribbers@disroot.org","login":null,"name":"Bart Ribbers","email":"bribbers@disroot.org","url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","packages_count":2364,"html_url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","role":null,"created_at":"2026-03-03T16:29:08.685Z","updated_at":"2026-03-03T16:29:08.685Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.23/maintainers/bribbers@disroot.org/packages"}],"registry":{"name":"alpine-v3.23","url":"https://pkgs.alpinelinux.org/packages?branch=v3.23","ecosystem":"alpine","default":false,"packages_count":27576,"maintainers_count":428,"namespaces_count":2,"keywords_count":189,"github":"alpinelinux","metadata":{"repos":["main","community"],"funded_packages_count":1042},"icon_url":"https://github.com/alpinelinux.png","created_at":"2026-01-24T14:35:50.739Z","updated_at":"2026-08-24T05:05:17.086Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.23/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.23/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.23/namespaces"}},{"id":12877253,"name":"python313Packages.sniffio","ecosystem":"nixpkgs","description":"Sniff out which async library your code is running under","homepage":"https://github.com/python-trio/sniffio","licenses":"Apache-2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":["python"],"namespace":null,"versions_count":1,"first_release_published_at":"2026-01-27T04:56:23.792Z","latest_release_published_at":"2026-01-27T04:56:23.792Z","latest_release_number":"1.3.1","last_synced_at":"2026-03-09T01:25:46.840Z","created_at":"2026-01-27T04:56:23.222Z","updated_at":"2026-08-21T04:22:50.526Z","registry_url":"https://search.nixos.org/packages?channel=unstable\u0026query=python313Packages.sniffio","install_command":"nix-env -iA nixpkgs.python313Packages.sniffio","documentation_url":"https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/development/python-modules/sniffio/default.nix#L40","metadata":{"nix_attribute":"python3.13-sniffio-1.3.1","position":"pkgs/development/python-modules/sniffio/default.nix:40","platforms":["aarch64-linux","armv5tel-linux","armv6l-linux","armv7a-linux","armv7l-linux","i686-linux","loongarch64-linux","m68k-linux","microblaze-linux","microblazeel-linux","mips-linux","mips64-linux","mips64el-linux","mipsel-linux","powerpc-linux","powerpc64-linux","powerpc64le-linux","riscv32-linux","riscv64-linux","s390-linux","s390x-linux","x86_64-linux","x86_64-darwin","aarch64-darwin","aarch64-windows","x86_64-windows","i686-windows","i686-freebsd","x86_64-freebsd","aarch64-freebsd"],"broken":false,"insecure":false,"unfree":false,"outputs":["dist","out"],"upstream_ecosystem":"pypi","upstream_name":"sniffio","upstream_purl":"pkg:pypi/sniffio"},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":154,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-20T10:39:41.655Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-08-14T08:37:37.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"002167c7-d7dc-4de4-a844-52fbd42bd798","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36791458,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-20T02:00:06.210Z","response_time":54,"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":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-21T04:22:50.526Z","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:nix/python313Packages.sniffio?channel=unstable","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/nixpkgs/python313Packages.sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/nixpkgs/python313Packages.sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/nixpkgs/python313Packages.sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/packages/python313Packages.sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/packages/python313Packages.sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/packages/python313Packages.sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/packages/python313Packages.sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/packages/python313Packages.sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/packages/python313Packages.sniffio/codemeta","maintainers":[],"registry":{"name":"nixpkgs-unstable","url":"https://channels.nixos.org/nixos-unstable","ecosystem":"nixpkgs","default":true,"packages_count":153756,"maintainers_count":4901,"namespaces_count":0,"keywords_count":3257,"github":"NixOS","metadata":{"funded_packages_count":5996},"icon_url":"https://github.com/NixOS.png","created_at":"2026-01-25T22:30:52.762Z","updated_at":"2026-08-24T05:00:11.845Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/namespaces"}},{"id":2924739,"name":"sniffio","ecosystem":"pypi","description":"Sniff out which async library your code is running under","homepage":"https://github.com/python-trio/sniffio","licenses":"MIT OR Apache-2.0","normalized_licenses":["MIT","Apache-2.0"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":["async","trio","asyncio"],"namespace":null,"versions_count":6,"first_release_published_at":"2018-07-31T04:16:34.000Z","latest_release_published_at":"2024-02-25T23:20:01.000Z","latest_release_number":"1.3.1","last_synced_at":"2026-08-23T12:08:04.535Z","created_at":"2022-04-10T12:39:19.554Z","updated_at":"2026-08-23T12:08:04.536Z","registry_url":"https://pypi.org/project/sniffio/","install_command":"pip install sniffio --index-url https://pypi.org/simple","documentation_url":"https://sniffio.readthedocs.io/","metadata":{"funding":null,"documentation":"https://sniffio.readthedocs.io/","classifiers":["Development Status :: 5 - Production/Stable","Framework :: AsyncIO","Framework :: Trio","Intended Audience :: Developers","License :: OSI Approved :: Apache Software License","License :: OSI Approved :: MIT License","Operating System :: MacOS :: MacOS X","Operating System :: Microsoft :: Windows","Operating System :: POSIX :: Linux","Programming Language :: Python :: 3 :: Only","Programming Language :: Python :: Implementation :: CPython","Programming Language :: Python :: Implementation :: PyPy"],"normalized_name":"sniffio","project_status":null},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2024-02-25T23:24:15.000Z","size":82,"stargazers_count":112,"open_issues_count":11,"forks_count":21,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-04-13T23:52:48.500Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null},"funding":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2024-04-16T07:21:08.942Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"de5dcff8-734b-447d-b709-d60e2559a4a1","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":217589671,"owners_count":16201298,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2024-04-15T00:21:03.150Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":7745,"followers":76,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2024-04-15T00:21:06.370Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2024-09-06T19:42:31.741Z","dependent_packages_count":479,"downloads":533921191,"downloads_period":"last-month","dependent_repos_count":47737,"rankings":{"downloads":0.020359239701617918,"dependent_repos_count":0.028429568952709705,"dependent_packages_count":0.07098221409483003,"stargazers_count":8.548863092366753,"forks_count":10.336807854631362,"docker_downloads_count":0.02732906950937901,"average":3.172128506542775},"purl":"pkg:pypi/sniffio","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/sniffio","docker_dependents_count":7652,"docker_downloads_count":2398590669,"usage_url":"https://repos.ecosyste.ms/usage/pypi/sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":true,"issue_metadata":{"last_synced_at":"2024-09-06T19:35:44.878Z","issues_count":15,"pull_requests_count":35,"avg_time_to_close_issue":13577516.0,"avg_time_to_close_pull_request":1966764.2,"issues_closed_count":8,"pull_requests_closed_count":30,"pull_request_authors_count":19,"issue_authors_count":13,"avg_comments_per_issue":2.8,"avg_comments_per_pull_request":2.6,"merged_pull_requests_count":25,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":3,"past_year_pull_requests_count":8,"past_year_avg_time_to_close_issue":2999840.0,"past_year_avg_time_to_close_pull_request":1950399.875,"past_year_issues_closed_count":2,"past_year_pull_requests_closed_count":8,"past_year_pull_request_authors_count":4,"past_year_issue_authors_count":3,"past_year_avg_comments_per_issue":2.0,"past_year_avg_comments_per_pull_request":2.625,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":7,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"oremanj","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/sniffio/codemeta","maintainers":[{"uuid":"The Trio Collective","login":"The Trio Collective","name":null,"email":null,"url":null,"packages_count":13,"html_url":"https://pypi.org/user/The Trio Collective/","role":null,"created_at":"2023-07-01T21:59:17.895Z","updated_at":"2023-07-01T21:59:17.895Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/The%20Trio%20Collective/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":930432,"maintainers_count":399682,"namespaces_count":0,"keywords_count":311773,"github":"pypi","metadata":{"funded_packages_count":58574,"rate_limit":2},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2026-08-24T05:05:47.334Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}},{"id":13464077,"name":"python-sniffio","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/python-trio/sniffio","licenses":"other","normalized_licenses":[],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":["universe/misc"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-09T13:09:50.895Z","latest_release_published_at":"2026-02-09T13:09:50.895Z","latest_release_number":"1.3.1-1","last_synced_at":"2026-03-09T14:20:55.843Z","created_at":"2026-02-09T13:09:50.636Z","updated_at":"2026-08-23T14:58:50.065Z","registry_url":"https://launchpad.net/ubuntu/+source/python-sniffio","install_command":"apt-get install python-sniffio","documentation_url":null,"metadata":{"component":"universe","architecture":"all","priority":"optional","binary":"python-sniffio-doc, python3-sniffio","standards_version":"4.6.2","maintainer":"Debian Python Team \u003cteam+python@tracker.debian.org\u003e","build_depends":"debhelper-compat (= 13), dh-python, pybuild-plugin-pyproject, python3-all, python3-pytest, python3-setuptools, python3-sphinx, python3-sphinx-rtd-theme, python3-sphinxcontrib.trio, python3-trio","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":154,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-20T10:39:41.655Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-08-14T08:37:37.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"002167c7-d7dc-4de4-a844-52fbd42bd798","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36791458,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-20T02:00:06.210Z","response_time":54,"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":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-22T22:44:00.548Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9494,"followers":147,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-22T22:44:00.564Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-23T14:58:50.065Z","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/python-sniffio?arch=source\u0026distro=ubuntu-24.10\u0026repository_url=https://launchpad.net/ubuntu/oracular","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/python-sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/python-sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/python-sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-23T12:07:39.871Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/python-sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/python-sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/python-sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/python-sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/python-sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/python-sniffio/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":1308},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:48.028Z","updated_at":"2026-08-24T05:05:15.657Z","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":13199573,"name":"python311Packages.sniffio","ecosystem":"nixpkgs","description":"Sniff out which async library your code is running under","homepage":"https://github.com/python-trio/sniffio","licenses":"Apache-2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":["python"],"namespace":null,"versions_count":1,"first_release_published_at":"2026-02-02T00:43:25.832Z","latest_release_published_at":"2026-02-02T00:43:25.832Z","latest_release_number":"1.3.1","last_synced_at":"2026-03-09T01:00:27.462Z","created_at":"2026-02-02T00:43:13.148Z","updated_at":"2026-08-21T22:23:26.303Z","registry_url":"https://search.nixos.org/packages?channel=24.05\u0026query=python311Packages.sniffio","install_command":"nix-env -iA nixpkgs.python311Packages.sniffio","documentation_url":"https://github.com/NixOS/nixpkgs/blob/nixos-24.05/pkgs/development/python-modules/sniffio/default.nix#L40","metadata":{"nix_attribute":"python3.11-sniffio-1.3.1","position":"pkgs/development/python-modules/sniffio/default.nix:40","platforms":["aarch64-linux","armv5tel-linux","armv6l-linux","armv7a-linux","armv7l-linux","i686-linux","loongarch64-linux","m68k-linux","microblaze-linux","microblazeel-linux","mips-linux","mips64-linux","mips64el-linux","mipsel-linux","powerpc64-linux","powerpc64le-linux","riscv32-linux","riscv64-linux","s390-linux","s390x-linux","x86_64-linux","x86_64-darwin","i686-darwin","aarch64-darwin","armv7a-darwin","i686-cygwin","x86_64-cygwin","x86_64-windows","i686-windows"],"broken":false,"insecure":false,"unfree":false,"outputs":["dist","out"],"upstream_ecosystem":"pypi","upstream_name":"sniffio","upstream_purl":"pkg:pypi/sniffio"},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":154,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-20T10:39:41.655Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-08-14T08:37:37.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"002167c7-d7dc-4de4-a844-52fbd42bd798","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36791458,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-20T02:00:06.210Z","response_time":54,"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":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-21T22:23:26.302Z","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:nix/python311Packages.sniffio?channel=24.05\u0026repository_url=https://channels.nixos.org/nixos-24.05","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/nixpkgs/python311Packages.sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/nixpkgs/python311Packages.sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/nixpkgs/python311Packages.sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-21T11:09:55.924Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/packages/python311Packages.sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/packages/python311Packages.sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/packages/python311Packages.sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/packages/python311Packages.sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/packages/python311Packages.sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/packages/python311Packages.sniffio/codemeta","maintainers":[],"registry":{"name":"nixpkgs-24.05","url":"https://channels.nixos.org/nixos-24.05","ecosystem":"nixpkgs","default":false,"packages_count":116156,"maintainers_count":3383,"namespaces_count":0,"keywords_count":654,"github":"NixOS","metadata":{"funded_packages_count":3165},"icon_url":"https://github.com/NixOS.png","created_at":"2026-01-25T22:30:53.309Z","updated_at":"2026-08-24T05:01:24.965Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/namespaces"}},{"id":13527832,"name":"python-sniffio","ecosystem":"debian","description":null,"homepage":"https://github.com/python-trio/sniffio","licenses":"other","normalized_licenses":[],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":["misc"],"namespace":"main","versions_count":1,"first_release_published_at":"2026-02-10T23:03:18.322Z","latest_release_published_at":"2026-02-10T23:03:18.322Z","latest_release_number":"1.1.0-1","last_synced_at":"2026-03-14T04:20:26.234Z","created_at":"2026-02-10T23:03:18.140Z","updated_at":"2026-08-20T13:33:51.918Z","registry_url":"https://tracker.debian.org/pkg/python-sniffio","install_command":"apt-get install python-sniffio","documentation_url":"https://packages.debian.org/bullseye/python-sniffio","metadata":{"component":"main","architecture":"all","priority":"extra","binary":"python3-sniffio","standards_version":"4.2.1.2","maintainer":"Robie Basak \u003crobie@justgohome.co.uk\u003e","build_depends":"debhelper (\u003e= 9~), dh-python, python3, python3-pytest, python3-setuptools","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":154,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-20T10:39:41.655Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-08-14T08:37:37.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"002167c7-d7dc-4de4-a844-52fbd42bd798","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36791458,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-20T02:00:06.210Z","response_time":54,"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":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T13:33:51.918Z","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/python-sniffio?arch=source\u0026distro=debian-11\u0026repository_url=https://packages.debian.org/bullseye","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/debian/python-sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/debian/python-sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/debian/python-sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages/python-sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages/python-sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages/python-sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages/python-sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages/python-sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages/python-sniffio/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":800},"icon_url":"https://github.com/debian.png","created_at":"2026-02-04T11:01:49.702Z","updated_at":"2026-08-24T05:06:16.474Z","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":13404101,"name":"python-sniffio","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/python-trio/sniffio","licenses":"other","normalized_licenses":[],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":["universe/misc"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-06T12:04:21.591Z","latest_release_published_at":"2026-02-06T12:04:21.591Z","latest_release_number":"1.3.0-2","last_synced_at":"2026-03-06T18:53:49.771Z","created_at":"2026-02-06T12:04:13.934Z","updated_at":"2026-08-20T14:13:30.958Z","registry_url":"https://launchpad.net/ubuntu/+source/python-sniffio","install_command":"apt-get install python-sniffio","documentation_url":null,"metadata":{"component":"universe","architecture":"all","priority":"optional","binary":"python-sniffio-doc, python3-sniffio","standards_version":"4.6.2","maintainer":"Debian Python Team \u003cteam+python@tracker.debian.org\u003e","build_depends":"debhelper-compat (= 13), dh-python, pybuild-plugin-pyproject, python3-all, python3-pytest, python3-setuptools, python3-sphinx, python3-sphinx-rtd-theme, python3-sphinxcontrib.trio, python3-trio","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":154,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-20T10:39:41.655Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-08-14T08:37:37.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"002167c7-d7dc-4de4-a844-52fbd42bd798","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36791458,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-20T02:00:06.210Z","response_time":54,"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":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T14:13:30.958Z","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/python-sniffio?arch=source\u0026distro=ubuntu-24.04","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/python-sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/python-sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/python-sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/python-sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/python-sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/python-sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/python-sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/python-sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/python-sniffio/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":1237},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:45.928Z","updated_at":"2026-08-24T05:06:09.353Z","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":6195625,"name":"py3-sniffio","ecosystem":"alpine","description":"Sniff out which async library your code is running under","homepage":"https://github.com/python-trio/sniffio","licenses":"MIT OR Apache-2.0","normalized_licenses":["MIT","Apache-2.0"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":[],"namespace":"community","versions_count":1,"first_release_published_at":"2021-04-05T18:18:29.000Z","latest_release_published_at":"2021-04-05T18:18:29.000Z","latest_release_number":"1.2.0-r1","last_synced_at":"2026-04-01T01:10:16.906Z","created_at":"2023-02-01T01:41:50.918Z","updated_at":"2026-08-20T12:39:58.470Z","registry_url":"https://pkgs.alpinelinux.org/package/v3.14/community/x86_64/py3-sniffio","install_command":"apk add py3-sniffio","documentation_url":null,"metadata":{"repository":"community","architecture":"x86_64"},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":154,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-20T10:39:41.655Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-08-14T08:37:37.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"002167c7-d7dc-4de4-a844-52fbd42bd798","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36791458,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-20T02:00:06.210Z","response_time":54,"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":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T12:39:58.470Z","dependent_packages_count":1,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":12.100548201631234,"stargazers_count":12.428132103222357,"forks_count":14.320096269554753,"average":9.712194143602087},"purl":"pkg:apk/alpine/py3-sniffio?arch=x86_64\u0026repository_url=https://pkgs.alpinelinux.org/packages?branch=v3.14","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/alpine/py3-sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/alpine/py3-sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/alpine/py3-sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.14/packages/py3-sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.14/packages/py3-sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.14/packages/py3-sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.14/packages/py3-sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.14/packages/py3-sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.14/packages/py3-sniffio/codemeta","maintainers":[{"uuid":"bribbers@disroot.org","login":null,"name":"Bart Ribbers","email":null,"url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","packages_count":1819,"html_url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","role":null,"created_at":"2023-02-20T01:47:31.293Z","updated_at":"2023-02-20T01:47:31.293Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.14/maintainers/bribbers@disroot.org/packages"}],"registry":{"name":"alpine-v3.14","url":"https://pkgs.alpinelinux.org/packages?branch=v3.14","ecosystem":"alpine","default":false,"packages_count":14958,"maintainers_count":258,"namespaces_count":2,"keywords_count":2179,"github":"alpinelinux","metadata":{"repos":["main","community"],"funded_packages_count":682},"icon_url":"https://github.com/alpinelinux.png","created_at":"2023-01-31T17:27:50.706Z","updated_at":"2026-08-18T05:04:15.407Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.14/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.14/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.14/namespaces"}},{"id":11766979,"name":"py3-sniffio","ecosystem":"alpine","description":"Sniff out which async library your code is running under","homepage":"https://github.com/python-trio/sniffio","licenses":"MIT OR Apache-2.0","normalized_licenses":["MIT","Apache-2.0"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":[],"namespace":"community","versions_count":1,"first_release_published_at":"2024-04-12T09:59:22.000Z","latest_release_published_at":"2024-04-12T09:59:22.000Z","latest_release_number":"1.3.1-r1","last_synced_at":"2026-04-01T01:52:58.409Z","created_at":"2025-06-07T18:59:24.877Z","updated_at":"2026-08-20T11:04:21.522Z","registry_url":"https://pkgs.alpinelinux.org/package/v3.22/community/x86_64/py3-sniffio","install_command":"apk add py3-sniffio","documentation_url":null,"metadata":{"repository":"community","architecture":"x86_64"},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":153,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-06T07:22:09.780Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-07-30T22:52:44.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"de5dcff8-734b-447d-b709-d60e2559a4a1","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36341075,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"ssl_error","status_checked_at":"2026-08-06T04:43:02.660Z","response_time":54,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T11:04:21.522Z","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:apk/alpine/py3-sniffio?arch=x86_64\u0026repository_url=https://pkgs.alpinelinux.org/packages?branch=v3.22","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/alpine/py3-sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/alpine/py3-sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/alpine/py3-sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.22/packages/py3-sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.22/packages/py3-sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.22/packages/py3-sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.22/packages/py3-sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.22/packages/py3-sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.22/packages/py3-sniffio/codemeta","maintainers":[{"uuid":"bribbers@disroot.org","login":null,"name":"Bart Ribbers","email":null,"url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","packages_count":2396,"html_url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","role":null,"created_at":"2025-06-08T17:00:37.931Z","updated_at":"2025-06-08T17:00:37.931Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.22/maintainers/bribbers@disroot.org/packages"}],"registry":{"name":"alpine-v3.22","url":"https://pkgs.alpinelinux.org/packages?branch=v3.22","ecosystem":"alpine","default":false,"packages_count":26323,"maintainers_count":422,"namespaces_count":2,"keywords_count":4638,"github":"alpinelinux","metadata":{"repos":["main","community"],"funded_packages_count":1803},"icon_url":"https://github.com/alpinelinux.png","created_at":"2025-06-05T10:49:56.987Z","updated_at":"2026-08-24T05:06:25.345Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.22/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.22/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.22/namespaces"}},{"id":7666950,"name":"py3-sniffio-pyc","ecosystem":"alpine","description":"Precompiled Python bytecode for py3-sniffio","homepage":"https://github.com/python-trio/sniffio","licenses":"MIT OR Apache-2.0","normalized_licenses":["MIT","Apache-2.0"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":[],"namespace":"community","versions_count":4,"first_release_published_at":"2023-04-28T23:45:29.000Z","latest_release_published_at":"2026-03-27T19:39:20.000Z","latest_release_number":"1.3.1-r2","last_synced_at":"2026-04-01T01:20:48.533Z","created_at":"2023-05-01T00:09:59.848Z","updated_at":"2026-08-20T11:04:21.800Z","registry_url":"https://pkgs.alpinelinux.org/package/edge/community/x86_64/py3-sniffio-pyc","install_command":"apk add py3-sniffio-pyc","documentation_url":null,"metadata":{"repository":"community","architecture":"x86_64"},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":153,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-06T07:22:09.780Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-07-30T22:52:44.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"de5dcff8-734b-447d-b709-d60e2559a4a1","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36341075,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"ssl_error","status_checked_at":"2026-08-06T04:43:02.660Z","response_time":54,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T11:04:21.799Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":13.333570564372643,"stargazers_count":22.635399615685717,"forks_count":25.432353569140986,"average":15.350330937299837},"purl":"pkg:apk/alpine/py3-sniffio-pyc?arch=x86_64\u0026repository_url=https://pkgs.alpinelinux.org/packages?branch=edge","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/alpine/py3-sniffio-pyc","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/alpine/py3-sniffio-pyc","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/alpine/py3-sniffio-pyc/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-edge/packages/py3-sniffio-pyc/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-edge/packages/py3-sniffio-pyc/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-edge/packages/py3-sniffio-pyc/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-edge/packages/py3-sniffio-pyc/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-edge/packages/py3-sniffio-pyc/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-edge/packages/py3-sniffio-pyc/codemeta","maintainers":[{"uuid":"bribbers@disroot.org","login":null,"name":"Bart Ribbers","email":"bribbers@disroot.org","url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","packages_count":3041,"html_url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","role":null,"created_at":"2023-05-01T19:49:09.824Z","updated_at":"2023-05-01T19:49:09.824Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-edge/maintainers/bribbers@disroot.org/packages"}],"registry":{"name":"alpine-edge","url":"https://pkgs.alpinelinux.org/packages?branch=edge","ecosystem":"alpine","default":false,"packages_count":39924,"maintainers_count":905,"namespaces_count":3,"keywords_count":6584,"github":"alpinelinux","metadata":{"repos":["main","community","testing"],"funded_packages_count":2944},"icon_url":"https://github.com/alpinelinux.png","created_at":"2023-01-31T17:27:50.616Z","updated_at":"2026-08-24T05:05:51.343Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-edge/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-edge/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-edge/namespaces"}},{"id":10345837,"name":"py3-sniffio","ecosystem":"alpine","description":"Sniff out which async library your code is running under","homepage":"https://github.com/python-trio/sniffio","licenses":"MIT OR Apache-2.0","normalized_licenses":["MIT","Apache-2.0"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":[],"namespace":"community","versions_count":1,"first_release_published_at":"2024-04-12T09:59:22.000Z","latest_release_published_at":"2024-04-12T09:59:22.000Z","latest_release_number":"1.3.1-r1","last_synced_at":"2026-04-08T09:56:52.431Z","created_at":"2024-06-11T10:42:05.414Z","updated_at":"2026-08-20T12:42:54.347Z","registry_url":"https://pkgs.alpinelinux.org/package/v3.20/community/x86_64/py3-sniffio","install_command":"apk add py3-sniffio","documentation_url":null,"metadata":{"repository":"community","architecture":"x86_64"},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":154,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-20T10:39:41.655Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-08-14T08:37:37.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"002167c7-d7dc-4de4-a844-52fbd42bd798","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36791458,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-20T02:00:06.210Z","response_time":54,"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":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T12:42:54.346Z","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:apk/alpine/py3-sniffio?arch=x86_64\u0026repository_url=https://pkgs.alpinelinux.org/packages?branch=v3.20","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/alpine/py3-sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/alpine/py3-sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/alpine/py3-sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.20/packages/py3-sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.20/packages/py3-sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.20/packages/py3-sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.20/packages/py3-sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.20/packages/py3-sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.20/packages/py3-sniffio/codemeta","maintainers":[{"uuid":"bribbers@disroot.org","login":null,"name":"Bart Ribbers","email":null,"url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","packages_count":2423,"html_url":"https://pkgs.alpinelinux.org/packages?maintainer=Bart Ribbers","role":null,"created_at":"2024-06-12T01:38:52.919Z","updated_at":"2024-06-12T01:38:52.919Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.20/maintainers/bribbers@disroot.org/packages"}],"registry":{"name":"alpine-v3.20","url":"https://pkgs.alpinelinux.org/packages?branch=v3.20","ecosystem":"alpine","default":false,"packages_count":24162,"maintainers_count":405,"namespaces_count":2,"keywords_count":4251,"github":"alpinelinux","metadata":{"repos":["main","community"],"funded_packages_count":1543},"icon_url":"https://github.com/alpinelinux.png","created_at":"2024-06-07T11:51:39.915Z","updated_at":"2026-08-24T05:06:36.705Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.20/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.20/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/alpine-v3.20/namespaces"}},{"id":76326,"name":"py-sniffio","ecosystem":"spack","description":"This is a tiny package whose only purpose is to let you detect which\nasync library your code is running under.\n","homepage":"https://github.com/python-trio/sniffio","licenses":"[]","normalized_licenses":["Other"],"repository_url":"https://github.com/python-trio/sniffio","keywords_array":[],"namespace":null,"versions_count":4,"first_release_published_at":"2022-04-05T09:29:06.897Z","latest_release_published_at":"2026-08-13T07:07:39.311Z","latest_release_number":"1.3.1","last_synced_at":"2026-08-23T12:08:03.019Z","created_at":"2022-04-05T09:29:06.869Z","updated_at":"2026-08-23T12:08:03.019Z","registry_url":"https://packages.spack.io/package.html?name=py-sniffio","install_command":"spack install py-sniffio","documentation_url":null,"metadata":{},"repo_metadata":{"id":33181353,"uuid":"142657210","full_name":"python-trio/sniffio","owner":"python-trio","description":"Sniff out which async library your code is running under","archived":false,"fork":false,"pushed_at":"2026-03-06T12:22:18.000Z","size":81,"stargazers_count":154,"open_issues_count":12,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-08-20T10:39:41.655Z","etag":null,"topics":["async","asyncio","python","trio"],"latest_commit_sha":null,"homepage":"https://sniffio.readthedocs.io","language":"Python","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/python-trio.png","metadata":{"files":{"readme":"README.rst","changelog":"newsfragments/.gitkeep","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"github":"python-trio","open_collective":"python-trio"}},"created_at":"2018-07-28T07:35:29.000Z","updated_at":"2026-08-14T08:37:37.000Z","dependencies_parsed_at":"2023-01-14T23:48:17.961Z","dependency_job_id":"002167c7-d7dc-4de4-a844-52fbd42bd798","html_url":"https://github.com/python-trio/sniffio","commit_stats":{"total_commits":64,"total_committers":14,"mean_commits":4.571428571428571,"dds":0.71875,"last_synced_commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/python-trio/sniffio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/sbom","scorecard":{"id":752286,"data":{"date":"2025-08-11","repo":{"name":"github.com/python-trio/sniffio","commit":"a1cc1692f5be32645f65ebeb33e6a138180359e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/python-trio/sniffio/ci.yml/master?enable=pin","Warn: pipCommand not pinned by hash: ci.sh:9","Warn: pipCommand not pinned by hash: ci.sh:12","Warn: pipCommand not pinned by hash: ci.sh:30","Warn: pipCommand not pinned by hash: ci.sh:46","Warn: pipCommand not pinned by hash: ci.sh:49","Warn: downloadThenRun not pinned by hash: ci.sh:56","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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":"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: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":"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":"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-22T20:41:36.069Z","repository_id":33181353,"created_at":"2025-08-22T20:41:36.069Z","updated_at":"2025-08-22T20:41:36.069Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36791458,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-20T02:00:06.210Z","response_time":54,"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":"python-trio","name":"python-trio","uuid":"26335827","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26335827?v=4","repositories_count":32,"last_synced_at":"2026-08-15T10:22:25.067Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"python-trio","open_collective":"python-trio"}},"html_url":"https://github.com/python-trio","funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"total_stars":9496,"followers":146,"following":0,"created_at":"2022-11-02T16:28:53.742Z","updated_at":"2026-08-15T10:22:25.085Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-trio/repositories"},"tags":[{"name":"v1.3.1","sha":"ae020e13b98d276a6558ffc25e82509fd4c288f0","kind":"commit","published_at":"2024-02-25T23:15:12.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.1","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"cb8a03d45371efb20156ec895003a9bd988ac89b","kind":"commit","published_at":"2022-09-01T10:54:31.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.3.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"b93038b1a8b76607363f2f261bcf8e7ad4c53807","kind":"tag","published_at":"2020-10-11T18:22:25.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.2.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"f65149ebc4f7afdf461d32de23a466747c737159","kind":"commit","published_at":"2019-04-20T04:00:48.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.1.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"b9efedb680cb15241f63e564e46b346161c41ca1","kind":"commit","published_at":"2018-08-01T03:00:15.000Z","download_url":"https://codeload.github.com/python-trio/sniffio/tar.gz/v1.0.0","html_url":"https://github.com/python-trio/sniffio/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-trio/sniffio@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-20T12:39:58.493Z","dependent_packages_count":3,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":14.186466583298596,"stargazers_count":18.674447686536055,"forks_count":22.036959844379602,"average":13.724468528553563},"purl":"pkg:spack/py-sniffio","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/spack/py-sniffio","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/spack/py-sniffio","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/spack/py-sniffio/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-trio","https://opencollective.com/python-trio"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-20T10:33:59.663Z","issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","maintainers":[{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"},{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"},{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"},{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"},{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"},{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"},{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"},{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/spack.io/packages/py-sniffio/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/spack.io/packages/py-sniffio/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/spack.io/packages/py-sniffio/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/spack.io/packages/py-sniffio/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/spack.io/packages/py-sniffio/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/spack.io/packages/py-sniffio/codemeta","maintainers":[{"uuid":"adamjstewart","login":"adamjstewart","name":null,"email":null,"url":"https://github.com/adamjstewart","packages_count":2153,"html_url":null,"role":null,"created_at":"2022-11-14T16:55:39.220Z","updated_at":"2022-11-14T16:55:39.220Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/spack.io/maintainers/adamjstewart/packages"}],"registry":{"name":"spack.io","url":"https://packages.spack.io","ecosystem":"spack","default":true,"packages_count":9303,"maintainers_count":1032,"namespaces_count":0,"keywords_count":3959,"github":"spack","metadata":{"funded_packages_count":510},"icon_url":"https://github.com/spack.png","created_at":"2022-04-04T15:19:23.514Z","updated_at":"2026-08-24T05:06:47.739Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/spack.io/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/spack.io/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/spack.io/namespaces"}}],"commits":{"id":3835,"full_name":"python-trio/sniffio","default_branch":"master","total_commits":69,"total_committers":15,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":4.6,"dds":0.7391304347826086,"past_year_total_commits":5,"past_year_total_committers":3,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":1.6666666666666667,"past_year_dds":0.4,"last_synced_at":"2026-08-19T10:05:01.743Z","last_synced_commit":"6996e05d9b9debe32f42f709c8041e744f850478","created_at":"2023-03-07T09:18:51.627Z","updated_at":"2026-08-19T10:04:59.913Z","committers":[{"name":"Nathaniel J. Smith","email":"njs@pobox.com","login":"njsmith","count":18},{"name":"Thomas Grainger","email":"tagrain@gmail.com","login":"graingert","count":14},{"name":"Alex Grönholm","email":"alex.gronholm@nextday.fi","login":"agronholm","count":10},{"name":"Hugo van Kemenade","email":"hugovk","login":"hugovk","count":7},{"name":"Quentin Pradet","email":"quentin.pradet@gmail.com","login":"pquentin","count":4},{"name":"Matthias Urlichs","email":"matthias@urlichs.de","login":"smurfix","count":4},{"name":"Seth Michael Larson","email":"sethmichaellarson@gmail.com","login":"sethmlarson","count":2},{"name":"Kyle Altendorf","email":"sda@fstab.net","login":"altendky","count":2},{"name":"A5rocks","email":"git@helvetica.moe","login":"A5rocks","count":2},{"name":"Tom Watson","email":"20281378+tomwatson1024","login":"tomwatson1024","count":1},{"name":"Marc Dequènes (Duck)","email":"duck@redhat.com","login":"duck-rh","count":1},{"name":"John Belmonte","email":"john@neggie.net","login":"belm0","count":1},{"name":"Christian Clauss","email":"cclauss@me.com","login":"cclauss","count":1},{"name":"Chris Shucksmith","email":"chris@shucksmith.co.uk","login":"shuckc","count":1},{"name":"Bruno Oliveira","email":"nicoddemus@gmail.com","login":"nicoddemus","count":1}],"past_year_committers":[{"name":"Alex Grönholm","email":"alex.gronholm@nextday.fi","login":"agronholm","count":3},{"name":"Hugo van Kemenade","email":"1324225+hugovk","login":"hugovk","count":1},{"name":"Christian Clauss","email":"cclauss@me.com","login":"cclauss","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-08-20T00:00:10.776Z","repositories_count":6751073,"commits_count":978184156,"contributors_count":41233082,"owners_count":1358755,"committers_count":3352663,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues":{"table":{"full_name":"python-trio/sniffio","html_url":"https://github.com/python-trio/sniffio","last_synced_at":"2026-08-24T12:36:49.099Z","status":null,"issues_count":15,"pull_requests_count":43,"avg_time_to_close_issue":14698194.57142857,"avg_time_to_close_pull_request":1844522.34375,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":20,"issue_authors_count":13,"avg_comments_per_issue":2.533333333333333,"avg_comments_per_pull_request":2.4186046511627906,"merged_pull_requests_count":27,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"created_at":"2023-05-10T11:08:27.809Z","updated_at":"2026-08-24T12:36:49.099Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Fsniffio/issues","issue_labels_count":{"table":{"bug":1}},"pull_request_labels_count":{"table":{}},"issue_author_associations_count":{"table":{"NONE":10,"MEMBER":3,"CONTRIBUTOR":2}},"pull_request_author_associations_count":{"table":{"CONTRIBUTOR":22,"MEMBER":15,"NONE":6}},"issue_authors":{"table":{"graingert":2,"agronholm":2,"magedhelmy1":1,"kloczek":1,"allrobot":1,"tapetersen":1,"webknjaz":1,"rnovatorov":1,"vxgmichel":1,"BrynGibson":1,"tzickel":1,"kerizane":1,"baseplate-admin":1}},"pull_request_authors":{"table":{"agronholm":10,"hugovk":4,"graingert":4,"pquentin":3,"altendky":3,"A5rocks":2,"njsmith":2,"KOLANICH":2,"smurfix":2,"duck-rh":1,"bowiechen":1,"sethmlarson":1,"shuckc":1,"belm0":1,"oremanj":1,"tapetersen":1,"tomwatson1024":1,"guillaumeLepape":1,"mwakaba2":1,"nicoddemus":1}},"host":{"table":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-08-24T00:00:06.384Z","repositories_count":16301769,"issues_count":42335015,"pull_requests_count":134763975,"authors_count":11516393,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"}},"past_year_issue_labels_count":{"table":{}},"past_year_pull_request_labels_count":{"table":{}},"past_year_issue_author_associations_count":{"table":{}},"past_year_pull_request_author_associations_count":{"table":{"NONE":1}},"past_year_issue_authors":{"table":{}},"past_year_pull_request_authors":{"table":{"bowiechen":1}},"maintainers":[{"table":{"login":"graingert","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/graingert"}},{"table":{"login":"altendky","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/altendky"}},{"table":{"login":"pquentin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pquentin"}},{"table":{"login":"njsmith","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/njsmith"}},{"table":{"login":"nicoddemus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicoddemus"}},{"table":{"login":"oremanj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/oremanj"}},{"table":{"login":"belm0","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/belm0"}},{"table":{"login":"webknjaz","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}}],"active_maintainers":[]}},"events":{"total":{"DeleteEvent":2,"PullRequestEvent":3,"ForkEvent":3,"IssuesEvent":3,"WatchEvent":16,"IssueCommentEvent":10,"PushEvent":4,"PullRequestReviewEvent":3,"PullRequestReviewCommentEvent":2,"CreateEvent":1},"last_year":{"DeleteEvent":2,"PullRequestEvent":2,"ForkEvent":2,"WatchEvent":1,"IssueCommentEvent":6,"PushEvent":4,"PullRequestReviewEvent":3,"PullRequestReviewCommentEvent":2,"CreateEvent":1}},"keywords":["async","asyncio","python","trio"],"dependencies":[{"ecosystem":"pypi","filepath":"ci/rtd-requirements.txt","sha":null,"kind":"manifest","created_at":"2022-07-24T20:32:01.617Z","updated_at":"2022-07-24T20:32:01.617Z","repository_link":"https://github.com/python-trio/sniffio/blob/master/ci/rtd-requirements.txt","dependencies":[{"id":379189376,"package_name":"sphinx","ecosystem":"pypi","requirements":"\u003e=1.6.1","direct":true,"kind":"runtime","optional":false},{"id":379189377,"package_name":"sphinx_rtd_theme","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":379189378,"package_name":"sphinxcontrib-trio","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"setup.py","sha":null,"kind":"manifest","created_at":"2022-07-24T20:32:01.975Z","updated_at":"2022-07-24T20:32:01.975Z","repository_link":"https://github.com/python-trio/sniffio/blob/master/setup.py","dependencies":[{"id":379191120,"package_name":"contextvars","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"test-requirements.txt","sha":null,"kind":"manifest","created_at":"2022-07-24T20:32:02.067Z","updated_at":"2022-07-24T20:32:02.067Z","repository_link":"https://github.com/python-trio/sniffio/blob/master/test-requirements.txt","dependencies":[{"id":379192302,"package_name":"pytest","ecosystem":"pypi","requirements":"*","direct":true,"kind":"test","optional":false},{"id":379192303,"package_name":"pytest-cov","ecosystem":"pypi","requirements":"*","direct":true,"kind":"test","optional":false},{"id":379192304,"package_name":"curio","ecosystem":"pypi","requirements":"*","direct":true,"kind":"test","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/ci.yml","sha":null,"kind":"manifest","created_at":"2023-01-14T23:48:17.433Z","updated_at":"2023-01-14T23:48:17.433Z","repository_link":"https://github.com/python-trio/sniffio/blob/master/.github/workflows/ci.yml","dependencies":[{"id":6909257633,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":6909257634,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":6909257635,"package_name":"deadsnakes/action","ecosystem":"actions","requirements":"v2.0.2","direct":true,"kind":"composite","optional":false}]}],"score":29.629639074004647,"created_at":"2025-11-11T15:17:14.365Z","updated_at":"2026-08-24T12:36:52.088Z","avatar_url":"https://github.com/python-trio.png","language":"Python","codemeta":null,"publiccode":null,"project_url":"https://summary.ecosyste.ms/api/v1/projects/369325","html_url":"https://summary.ecosyste.ms/projects/369325"}