{"id":2801108,"name":"microdot","ecosystem":"pypi","description":"The impossibly small web framework for MicroPython","homepage":"https://code.miguelgrinberg.com/miguelgrinberg/microdot","licenses":"MIT License","normalized_licenses":["MIT"],"repository_url":"https://github.com/miguelgrinberg/microdot","keywords_array":[],"namespace":null,"versions_count":51,"first_release_published_at":"2019-04-16T11:03:53.000Z","latest_release_published_at":"2026-09-18T09:14:47.000Z","latest_release_number":"2.7.0","last_synced_at":"2026-10-08T09:11:17.601Z","created_at":"2022-04-10T11:35:47.811Z","updated_at":"2026-10-08T09:11:17.602Z","registry_url":"https://pypi.org/project/microdot/","install_command":"pip install microdot --index-url https://pypi.org/simple","documentation_url":"https://microdot.readthedocs.io/","metadata":{"funding":"https://code.miguelgrinberg.com/miguelgrinberg/microdot#sponsor-this-project","documentation":"https://microdot.readthedocs.io/","classifiers":["Environment :: Web Environment","Intended Audience :: Developers","License :: OSI Approved :: MIT License","Operating System :: OS Independent","Programming Language :: Python :: 3","Programming Language :: Python :: Implementation :: MicroPython"],"normalized_name":"microdot","project_status":null},"repo_metadata":{"id":38355448,"uuid":"176615332","full_name":"miguelgrinberg/microdot","owner":"miguelgrinberg","description":"Mirror of https://code.miguelgrinberg.com/miguelgrinberg/microdot","archived":false,"fork":false,"pushed_at":"2026-09-19T11:20:06.000Z","size":3566,"stargazers_count":2148,"open_issues_count":0,"forks_count":158,"subscribers_count":32,"default_branch":"main","last_synced_at":"2026-10-05T17:05:43.948Z","etag":null,"topics":["http","micropython","python","webapp","webserver"],"latest_commit_sha":null,"homepage":"https://code.miguelgrinberg.com/miguelgrinberg/microdot","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/miguelgrinberg.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":null,"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},"funding":{"github":"miguelgrinberg","patreon":"miguelgrinberg","buy_me_a_coffee":"miguelgrinberg","thanks_dev":"u/gh/miguelgrinberg","custom":"https://paypal.me/miguelgrinberg"}},"created_at":"2019-03-19T23:37:29.000Z","updated_at":"2026-10-01T02:28:18.000Z","dependencies_parsed_at":"2026-08-08T19:34:37.472Z","dependency_job_id":null,"html_url":"https://github.com/miguelgrinberg/microdot","commit_stats":{"total_commits":291,"total_committers":18,"mean_commits":"16.166666666666668","dds":0.134020618556701,"last_synced_commit":"496a2880646b529fd487c518311cfa85ad5ba882"},"previous_names":[],"tags_count":51,"template":false,"template_full_name":null,"purl":"pkg:github/miguelgrinberg/microdot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/miguelgrinberg","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/sbom","scorecard":{"id":40395,"data":{"date":"2025-08-04","repo":{"name":"github.com/miguelgrinberg/microdot","commit":"cca0b0f693c909134bc19eb41dfb5a86226e032b"},"scorecard":{"version":"v5.2.1-28-gc1d103a9","commit":"c1d103a9bb9f635ec7260bf9aa0699466fa4be0e"},"score":4.6,"checks":[{"name":"Code-Review","score":0,"reason":"Found 1/27 approved changesets -- score normalized to 0","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/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#code-review"}},{"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/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#security-policy"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#packaging"}},{"name":"Maintained","score":10,"reason":"17 commit(s) and 2 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/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/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/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/tests.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/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":8,"reason":"binaries present in source code","details":["Warn: binary detected: bin/circuitpython:1","Warn: binary detected: bin/micropython:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/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/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#cii-best-practices"}},{"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/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#license"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#branch-protection"}},{"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/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/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/tests.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/miguelgrinberg/microdot/tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/miguelgrinberg/microdot/tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/miguelgrinberg/microdot/tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/miguelgrinberg/microdot/tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/miguelgrinberg/microdot/tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/miguelgrinberg/microdot/tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/miguelgrinberg/microdot/tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:50: update your workflow using https://app.stepsecurity.io/secureworkflow/miguelgrinberg/microdot/tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/miguelgrinberg/microdot/tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/miguelgrinberg/microdot/tests.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:63: update your workflow using https://app.stepsecurity.io/secureworkflow/miguelgrinberg/microdot/tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:72: update your workflow using https://app.stepsecurity.io/secureworkflow/miguelgrinberg/microdot/tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:73: update your workflow using https://app.stepsecurity.io/secureworkflow/miguelgrinberg/microdot/tests.yml/main?enable=pin","Warn: containerImage not pinned by hash: tools/Dockerfile:1: pin your Docker image by updating ubuntu:22.04 to ubuntu:22.04@sha256:1ec65b2719518e27d4d25f104d93f9fac60dc437f81452302406825c46fcc9cb","Warn: containerImage not pinned by hash: tools/Dockerfile.circuitpython:1: pin your Docker image by updating ubuntu:22.04 to ubuntu:22.04@sha256:1ec65b2719518e27d4d25f104d93f9fac60dc437f81452302406825c46fcc9cb","Warn: pipCommand not pinned by hash: .github/workflows/tests.yml:75","Warn: pipCommand not pinned by hash: .github/workflows/tests.yml:76","Warn: pipCommand not pinned by hash: .github/workflows/tests.yml:17","Warn: pipCommand not pinned by hash: .github/workflows/tests.yml:18","Warn: pipCommand not pinned by hash: .github/workflows/tests.yml:34","Warn: pipCommand not pinned by hash: .github/workflows/tests.yml:35","Warn: pipCommand not pinned by hash: .github/workflows/tests.yml:43","Warn: pipCommand not pinned by hash: .github/workflows/tests.yml:44","Warn: pipCommand not pinned by hash: .github/workflows/tests.yml:52","Warn: pipCommand not pinned by hash: .github/workflows/tests.yml:53","Warn: pipCommand not pinned by hash: .github/workflows/tests.yml:61","Warn: pipCommand not pinned by hash: .github/workflows/tests.yml:62","Info:   0 out of  12 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   2 containerImage dependencies pinned","Info:   0 out of  12 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/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":8,"reason":"2 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-2c2j-9gv5-cj73","Warn: Project is vulnerable to: GHSA-f96h-pmfr-66vw"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/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 5 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-14T21:21:54.337Z","repository_id":38355448,"created_at":"2025-08-14T21:21:54.337Z","updated_at":"2025-08-14T21:21:54.337Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":343170754,"owners_count":38059154,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-10-03T21:59:58.778Z","status":"online","status_checked_at":"2026-10-05T02:00:06.766Z","response_time":83,"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":"miguelgrinberg","name":"Miguel Grinberg","uuid":"2715854","kind":"user","description":"","email":"","website":"https://blog.miguelgrinberg.com","location":"Ireland","twitter":"miguelgrinberg","company":null,"icon_url":"https://avatars.githubusercontent.com/u/2715854?v=4","repositories_count":207,"last_synced_at":"2026-10-05T08:48:58.787Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"miguelgrinberg","patreon":"miguelgrinberg","buy_me_a_coffee":"miguelgrinberg","thanks_dev":"u/gh/miguelgrinberg","custom":"https://paypal.me/miguelgrinberg"}},"html_url":"https://github.com/miguelgrinberg","funding_links":["https://github.com/sponsors/miguelgrinberg","https://patreon.com/miguelgrinberg","https://buymeacoffee.com/miguelgrinberg","https://thanks.dev/u/gh/miguelgrinberg","https://paypal.me/miguelgrinberg"],"total_stars":42747,"followers":12944,"following":0,"created_at":"2022-11-02T16:23:36.496Z","updated_at":"2026-10-05T08:48:58.797Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/miguelgrinberg","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/miguelgrinberg/repositories"},"tags":[{"name":"v2.6.2","sha":"b241dfce270883e5018f0b8ec8f5821ea4fe156e","kind":"commit","published_at":"2026-05-12T19:19:36.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v2.6.2","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v2.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v2.6.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.6.2/manifests"},{"name":"v2.6.1","sha":"67f1638022a2f02d73191ba9933c1273c3ddf251","kind":"commit","published_at":"2026-04-24T19:15:09.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v2.6.1","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v2.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v2.6.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.6.1/manifests"},{"name":"v2.6.0","sha":"0feb720168359e62576d7d71eec556369df68fbd","kind":"commit","published_at":"2026-03-08T12:56:25.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v2.6.0","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v2.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v2.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.6.0/manifests"},{"name":"v2.5.1","sha":"10e740da2b4adb2a19c2cf251dae2e2d7de447ba","kind":"commit","published_at":"2025-12-21T10:50:34.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v2.5.1","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v2.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v2.5.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.5.1/manifests"},{"name":"v2.5.0","sha":"a862a3353b04f01d1fb39407c903890224b1b768","kind":"commit","published_at":"2025-12-21T09:45:19.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v2.5.0","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v2.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v2.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.5.0/manifests"},{"name":"v2.4.0","sha":"4c2d2896c3269a44b7edc64250da00a29badddc9","kind":"commit","published_at":"2025-11-08T12:28:33.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v2.4.0","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v2.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v2.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.4.0/manifests"},{"name":"v2.3.5","sha":"2d4189100a597cd5f280479476b40c80e9864a7e","kind":"commit","published_at":"2025-10-17T23:10:45.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v2.3.5","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v2.3.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v2.3.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.3.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.3.5/manifests"},{"name":"v2.3.4","sha":"84361045a39c44fde6ef2a7151b0d5e3d071e071","kind":"commit","published_at":"2025-10-15T23:21:49.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v2.3.4","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v2.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v2.3.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.3.4/manifests"},{"name":"v2.3.3","sha":"eb5e249e34e08340a3ed9382a2efe9ef51ba551d","kind":"commit","published_at":"2025-07-01T22:46:00.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v2.3.3","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v2.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v2.3.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.3.3/manifests"},{"name":"v2.3.2","sha":"4c0ace1b01d49b4e53dc389c99ec36261c5f4ef2","kind":"commit","published_at":"2025-05-08T22:02:29.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v2.3.2","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v2.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v2.3.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.3.2/manifests"},{"name":"v2.3.1","sha":"f30c4733f0a0e9dfe4f34eaa8aee920c8d533405","kind":"commit","published_at":"2025-04-12T23:01:12.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v2.3.1","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v2.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v2.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.3.1/manifests"},{"name":"v2.3.0","sha":"815594fc8b3a1f7db4402553496c30d987cdbcef","kind":"commit","published_at":"2025-04-12T22:31:54.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v2.3.0","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v2.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v2.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.3.0/manifests"},{"name":"v2.2.0","sha":"9337a2ec9bb763d25cde9dcee587ce05a0d013c0","kind":"commit","published_at":"2025-03-22T12:35:02.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v2.2.0","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v2.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v2.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.2.0/manifests"},{"name":"v2.1.0","sha":"2efbd6787879cd6c0bf2796dece4620854352ea8","kind":"commit","published_at":"2025-02-04T00:31:06.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v2.1.0","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.1.0/manifests"},{"name":"v2.0.7","sha":"32f5e415e7795252b4cdeee0a8c324ed6a1cc6aa","kind":"commit","published_at":"2024-11-10T22:57:31.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v2.0.7","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v2.0.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v2.0.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.0.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.0.7/manifests"},{"name":"v2.0.6","sha":"53287217aea08c3361ef560fad54625eb9f05431","kind":"commit","published_at":"2024-06-18T22:14:14.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v2.0.6","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v2.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v2.0.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.0.6/manifests"},{"name":"v2.0.5","sha":"14f2c9d3453a26f1a42dddb247e0a4b7c0c1543a","kind":"commit","published_at":"2024-03-09T10:48:09.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v2.0.5","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v2.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v2.0.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.0.5/manifests"},{"name":"v2.0.4","sha":"53b28f99384a1524f4f658713baa5c5009422b00","kind":"commit","published_at":"2024-02-20T23:12:31.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v2.0.4","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v2.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v2.0.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.0.4/manifests"},{"name":"v2.0.3","sha":"7a6026006facba7093d8229bf64a5422837cc58e","kind":"commit","published_at":"2024-01-07T10:50:28.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v2.0.3","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v2.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v2.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.0.3/manifests"},{"name":"v2.0.2","sha":"300f8563ed1d976d94335d9ec83371b26c85e0e7","kind":"commit","published_at":"2023-12-28T12:10:46.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v2.0.2","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v2.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v2.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.0.2/manifests"},{"name":"v2.0.1","sha":"c2e18004f73a8f4fa0f5863d961a7222dfccb0a5","kind":"commit","published_at":"2023-12-23T12:49:52.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v2.0.1","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v2.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.0.1/manifests"},{"name":"v2.0.0","sha":"92e571ee321de7a30bdda009285a0a8b05ccbadc","kind":"commit","published_at":"2023-12-22T20:41:15.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v2.0.0","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v2.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v2.0.0/manifests"},{"name":"vv2.0.0","sha":"a8ae47799c61ce14c212dc754e582f0b1b09e3e9","kind":"commit","published_at":"2023-12-22T20:39:09.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/vv2.0.0","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/vv2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@vv2.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/vv2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/vv2.0.0/manifests"},{"name":"v1.3.4","sha":"93411c6a9f305e121ab72bbfcbc9d56004931f70","kind":"commit","published_at":"2023-11-08T00:14:21.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v1.3.4","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v1.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v1.3.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v1.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v1.3.4/manifests"},{"name":"v1.3.3","sha":"42406cef42efe942294582bc563750b7296adbcc","kind":"commit","published_at":"2023-07-16T10:41:02.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v1.3.3","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v1.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v1.3.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v1.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v1.3.3/manifests"},{"name":"v1.3.2","sha":"42c88b6b20cdc7fc0f289631b7538a31d32581e6","kind":"commit","published_at":"2023-06-13T13:45:10.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v1.3.2","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v1.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v1.3.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v1.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v1.3.2/manifests"},{"name":"v1.3.1","sha":"87c47ccefc3de1ed2d02d2a4c710ae46fbb0d1d8","kind":"commit","published_at":"2023-05-21T22:37:40.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v1.3.1","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"79e11262d1b6d3711aae6364395e31a4344b16a4","kind":"commit","published_at":"2023-04-08T16:21:30.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v1.3.0","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v1.3.0/manifests"},{"name":"v1.2.4","sha":"358fe6d2cc9f8d0ceb3372bc97cb095713b52585","kind":"commit","published_at":"2023-03-03T08:40:22.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v1.2.4","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v1.2.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v1.2.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v1.2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v1.2.4/manifests"},{"name":"v1.2.3","sha":"cb856e1bc7624815d10024c308ec320860755ac7","kind":"commit","published_at":"2023-03-03T08:19:59.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v1.2.3","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v1.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v1.2.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v1.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v1.2.3/manifests"},{"name":"v1.2.2","sha":"46b120bc87a65bf3a6f03208c915ca1226f534cc","kind":"commit","published_at":"2023-03-03T07:19:47.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v1.2.2","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v1.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v1.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v1.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v1.2.2/manifests"},{"name":"v1.2.1","sha":"e69c2dc42fb76a269f296f0d3263a6a2df3eae81","kind":"commit","published_at":"2022-12-06T12:37:51.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v1.2.1","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v1.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v1.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v1.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v1.2.1/manifests"},{"name":"v1.2.0","sha":"cb2a23285e3fe244b49b18f97278333c4a425c82","kind":"commit","published_at":"2022-09-25T11:19:31.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v1.2.0","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v1.2.0/manifests"},{"name":"v1.1.1","sha":"ff178508f9f9be757e73d071b4f13847eacbc133","kind":"commit","published_at":"2022-09-18T10:26:04.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v1.1.1","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v1.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v1.1.1/manifests"},{"name":"v1.1.0","sha":"51a0aa62e19d911e6ce86cde5d6f93a90d276c8b","kind":"commit","published_at":"2022-09-17T22:17:38.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v1.1.0","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"74998e7f68c3c8c8141d34981557dbcc35e949a5","kind":"commit","published_at":"2022-08-07T14:52:13.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v1.0.0","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v1.0.0/manifests"},{"name":"v0.9.0","sha":"aac022ba437d0f89488fbfad6ef4faa4e21d6e0a","kind":"commit","published_at":"2022-06-04T15:48:03.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v0.9.0","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v0.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v0.9.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v0.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v0.9.0/manifests"},{"name":"v0.8.2","sha":"5f7efcc3f853b3dea4a4bdd581b0bf2cd5747697","kind":"commit","published_at":"2022-04-20T09:15:17.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v0.8.2","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v0.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v0.8.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v0.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v0.8.2/manifests"},{"name":"v0.8.1","sha":"453e133cc207f9298a66963c497cc44185e83d37","kind":"commit","published_at":"2022-03-18T23:51:28.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v0.8.1","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v0.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v0.8.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v0.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v0.8.1/manifests"},{"name":"v0.8.0","sha":"f23a6be2dbff11e16be01a0b215fdc4a0bdb3929","kind":"commit","published_at":"2022-02-18T17:40:59.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v0.8.0","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v0.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v0.8.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v0.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v0.8.0/manifests"},{"name":"v0.7.2","sha":"f23c78533e4628331b2777ecf0e75f06492f1461","kind":"commit","published_at":"2021-09-28T16:21:05.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v0.7.2","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v0.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v0.7.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v0.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v0.7.2/manifests"},{"name":"v0.7.1","sha":"2fe979338961609bec14972ccfe84aae7508d5b2","kind":"commit","published_at":"2021-09-27T21:58:32.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v0.7.1","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v0.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v0.7.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v0.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v0.7.1/manifests"},{"name":"v0.7.0","sha":"e508abc333c0577401bdeb1c0242ddb35b23231e","kind":"commit","published_at":"2021-09-27T16:12:42.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v0.7.0","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v0.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v0.7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v0.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v0.7.0/manifests"},{"name":"v0.6.0","sha":"5061145f5c39958c0c3731d28643a1cf24d0df02","kind":"commit","published_at":"2021-08-11T09:36:42.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v0.6.0","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v0.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v0.6.0/manifests"},{"name":"v0.5.0","sha":"2de57498a893e41f6b0aaed49fb9e1beb7359175","kind":"commit","published_at":"2021-06-06T10:47:09.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v0.5.0","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v0.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v0.5.0/manifests"},{"name":"v0.4.0","sha":"4eea7adb8ffe663e6d228b88ac068da010782b32","kind":"commit","published_at":"2021-06-04T16:16:18.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v0.4.0","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v0.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v0.4.0/manifests"},{"name":"v0.3.1","sha":"b810346aa48784ad00d70f160f2542222895f30a","kind":"commit","published_at":"2021-02-06T12:12:08.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v0.3.1","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v0.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v0.3.1/manifests"},{"name":"v0.3.0","sha":"64cc1729176ee25f7f2fb30569518c8f476bdd10","kind":"commit","published_at":"2019-05-05T20:32:55.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v0.3.0","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v0.3.0/manifests"},{"name":"v0.2.0","sha":"db29624a4590cd6864dd537fa9f59a281e848314","kind":"commit","published_at":"2019-04-19T19:22:18.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v0.2.0","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v0.2.0/manifests"},{"name":"v0.1.1","sha":"4fbed286e4d7062c73af213d7b0a839447d4ead8","kind":"commit","published_at":"2019-04-17T06:50:11.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v0.1.1","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v0.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v0.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v0.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v0.1.1/manifests"},{"name":"v0.1.0","sha":"311a82a44430d427948866b09cb6136e60a5b1c9","kind":"commit","published_at":"2019-04-16T11:00:41.000Z","download_url":"https://codeload.github.com/miguelgrinberg/microdot/tar.gz/v0.1.0","html_url":"https://github.com/miguelgrinberg/microdot/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/miguelgrinberg/microdot@v0.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/tags/v0.1.0/manifests"}]},"repo_metadata_updated_at":"2026-10-06T01:58:45.963Z","dependent_packages_count":1,"downloads":5495,"downloads_period":"last-month","dependent_repos_count":39,"rankings":{"downloads":9.770887172811843,"dependent_repos_count":2.3418859540288683,"dependent_packages_count":10.082087700208083,"stargazers_count":2.073925341741517,"forks_count":4.667563981404585,"docker_downloads_count":null,"average":5.78727003003898},"purl":"pkg:pypi/microdot","advisories":[{"uuid":"GSA_kwCzR0hTQS03d2M4LXd2YzQtbTQ5OM4ABWMR","url":"https://github.com/advisories/GHSA-7wc8-wvc4-m498","title":"Microdot has HTTP response splitting in Response.set_cookie()","description":"### Impact\nThe `Response.set_cookie()` method does not sanitize its string arguments, and in particular will not detect the presence of the `\\r\\n` sequence in them. This can be a potential source of header injection attacks.\n\nFor a header injection attack through this issue to be possible, an attacker must first infiltrate the client (for example through an independent XSS attack), so that it can send malicious information that is destined to be stored in a cookie by the server on behalf of the victim. An attacker that infiltrates one client can only orchestrate a header injection attack for that client, all other clients that were not infiltrated are safe.\n\n### Patches\nUpgrade to version 2.6.1.\n\n### Workarounds\nDo not pass untrusted data to the `Response.set_cookie()` method.","origin":"UNSPECIFIED","severity":"LOW","published_at":"2026-05-05T18:35:20.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:N/I:L/A:N","references":["https://github.com/miguelgrinberg/microdot/security/advisories/GHSA-7wc8-wvc4-m498","https://github.com/miguelgrinberg/microdot/commit/99b281b45faef8472410f2d56bfef496dfbd95d5","https://github.com/miguelgrinberg/microdot/blob/main/CHANGES.md","https://nvd.nist.gov/vuln/detail/CVE-2026-42874","https://github.com/advisories/GHSA-7wc8-wvc4-m498"],"source_kind":"github","identifiers":["GHSA-7wc8-wvc4-m498","CVE-2026-42874"],"repository_url":null,"blast_radius":0.0,"created_at":"2026-05-05T19:00:08.699Z","updated_at":"2026-10-06T16:05:29.808Z","epss_percentage":0.00343,"epss_percentile":0.25501,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS03d2M4LXd2YzQtbTQ5OM4ABWMR","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS03d2M4LXd2YzQtbTQ5OM4ABWMR","packages":[{"ecosystem":"pypi","package_name":"microdot","versions":[{"first_patched_version":"2.6.1","vulnerable_version_range":"\u003c 2.6.1"}],"purl":"pkg:pypi/microdot"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS03d2M4LXd2YzQtbTQ5OM4ABWMR/related_packages","related_advisories":[]}],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/microdot","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/microdot","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/microdot/dependencies","status":null,"funding_links":["https://code.miguelgrinberg.com/miguelgrinberg/microdot#sponsor-this-project","https://github.com/sponsors/miguelgrinberg","https://patreon.com/miguelgrinberg","https://buymeacoffee.com/miguelgrinberg","https://thanks.dev/u/gh/miguelgrinberg","https://paypal.me/miguelgrinberg"],"critical":null,"issue_metadata":{"last_synced_at":"2026-10-05T09:13:15.930Z","issues_count":138,"pull_requests_count":96,"avg_time_to_close_issue":5929240.729508197,"avg_time_to_close_pull_request":1760761.4069767443,"issues_closed_count":122,"pull_requests_closed_count":86,"pull_request_authors_count":23,"issue_authors_count":90,"avg_comments_per_issue":4.057971014492754,"avg_comments_per_pull_request":0.9270833333333334,"merged_pull_requests_count":68,"bot_issues_count":0,"bot_pull_requests_count":51,"past_year_issues_count":6,"past_year_pull_requests_count":9,"past_year_avg_time_to_close_issue":7040886.8,"past_year_avg_time_to_close_pull_request":6530210.666666667,"past_year_issues_closed_count":5,"past_year_pull_requests_closed_count":9,"past_year_pull_request_authors_count":3,"past_year_issue_authors_count":6,"past_year_avg_comments_per_issue":3.3333333333333335,"past_year_avg_comments_per_pull_request":0.5555555555555556,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":6,"past_year_merged_pull_requests_count":4,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/miguelgrinberg%2Fmicrodot/issues","maintainers":[{"login":"miguelgrinberg","count":20,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/miguelgrinberg"}],"active_maintainers":[{"login":"miguelgrinberg","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/miguelgrinberg"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/microdot/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/microdot/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/microdot/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/microdot/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/microdot/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/microdot/codemeta","maintainers":[{"uuid":"miguelgrinberg","login":"miguelgrinberg","name":null,"email":null,"url":null,"packages_count":30,"html_url":"https://pypi.org/user/miguelgrinberg/","role":null,"created_at":"2023-02-12T22:37:36.740Z","updated_at":"2023-02-12T22:37:36.740Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/miguelgrinberg/packages"}]}