{"id":68059,"name":"duet","description":null,"url":"https://github.com/google/duet","last_synced_at":"2025-09-08T14:03:19.632Z","repository":{"id":37049721,"uuid":"337228795","full_name":"google/duet","owner":"google","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-09T21:04:47.000Z","size":143,"stargazers_count":23,"open_issues_count":6,"forks_count":16,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-09-03T07:47:03.166Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/google.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-02-08T22:37:11.000Z","updated_at":"2025-07-17T18:59:55.000Z","dependencies_parsed_at":"2024-02-09T23:24:57.715Z","dependency_job_id":"d43ee929-8a79-4626-b058-18d98b9646e6","html_url":"https://github.com/google/duet","commit_stats":{"total_commits":76,"total_committers":10,"mean_commits":7.6,"dds":0.1842105263157895,"last_synced_commit":"353f1a5391a6f82641d8cc11b5fa19aaab790ebb"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/google/duet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/google","download_url":"https://codeload.github.com/google/duet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/sbom","scorecard":{"id":436808,"data":{"date":"2025-08-11","repo":{"name":"github.com/google/duet","commit":"6548913885730efc58d8a4fcdb8f6dc02e49618c"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.7,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":2,"reason":"Found 8/30 approved changesets -- score normalized to 2","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":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"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":"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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:10: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:57: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:72: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:73: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:88: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:89: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:104: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:105: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/ci.yml:32","Warn: pipCommand not pinned by hash: .github/workflows/ci.yml:47","Warn: pipCommand not pinned by hash: .github/workflows/ci.yml:63","Warn: pipCommand not pinned by hash: .github/workflows/ci.yml:79","Warn: pipCommand not pinned by hash: .github/workflows/ci.yml:111","Warn: pipCommand not pinned by hash: .github/workflows/ci.yml:19","Info:   0 out of  14 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   6 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":"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":"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":"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":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/google/.github/SECURITY.md:1","Info: Found linked content: github.com/google/.github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/google/.github/SECURITY.md:1","Info: Found text in security policy: github.com/google/.github/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":"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":"Vulnerabilities","score":9,"reason":"1 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2022-43017 / GHSA-qwmp-2cf2-g9g6"],"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":1,"reason":"SAST tool is not run on all commits -- score normalized to 1","details":["Warn: 4 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-19T04:52:43.006Z","repository_id":37049721,"created_at":"2025-08-19T04:52:43.006Z","updated_at":"2025-08-19T04:52:43.006Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273997155,"owners_count":25204479,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-07T02:00:09.463Z","response_time":67,"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":"google","name":"Google","uuid":"1342004","kind":"organization","description":"Google ❤️ Open Source","email":"opensource@google.com","website":"https://opensource.google/","location":"United States of America","twitter":"GoogleOSS","company":null,"icon_url":"https://avatars.githubusercontent.com/u/1342004?v=4","repositories_count":2773,"last_synced_at":"2025-08-12T15:55:14.931Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/google","funding_links":[],"total_stars":1967885,"followers":58475,"following":0,"created_at":"2022-11-02T16:20:58.973Z","updated_at":"2025-08-12T15:55:14.931Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/google","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/google/repositories"},"packages":[{"id":2717418,"name":"duet","ecosystem":"pypi","description":"A simple future-based async library for python.","homepage":"http://github.com/google/duet","licenses":"Apache 2","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/google/duet","keywords_array":[],"namespace":null,"versions_count":37,"first_release_published_at":"2021-09-02T20:02:24.000Z","latest_release_published_at":"2023-07-26T06:38:58.000Z","latest_release_number":"0.2.9","last_synced_at":"2025-09-08T12:45:29.406Z","created_at":"2022-04-10T10:49:48.553Z","updated_at":"2025-09-08T12:45:29.406Z","registry_url":"https://pypi.org/project/duet/","install_command":"pip install duet --index-url https://pypi.org/simple","documentation_url":"https://duet.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":[],"normalized_name":"duet","project_status":null},"repo_metadata":{"id":37049721,"uuid":"337228795","full_name":"google/duet","owner":"google","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-09T21:04:47.000Z","size":143,"stargazers_count":23,"open_issues_count":6,"forks_count":16,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-09-03T07:47:03.166Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/google.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-02-08T22:37:11.000Z","updated_at":"2025-07-17T18:59:55.000Z","dependencies_parsed_at":"2024-02-09T23:24:57.715Z","dependency_job_id":"d43ee929-8a79-4626-b058-18d98b9646e6","html_url":"https://github.com/google/duet","commit_stats":{"total_commits":76,"total_committers":10,"mean_commits":7.6,"dds":0.1842105263157895,"last_synced_commit":"353f1a5391a6f82641d8cc11b5fa19aaab790ebb"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/google/duet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/google","download_url":"https://codeload.github.com/google/duet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/sbom","scorecard":{"id":436808,"data":{"date":"2025-08-11","repo":{"name":"github.com/google/duet","commit":"6548913885730efc58d8a4fcdb8f6dc02e49618c"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.7,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":2,"reason":"Found 8/30 approved changesets -- score normalized to 2","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":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"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":"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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:10: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:57: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:72: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:73: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:88: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:89: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:104: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:105: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/ci.yml:32","Warn: pipCommand not pinned by hash: .github/workflows/ci.yml:47","Warn: pipCommand not pinned by hash: .github/workflows/ci.yml:63","Warn: pipCommand not pinned by hash: .github/workflows/ci.yml:79","Warn: pipCommand not pinned by hash: .github/workflows/ci.yml:111","Warn: pipCommand not pinned by hash: .github/workflows/ci.yml:19","Info:   0 out of  14 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   6 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":"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":"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":"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":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/google/.github/SECURITY.md:1","Info: Found linked content: github.com/google/.github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/google/.github/SECURITY.md:1","Info: Found text in security policy: github.com/google/.github/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":"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":"Vulnerabilities","score":9,"reason":"1 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2022-43017 / GHSA-qwmp-2cf2-g9g6"],"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":1,"reason":"SAST tool is not run on all commits -- score normalized to 1","details":["Warn: 4 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-19T04:52:43.006Z","repository_id":37049721,"created_at":"2025-08-19T04:52:43.006Z","updated_at":"2025-08-19T04:52:43.006Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273997155,"owners_count":25204479,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-07T02:00:09.463Z","response_time":67,"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":"google","name":"Google","uuid":"1342004","kind":"organization","description":"Google ❤️ Open Source","email":"opensource@google.com","website":"https://opensource.google/","location":"United States of America","twitter":"GoogleOSS","company":null,"icon_url":"https://avatars.githubusercontent.com/u/1342004?v=4","repositories_count":2773,"last_synced_at":"2025-08-12T15:55:14.931Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/google","funding_links":[],"total_stars":1967885,"followers":58475,"following":0,"created_at":"2022-11-02T16:20:58.973Z","updated_at":"2025-08-12T15:55:14.931Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/google","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/google/repositories"},"tags":[{"name":"v0.2.9","sha":"a018ae39c54d99a2350c2b930e57b27ae765dafb","kind":"commit","published_at":"2023-07-26T06:37:48.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.2.9","html_url":"https://github.com/google/duet/releases/tag/v0.2.9","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.2.9","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.9/manifests"},{"name":"v0.2.8","sha":"60252083355fc38a195aebeecbc8e914071c975f","kind":"commit","published_at":"2023-04-12T19:41:50.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.2.8","html_url":"https://github.com/google/duet/releases/tag/v0.2.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.2.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.8/manifests"},{"name":"v0.2.7","sha":"db15ef2933afca3523907f88ea7327108bd87d56","kind":"commit","published_at":"2022-06-18T01:35:05.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.2.7","html_url":"https://github.com/google/duet/releases/tag/v0.2.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.2.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.7/manifests"},{"name":"v0.2.6","sha":"13a1592eef359132dd3e23d4096cf324a94ca585","kind":"commit","published_at":"2022-04-21T23:14:58.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.2.6","html_url":"https://github.com/google/duet/releases/tag/v0.2.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.2.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.6/manifests"},{"name":"v0.2.5","sha":"c412d6ad4676b29379ac6546d2d16891b58f865c","kind":"commit","published_at":"2022-03-17T22:22:21.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.2.5","html_url":"https://github.com/google/duet/releases/tag/v0.2.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.2.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.5/manifests"},{"name":"v0.2.4","sha":"ddccba57fae69445333448ae5308b046168ac801","kind":"commit","published_at":"2022-03-17T16:18:31.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.2.4","html_url":"https://github.com/google/duet/releases/tag/v0.2.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.2.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.4/manifests"},{"name":"v0.2.3","sha":"1697889503f4f15353a08c5358d3331031e672d6","kind":"commit","published_at":"2021-11-01T23:28:47.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.2.3","html_url":"https://github.com/google/duet/releases/tag/v0.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.2.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.3/manifests"},{"name":"v0.2.2","sha":"3b2c05533df47460c833b0c9412019cb0f5360ce","kind":"commit","published_at":"2021-10-21T18:16:21.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.2.2","html_url":"https://github.com/google/duet/releases/tag/v0.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.2/manifests"},{"name":"duet-async-0.1.3","sha":"71d7ac9bb03b9eb3ae38859934cabc42a8e6384f","kind":"commit","published_at":"2021-08-25T21:21:30.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/duet-async-0.1.3","html_url":"https://github.com/google/duet/releases/tag/duet-async-0.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@duet-async-0.1.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/duet-async-0.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/duet-async-0.1.3/manifests"},{"name":"v0.2.1","sha":"91ba22300cf437f3707f39022f9d0d3f1fbfc7af","kind":"commit","published_at":"2021-08-25T21:10:37.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.2.1","html_url":"https://github.com/google/duet/releases/tag/v0.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.1/manifests"},{"name":"v0.2.0","sha":"8ad6849427379bf1db9dd3be9e449f54ecfca5e2","kind":"commit","published_at":"2021-07-12T05:41:55.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.2.0","html_url":"https://github.com/google/duet/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.0/manifests"},{"name":"v0.1.2","sha":"53f25435002555caf37c5f2c290ba7e7b95b447d","kind":"commit","published_at":"2021-05-12T17:17:35.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.1.2","html_url":"https://github.com/google/duet/releases/tag/v0.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.1.2/manifests"},{"name":"v0.1.1","sha":"43d07ecdf2585a30d3229792436f654e2e10c8b2","kind":"commit","published_at":"2021-02-11T19:46:53.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.1.1","html_url":"https://github.com/google/duet/releases/tag/v0.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.1.1/manifests"},{"name":"v0.1.0","sha":"8edb718dea82bb725e4028e0d96903036b732510","kind":"commit","published_at":"2021-02-10T18:49:03.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.1.0","html_url":"https://github.com/google/duet/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.1.0/manifests"}]},"repo_metadata_updated_at":"2025-09-07T23:41:03.859Z","dependent_packages_count":3,"downloads":151809,"downloads_period":"last-month","dependent_repos_count":37,"rankings":{"downloads":1.0288152055916353,"dependent_repos_count":2.400330738484166,"dependent_packages_count":2.3666079825624378,"stargazers_count":13.39864237962693,"forks_count":9.113391533645547,"docker_downloads_count":2.194945435846649,"average":5.083788879292894},"purl":"pkg:pypi/duet","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/duet","docker_dependents_count":5,"docker_downloads_count":411,"usage_url":"https://repos.ecosyste.ms/usage/pypi/duet","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/duet/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-09-01T05:30:22.112Z","issues_count":9,"pull_requests_count":82,"avg_time_to_close_issue":1638032.4,"avg_time_to_close_pull_request":103770.225,"issues_closed_count":5,"pull_requests_closed_count":80,"pull_request_authors_count":9,"issue_authors_count":2,"avg_comments_per_issue":0.5555555555555556,"avg_comments_per_pull_request":0.2073170731707317,"merged_pull_requests_count":79,"bot_issues_count":0,"bot_pull_requests_count":1,"past_year_issues_count":0,"past_year_pull_requests_count":5,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":198750.75,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":4,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":4,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/issues","maintainers":[{"login":"maffoo","count":85,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/maffoo"},{"login":"fedimser","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/fedimser"},{"login":"kunalq","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kunalq"},{"login":"pingyeh","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pingyeh"}],"active_maintainers":[{"login":"maffoo","count":10,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/maffoo"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/duet/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/duet/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/duet/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/duet/related_packages","maintainers":[{"uuid":"mneeley","login":"mneeley","name":null,"email":null,"url":null,"packages_count":7,"html_url":"https://pypi.org/user/mneeley/","role":null,"created_at":"2022-11-21T04:54:39.706Z","updated_at":"2022-11-21T04:54:39.706Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/mneeley/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":726150,"maintainers_count":308801,"namespaces_count":0,"keywords_count":238245,"github":"pypi","metadata":{"funded_packages_count":50579},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-09-08T05:32:36.857Z","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":2717425,"name":"duet-async","ecosystem":"pypi","description":"A simple future-based async library for python.","homepage":"http://github.com/google/duet","licenses":"Apache 2","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/google/duet","keywords_array":[],"namespace":null,"versions_count":10,"first_release_published_at":"2021-02-09T23:59:22.000Z","latest_release_published_at":"2021-08-25T21:21:44.000Z","latest_release_number":"0.1.3","last_synced_at":"2025-09-08T12:45:29.160Z","created_at":"2022-04-10T10:49:48.922Z","updated_at":"2025-09-08T12:45:29.160Z","registry_url":"https://pypi.org/project/duet-async/","install_command":"pip install duet-async --index-url https://pypi.org/simple","documentation_url":"https://duet-async.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":[],"normalized_name":"duet-async","project_status":null},"repo_metadata":{"id":37049721,"uuid":"337228795","full_name":"google/duet","owner":"google","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-09T21:04:47.000Z","size":143,"stargazers_count":23,"open_issues_count":6,"forks_count":16,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-09-03T07:47:03.166Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/google.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-02-08T22:37:11.000Z","updated_at":"2025-07-17T18:59:55.000Z","dependencies_parsed_at":"2024-02-09T23:24:57.715Z","dependency_job_id":"d43ee929-8a79-4626-b058-18d98b9646e6","html_url":"https://github.com/google/duet","commit_stats":{"total_commits":76,"total_committers":10,"mean_commits":7.6,"dds":0.1842105263157895,"last_synced_commit":"353f1a5391a6f82641d8cc11b5fa19aaab790ebb"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/google/duet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/google","download_url":"https://codeload.github.com/google/duet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/sbom","scorecard":{"id":436808,"data":{"date":"2025-08-11","repo":{"name":"github.com/google/duet","commit":"6548913885730efc58d8a4fcdb8f6dc02e49618c"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.7,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":2,"reason":"Found 8/30 approved changesets -- score normalized to 2","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":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"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":"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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:10: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:57: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:72: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:73: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:88: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:89: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:104: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:105: update your workflow using https://app.stepsecurity.io/secureworkflow/google/duet/ci.yml/main?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/ci.yml:32","Warn: pipCommand not pinned by hash: .github/workflows/ci.yml:47","Warn: pipCommand not pinned by hash: .github/workflows/ci.yml:63","Warn: pipCommand not pinned by hash: .github/workflows/ci.yml:79","Warn: pipCommand not pinned by hash: .github/workflows/ci.yml:111","Warn: pipCommand not pinned by hash: .github/workflows/ci.yml:19","Info:   0 out of  14 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   6 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":"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":"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":"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":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/google/.github/SECURITY.md:1","Info: Found linked content: github.com/google/.github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/google/.github/SECURITY.md:1","Info: Found text in security policy: github.com/google/.github/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":"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":"Vulnerabilities","score":9,"reason":"1 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2022-43017 / GHSA-qwmp-2cf2-g9g6"],"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":1,"reason":"SAST tool is not run on all commits -- score normalized to 1","details":["Warn: 4 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-19T04:52:43.006Z","repository_id":37049721,"created_at":"2025-08-19T04:52:43.006Z","updated_at":"2025-08-19T04:52:43.006Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273997155,"owners_count":25204479,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-07T02:00:09.463Z","response_time":67,"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":"google","name":"Google","uuid":"1342004","kind":"organization","description":"Google ❤️ Open Source","email":"opensource@google.com","website":"https://opensource.google/","location":"United States of America","twitter":"GoogleOSS","company":null,"icon_url":"https://avatars.githubusercontent.com/u/1342004?v=4","repositories_count":2773,"last_synced_at":"2025-08-12T15:55:14.931Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/google","funding_links":[],"total_stars":1967885,"followers":58475,"following":0,"created_at":"2022-11-02T16:20:58.973Z","updated_at":"2025-08-12T15:55:14.931Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/google","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/google/repositories"},"tags":[{"name":"v0.2.9","sha":"a018ae39c54d99a2350c2b930e57b27ae765dafb","kind":"commit","published_at":"2023-07-26T06:37:48.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.2.9","html_url":"https://github.com/google/duet/releases/tag/v0.2.9","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.2.9","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.9/manifests"},{"name":"v0.2.8","sha":"60252083355fc38a195aebeecbc8e914071c975f","kind":"commit","published_at":"2023-04-12T19:41:50.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.2.8","html_url":"https://github.com/google/duet/releases/tag/v0.2.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.2.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.8/manifests"},{"name":"v0.2.7","sha":"db15ef2933afca3523907f88ea7327108bd87d56","kind":"commit","published_at":"2022-06-18T01:35:05.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.2.7","html_url":"https://github.com/google/duet/releases/tag/v0.2.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.2.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.7/manifests"},{"name":"v0.2.6","sha":"13a1592eef359132dd3e23d4096cf324a94ca585","kind":"commit","published_at":"2022-04-21T23:14:58.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.2.6","html_url":"https://github.com/google/duet/releases/tag/v0.2.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.2.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.6/manifests"},{"name":"v0.2.5","sha":"c412d6ad4676b29379ac6546d2d16891b58f865c","kind":"commit","published_at":"2022-03-17T22:22:21.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.2.5","html_url":"https://github.com/google/duet/releases/tag/v0.2.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.2.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.5/manifests"},{"name":"v0.2.4","sha":"ddccba57fae69445333448ae5308b046168ac801","kind":"commit","published_at":"2022-03-17T16:18:31.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.2.4","html_url":"https://github.com/google/duet/releases/tag/v0.2.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.2.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.4/manifests"},{"name":"v0.2.3","sha":"1697889503f4f15353a08c5358d3331031e672d6","kind":"commit","published_at":"2021-11-01T23:28:47.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.2.3","html_url":"https://github.com/google/duet/releases/tag/v0.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.2.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.3/manifests"},{"name":"v0.2.2","sha":"3b2c05533df47460c833b0c9412019cb0f5360ce","kind":"commit","published_at":"2021-10-21T18:16:21.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.2.2","html_url":"https://github.com/google/duet/releases/tag/v0.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.2/manifests"},{"name":"duet-async-0.1.3","sha":"71d7ac9bb03b9eb3ae38859934cabc42a8e6384f","kind":"commit","published_at":"2021-08-25T21:21:30.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/duet-async-0.1.3","html_url":"https://github.com/google/duet/releases/tag/duet-async-0.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@duet-async-0.1.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/duet-async-0.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/duet-async-0.1.3/manifests"},{"name":"v0.2.1","sha":"91ba22300cf437f3707f39022f9d0d3f1fbfc7af","kind":"commit","published_at":"2021-08-25T21:10:37.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.2.1","html_url":"https://github.com/google/duet/releases/tag/v0.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.1/manifests"},{"name":"v0.2.0","sha":"8ad6849427379bf1db9dd3be9e449f54ecfca5e2","kind":"commit","published_at":"2021-07-12T05:41:55.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.2.0","html_url":"https://github.com/google/duet/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.0/manifests"},{"name":"v0.1.2","sha":"53f25435002555caf37c5f2c290ba7e7b95b447d","kind":"commit","published_at":"2021-05-12T17:17:35.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.1.2","html_url":"https://github.com/google/duet/releases/tag/v0.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.1.2/manifests"},{"name":"v0.1.1","sha":"43d07ecdf2585a30d3229792436f654e2e10c8b2","kind":"commit","published_at":"2021-02-11T19:46:53.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.1.1","html_url":"https://github.com/google/duet/releases/tag/v0.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.1.1/manifests"},{"name":"v0.1.0","sha":"8edb718dea82bb725e4028e0d96903036b732510","kind":"commit","published_at":"2021-02-10T18:49:03.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.1.0","html_url":"https://github.com/google/duet/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.1.0/manifests"}]},"repo_metadata_updated_at":"2025-09-07T23:41:04.033Z","dependent_packages_count":0,"downloads":31,"downloads_period":"last-month","dependent_repos_count":1,"rankings":{"downloads":29.372316978581907,"dependent_repos_count":21.727697944596816,"dependent_packages_count":9.995259271770403,"stargazers_count":13.346333299425941,"forks_count":9.122977389755626,"docker_downloads_count":null,"average":16.71291697682614},"purl":"pkg:pypi/duet-async","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/duet-async","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/duet-async","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/duet-async/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-09-01T05:30:22.112Z","issues_count":9,"pull_requests_count":82,"avg_time_to_close_issue":1638032.4,"avg_time_to_close_pull_request":103770.225,"issues_closed_count":5,"pull_requests_closed_count":80,"pull_request_authors_count":9,"issue_authors_count":2,"avg_comments_per_issue":0.5555555555555556,"avg_comments_per_pull_request":0.2073170731707317,"merged_pull_requests_count":79,"bot_issues_count":0,"bot_pull_requests_count":1,"past_year_issues_count":0,"past_year_pull_requests_count":5,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":198750.75,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":4,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":4,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/issues","maintainers":[{"login":"maffoo","count":85,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/maffoo"},{"login":"fedimser","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/fedimser"},{"login":"kunalq","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kunalq"},{"login":"pingyeh","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pingyeh"}],"active_maintainers":[{"login":"maffoo","count":10,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/maffoo"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/duet-async/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/duet-async/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/duet-async/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/duet-async/related_packages","maintainers":[{"uuid":"mneeley","login":"mneeley","name":null,"email":null,"url":null,"packages_count":7,"html_url":"https://pypi.org/user/mneeley/","role":null,"created_at":"2023-02-19T23:31:00.710Z","updated_at":"2023-02-19T23:31:00.710Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/mneeley/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":726150,"maintainers_count":308801,"namespaces_count":0,"keywords_count":238245,"github":"pypi","metadata":{"funded_packages_count":50579},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-09-08T05:32:36.857Z","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":5296756,"name":"duet-python","ecosystem":"conda","description":null,"homepage":"http://github.com/google/duet","licenses":"Apache-2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/google/duet","keywords_array":[],"namespace":null,"versions_count":5,"first_release_published_at":"2021-11-03T04:17:07.000Z","latest_release_published_at":"2022-06-21T10:16:58.000Z","latest_release_number":"0.2.7","last_synced_at":"2025-09-08T12:45:51.998Z","created_at":"2022-10-03T16:01:12.799Z","updated_at":"2025-09-08T12:45:51.999Z","registry_url":"https://anaconda.org/conda-forge/duet-python","install_command":"conda install -c conda-forge duet-python","documentation_url":null,"metadata":{},"repo_metadata":{"id":37049721,"uuid":"337228795","full_name":"google/duet","owner":"google","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-09T21:04:47.000Z","size":143,"stargazers_count":23,"open_issues_count":6,"forks_count":16,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-07-24T06:29:24.883Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/google.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null}},"created_at":"2021-02-08T22:37:11.000Z","updated_at":"2025-07-17T18:59:55.000Z","dependencies_parsed_at":"2024-02-09T23:24:57.715Z","dependency_job_id":"d43ee929-8a79-4626-b058-18d98b9646e6","html_url":"https://github.com/google/duet","commit_stats":{"total_commits":76,"total_committers":10,"mean_commits":7.6,"dds":0.1842105263157895,"last_synced_commit":"353f1a5391a6f82641d8cc11b5fa19aaab790ebb"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/google/duet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/google","download_url":"https://codeload.github.com/google/duet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266813075,"owners_count":23988516,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-24T02:00:09.469Z","response_time":99,"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":"google","name":"Google","uuid":"1342004","kind":"organization","description":"Google ❤️ Open Source","email":"opensource@google.com","website":"https://opensource.google/","location":"United States of America","twitter":"GoogleOSS","company":null,"icon_url":"https://avatars.githubusercontent.com/u/1342004?v=4","repositories_count":2754,"last_synced_at":"2025-04-19T22:26:37.811Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/google","funding_links":[],"total_stars":1930002,"followers":53188,"following":0,"created_at":"2022-11-02T16:20:58.973Z","updated_at":"2025-04-19T22:26:37.812Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/google","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/google/repositories"},"tags":[{"name":"v0.2.9","sha":"a018ae39c54d99a2350c2b930e57b27ae765dafb","kind":"commit","published_at":"2023-07-26T06:37:48.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.2.9","html_url":"https://github.com/google/duet/releases/tag/v0.2.9","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.2.9","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.9/manifests"},{"name":"v0.2.8","sha":"60252083355fc38a195aebeecbc8e914071c975f","kind":"commit","published_at":"2023-04-12T19:41:50.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.2.8","html_url":"https://github.com/google/duet/releases/tag/v0.2.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.2.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.8/manifests"},{"name":"v0.2.7","sha":"db15ef2933afca3523907f88ea7327108bd87d56","kind":"commit","published_at":"2022-06-18T01:35:05.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.2.7","html_url":"https://github.com/google/duet/releases/tag/v0.2.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.2.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.7/manifests"},{"name":"v0.2.6","sha":"13a1592eef359132dd3e23d4096cf324a94ca585","kind":"commit","published_at":"2022-04-21T23:14:58.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.2.6","html_url":"https://github.com/google/duet/releases/tag/v0.2.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.2.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.6/manifests"},{"name":"v0.2.5","sha":"c412d6ad4676b29379ac6546d2d16891b58f865c","kind":"commit","published_at":"2022-03-17T22:22:21.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.2.5","html_url":"https://github.com/google/duet/releases/tag/v0.2.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.2.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.5/manifests"},{"name":"v0.2.4","sha":"ddccba57fae69445333448ae5308b046168ac801","kind":"commit","published_at":"2022-03-17T16:18:31.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.2.4","html_url":"https://github.com/google/duet/releases/tag/v0.2.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.2.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.4/manifests"},{"name":"v0.2.3","sha":"1697889503f4f15353a08c5358d3331031e672d6","kind":"commit","published_at":"2021-11-01T23:28:47.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.2.3","html_url":"https://github.com/google/duet/releases/tag/v0.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.2.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.3/manifests"},{"name":"v0.2.2","sha":"3b2c05533df47460c833b0c9412019cb0f5360ce","kind":"commit","published_at":"2021-10-21T18:16:21.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.2.2","html_url":"https://github.com/google/duet/releases/tag/v0.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.2/manifests"},{"name":"duet-async-0.1.3","sha":"71d7ac9bb03b9eb3ae38859934cabc42a8e6384f","kind":"commit","published_at":"2021-08-25T21:21:30.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/duet-async-0.1.3","html_url":"https://github.com/google/duet/releases/tag/duet-async-0.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@duet-async-0.1.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/duet-async-0.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/duet-async-0.1.3/manifests"},{"name":"v0.2.1","sha":"91ba22300cf437f3707f39022f9d0d3f1fbfc7af","kind":"commit","published_at":"2021-08-25T21:10:37.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.2.1","html_url":"https://github.com/google/duet/releases/tag/v0.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.1/manifests"},{"name":"v0.2.0","sha":"8ad6849427379bf1db9dd3be9e449f54ecfca5e2","kind":"commit","published_at":"2021-07-12T05:41:55.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.2.0","html_url":"https://github.com/google/duet/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.2.0/manifests"},{"name":"v0.1.2","sha":"53f25435002555caf37c5f2c290ba7e7b95b447d","kind":"commit","published_at":"2021-05-12T17:17:35.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.1.2","html_url":"https://github.com/google/duet/releases/tag/v0.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.1.2/manifests"},{"name":"v0.1.1","sha":"43d07ecdf2585a30d3229792436f654e2e10c8b2","kind":"commit","published_at":"2021-02-11T19:46:53.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.1.1","html_url":"https://github.com/google/duet/releases/tag/v0.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.1.1/manifests"},{"name":"v0.1.0","sha":"8edb718dea82bb725e4028e0d96903036b732510","kind":"commit","published_at":"2021-02-10T18:49:03.000Z","download_url":"https://codeload.github.com/google/duet/tar.gz/v0.1.0","html_url":"https://github.com/google/duet/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/google/duet@v0.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/tags/v0.1.0/manifests"}]},"repo_metadata_updated_at":"2025-07-24T07:55:43.180Z","dependent_packages_count":1,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":34.025455452957324,"dependent_packages_count":28.819565759920142,"stargazers_count":49.57823808335413,"forks_count":39.99500873471425,"average":38.10456700773646},"purl":"pkg:conda/duet-python","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/conda/duet-python","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/conda/duet-python","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/conda/duet-python/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-07-19T21:57:57.881Z","issues_count":9,"pull_requests_count":83,"avg_time_to_close_issue":1638032.4,"avg_time_to_close_pull_request":102491.5925925926,"issues_closed_count":5,"pull_requests_closed_count":81,"pull_request_authors_count":9,"issue_authors_count":2,"avg_comments_per_issue":0.5555555555555556,"avg_comments_per_pull_request":0.20481927710843373,"merged_pull_requests_count":80,"bot_issues_count":0,"bot_pull_requests_count":1,"past_year_issues_count":0,"past_year_pull_requests_count":5,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":198750.75,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":4,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":4,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/issues","maintainers":[{"login":"maffoo","count":79,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/maffoo"},{"login":"fedimser","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/fedimser"},{"login":"kunalq","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kunalq"},{"login":"pingyeh","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pingyeh"}],"active_maintainers":[{"login":"maffoo","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/maffoo"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/duet-python/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/duet-python/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/duet-python/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/duet-python/related_packages","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":13414,"github":"conda-forge","metadata":{"kind":"conda-forge","key":"CondaForge","api":"https://conda.anaconda.org","funded_packages_count":2190},"icon_url":"https://github.com/conda-forge.png","created_at":"2022-10-03T15:37:08.743Z","updated_at":"2025-09-08T06:53:21.618Z","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"}}],"commits":{"id":31210,"full_name":"google/duet","default_branch":"main","committers":[{"name":"Matthew Neeley","email":"maffoo@google.com","login":"maffoo","count":74},{"name":"Dmytro Fedoriaka","email":"fedimser","login":"fedimser","count":2},{"name":"Cheng Xing","email":"cxing@google.com","login":"verult","count":2},{"name":"Ping Yeh","email":"pingyeh","login":"pingyeh","count":1},{"name":"Mohammadreza Sarayloo","email":"signor.rayan@gmail.com","login":"signorrayan","count":1},{"name":"Kunal Arya","email":"kunalq","login":"kunalq","count":1},{"name":"Bastian Zimmermann","email":"10774221+BastianZim","login":"BastianZim","count":1},{"name":"Andreas Bengtsson","email":"andreas.bengtsson@gmail.com","login":"andbe91","count":1}],"total_commits":83,"total_committers":8,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":10.375,"dds":0.10843373493975905,"past_year_committers":[{"name":"Matthew Neeley","email":"maffoo@google.com","login":"maffoo","count":4}],"past_year_total_commits":4,"past_year_total_committers":1,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":4.0,"past_year_dds":0.0,"last_synced_at":"2025-09-02T08:59:52.530Z","last_synced_commit":"6548913885730efc58d8a4fcdb8f6dc02e49618c","created_at":"2023-03-07T16:45:40.721Z","updated_at":"2025-09-02T08:59:52.531Z","commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-03T00:00:08.276Z","repositories_count":5480019,"commits_count":853389012,"contributors_count":31098138,"owners_count":906558,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"google/duet","html_url":"https://github.com/google/duet","last_synced_at":"2025-09-01T05:30:22.112Z","status":"error","issues_count":9,"pull_requests_count":82,"avg_time_to_close_issue":1638032.4,"avg_time_to_close_pull_request":103770.225,"issues_closed_count":5,"pull_requests_closed_count":80,"pull_request_authors_count":9,"issue_authors_count":2,"avg_comments_per_issue":0.5555555555555556,"avg_comments_per_pull_request":0.2073170731707317,"merged_pull_requests_count":79,"bot_issues_count":0,"bot_pull_requests_count":1,"past_year_issues_count":0,"past_year_pull_requests_count":5,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":198750.75,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":4,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":4,"created_at":"2023-05-10T21:29:35.823Z","updated_at":"2025-09-01T06:42:03.733Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fduet/issues","issue_labels_count":{},"pull_request_labels_count":{"dependencies":1},"issue_author_associations_count":{"COLLABORATOR":8,"NONE":1},"pull_request_author_associations_count":{"COLLABORATOR":82,"CONTRIBUTOR":5,"NONE":1},"issue_authors":{"maffoo":8,"DanielSank":1},"pull_request_authors":{"maffoo":77,"fedimser":3,"verult":2,"signorrayan":1,"dependabot[bot]":1,"BastianZim":1,"andbe91":1,"kunalq":1,"pingyeh":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-01T00:00:07.725Z","repositories_count":9957585,"issues_count":29574116,"pull_requests_count":85773325,"authors_count":9463536,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{},"past_year_pull_request_author_associations_count":{"COLLABORATOR":10},"past_year_issue_authors":{},"past_year_pull_request_authors":{"maffoo":10},"maintainers":[{"login":"maffoo","count":85,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/maffoo"},{"login":"fedimser","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/fedimser"},{"login":"kunalq","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kunalq"},{"login":"pingyeh","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pingyeh"}],"active_maintainers":[{"login":"maffoo","count":10,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/maffoo"}]},"events":{"total":{"WatchEvent":1,"DeleteEvent":4,"PushEvent":12,"PullRequestEvent":9,"ForkEvent":1,"CreateEvent":5},"last_year":{"WatchEvent":1,"DeleteEvent":4,"PushEvent":12,"PullRequestEvent":9,"ForkEvent":1,"CreateEvent":5}},"keywords":[],"dependencies":[{"ecosystem":"pypi","filepath":"dev/requirements.txt","sha":null,"kind":"manifest","created_at":"2022-06-25T01:15:12.178Z","updated_at":"2022-06-25T01:15:12.178Z","repository_link":"https://github.com/google/duet/blob/main/dev/requirements.txt","dependencies":[{"id":52663177,"package_name":"black","ecosystem":"pypi","requirements":"==22.3.0","direct":true,"kind":"runtime","optional":false},{"id":52663178,"package_name":"isort","ecosystem":"pypi","requirements":"==5.7.","direct":true,"kind":"runtime","optional":false},{"id":52663179,"package_name":"mypy","ecosystem":"pypi","requirements":"==0.931.","direct":true,"kind":"runtime","optional":false},{"id":52663180,"package_name":"pylint","ecosystem":"pypi","requirements":"==2.10.","direct":true,"kind":"runtime","optional":false},{"id":52663181,"package_name":"pytest","ecosystem":"pypi","requirements":"==6.2.","direct":true,"kind":"runtime","optional":false},{"id":52663182,"package_name":"twine","ecosystem":"pypi","requirements":"==3.3.","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"requirements.txt","sha":null,"kind":"manifest","created_at":"2022-06-25T01:15:12.631Z","updated_at":"2022-06-25T01:15:12.631Z","repository_link":"https://github.com/google/duet/blob/main/requirements.txt","dependencies":[{"id":52663243,"package_name":"typing-extensions","ecosystem":"pypi","requirements":"==3.10.0","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/ci.yml","sha":null,"kind":"manifest","created_at":"2023-01-20T11:17:21.472Z","updated_at":"2023-01-20T11:17:21.472Z","repository_link":"https://github.com/google/duet/blob/main/.github/workflows/ci.yml","dependencies":[{"id":7060630152,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":7060630153,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2024-02-09T23:24:57.702Z","updated_at":"2024-02-09T23:24:57.702Z","repository_link":"https://github.com/google/duet/blob/main/pyproject.toml","dependencies":[]},{"ecosystem":"pypi","filepath":"setup.py","sha":null,"kind":"manifest","created_at":"2024-02-09T23:24:57.708Z","updated_at":"2024-02-09T23:24:57.708Z","repository_link":"https://github.com/google/duet/blob/main/setup.py","dependencies":[]}],"score":17.380338344539826,"created_at":"2025-09-08T11:18:52.733Z","updated_at":"2025-10-07T08:25:29.645Z","avatar_url":"https://github.com/google.png","language":"Python","category":null,"sub_category":null,"monthly_downloads":151840,"funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["quantum-simulation","quantum","quantum-computing","quantum-programming","cirq","google-quantum","nisq","quantum-algorithms","quantum-circuit","quantum-circuit-simulator"],"project_url":"https://science.ecosyste.ms/api/v1/projects/68059","html_url":"https://science.ecosyste.ms/projects/68059"}