{"id":41113,"name":"attrs","description":"Python Classes Without Boilerplate","url":"https://github.com/python-attrs/attrs","last_synced_at":"2025-09-05T08:54:21.158Z","repository":{"id":26467388,"uuid":"29918975","full_name":"python-attrs/attrs","owner":"python-attrs","description":"Python Classes Without Boilerplate","archived":false,"fork":false,"pushed_at":"2025-08-29T14:55:59.000Z","size":4282,"stargazers_count":5598,"open_issues_count":137,"forks_count":394,"subscribers_count":60,"default_branch":"main","last_synced_at":"2025-08-30T00:29:56.711Z","etag":null,"topics":["attributes","boilerplate","classes","oop","python"],"latest_commit_sha":null,"homepage":"https://www.attrs.org/","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/python-attrs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"hynek","tidelift":"pypi/attrs"}},"created_at":"2015-01-27T15:01:01.000Z","updated_at":"2025-08-29T23:29:13.000Z","dependencies_parsed_at":"2024-04-07T00:28:42.291Z","dependency_job_id":"a7bd42bd-8e77-4e79-b155-54b330173149","html_url":"https://github.com/python-attrs/attrs","commit_stats":{"total_commits":1599,"total_committers":169,"mean_commits":9.461538461538462,"dds":"0.23389618511569732","last_synced_commit":"19518e74f0083cdb2d6b261f898b5acfdbe50988"},"previous_names":["hynek/attrs"],"tags_count":36,"template":false,"template_full_name":null,"purl":"pkg:github/python-attrs/attrs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-attrs","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/sbom","scorecard":{"id":114325,"data":{"date":"2025-08-04","repo":{"name":"github.com/python-attrs/attrs","commit":"616adf5af936b9e690e72d740440dcfc9df25c87"},"scorecard":{"version":"v5.2.1-28-gc1d103a9","commit":"c1d103a9bb9f635ec7260bf9aa0699466fa4be0e"},"score":9,"checks":[{"name":"Code-Review","score":2,"reason":"Found 7/26 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/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#code-review"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 13 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":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: .github/SECURITY.md:1","Info: Found linked content: .github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: .github/SECURITY.md:1","Info: Found text in security policy: .github/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":"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/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#binary-artifacts"}},{"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":9,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'actions' permission set to 'read': .github/workflows/codeql-analysis.yml:16","Info: jobLevel 'contents' permission set to 'read': .github/workflows/codeql-analysis.yml:17","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/pinact.yml:15","Info: found token with 'none' permissions: .github/workflows/build-docset.yml:1","Info: found token with 'none' permissions: .github/workflows/ci.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/codeql-analysis.yml:9","Info: found token with 'none' permissions: .github/workflows/codspeed.yml:1","Info: found token with 'none' permissions: .github/workflows/pinact.yml:1","Warn: no topLevel permission defined: .github/workflows/pypi-package.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/zizmor.yml:11"],"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":"Pinned-Dependencies","score":10,"reason":"all dependencies are pinned","details":["Info:  26 out of  26 GitHub-owned GitHubAction dependencies pinned","Info:  16 out of  16 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#vulnerabilities"}},{"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":"CII-Best-Practices","score":5,"reason":"badge detected: Passing","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":10,"reason":"project is fuzzed","details":["Info: OSSFuzz integration found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#branch-protection"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/pypi-package.yml:60"],"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":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: SAST configuration detected: CodeQL","Info: all commits (16) 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-16T00:14:29.411Z","repository_id":26467388,"created_at":"2025-08-16T00:14:29.412Z","updated_at":"2025-08-16T00:14:29.412Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273553941,"owners_count":25126249,"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-04T02:00:08.968Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"python-attrs","name":"The attrs Cabal","uuid":"25880274","kind":"organization","description":"Dedicated to empower Python developers to write better code with less effort.","email":null,"website":"https://www.attrs.org/","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/25880274?v=4","repositories_count":2,"last_synced_at":"2025-09-02T00:02:56.459Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/python-attrs","funding_links":[],"total_stars":6535,"followers":59,"following":0,"created_at":"2022-11-02T16:23:13.923Z","updated_at":"2025-09-02T00:02:56.460Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-attrs","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-attrs/repositories"},"packages":[{"id":2646666,"name":"attrs","ecosystem":"pypi","description":"Classes Without Boilerplate","homepage":null,"licenses":"mit","normalized_licenses":["MIT"],"repository_url":"https://github.com/python-attrs/attrs","keywords_array":["attribute","boilerplate","class"],"namespace":null,"versions_count":34,"first_release_published_at":"2015-02-21T10:42:56.000Z","latest_release_published_at":"2025-03-13T11:10:21.000Z","latest_release_number":"25.3.0","last_synced_at":"2025-09-05T01:07:37.737Z","created_at":"2022-04-10T10:06:07.217Z","updated_at":"2025-09-05T01:07:37.737Z","registry_url":"https://pypi.org/project/attrs/","install_command":"pip install attrs --index-url https://pypi.org/simple","documentation_url":"https://www.attrs.org/","metadata":{"funding":"https://github.com/sponsors/hynek","documentation":"https://www.attrs.org/","classifiers":["Development Status :: 5 - Production/Stable","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.13","Programming Language :: Python :: 3.8","Programming Language :: Python :: 3.9","Programming Language :: Python :: Implementation :: CPython","Programming Language :: Python :: Implementation :: PyPy","Typing :: Typed"],"normalized_name":"attrs","project_status":null},"repo_metadata":{"id":26467388,"uuid":"29918975","full_name":"python-attrs/attrs","owner":"python-attrs","description":"Python Classes Without Boilerplate","archived":false,"fork":false,"pushed_at":"2025-08-29T14:55:59.000Z","size":4282,"stargazers_count":5598,"open_issues_count":137,"forks_count":394,"subscribers_count":60,"default_branch":"main","last_synced_at":"2025-08-30T00:29:56.711Z","etag":null,"topics":["attributes","boilerplate","classes","oop","python"],"latest_commit_sha":null,"homepage":"https://www.attrs.org/","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/python-attrs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"hynek","tidelift":"pypi/attrs"}},"created_at":"2015-01-27T15:01:01.000Z","updated_at":"2025-08-29T23:29:13.000Z","dependencies_parsed_at":"2024-04-07T00:28:42.291Z","dependency_job_id":"a7bd42bd-8e77-4e79-b155-54b330173149","html_url":"https://github.com/python-attrs/attrs","commit_stats":{"total_commits":1599,"total_committers":169,"mean_commits":9.461538461538462,"dds":"0.23389618511569732","last_synced_commit":"19518e74f0083cdb2d6b261f898b5acfdbe50988"},"previous_names":["hynek/attrs"],"tags_count":36,"template":false,"template_full_name":null,"purl":"pkg:github/python-attrs/attrs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-attrs","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/sbom","scorecard":{"id":114325,"data":{"date":"2025-08-04","repo":{"name":"github.com/python-attrs/attrs","commit":"616adf5af936b9e690e72d740440dcfc9df25c87"},"scorecard":{"version":"v5.2.1-28-gc1d103a9","commit":"c1d103a9bb9f635ec7260bf9aa0699466fa4be0e"},"score":9,"checks":[{"name":"Code-Review","score":2,"reason":"Found 7/26 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/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#code-review"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 13 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":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: .github/SECURITY.md:1","Info: Found linked content: .github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: .github/SECURITY.md:1","Info: Found text in security policy: .github/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":"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/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#binary-artifacts"}},{"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":9,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'actions' permission set to 'read': .github/workflows/codeql-analysis.yml:16","Info: jobLevel 'contents' permission set to 'read': .github/workflows/codeql-analysis.yml:17","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/pinact.yml:15","Info: found token with 'none' permissions: .github/workflows/build-docset.yml:1","Info: found token with 'none' permissions: .github/workflows/ci.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/codeql-analysis.yml:9","Info: found token with 'none' permissions: .github/workflows/codspeed.yml:1","Info: found token with 'none' permissions: .github/workflows/pinact.yml:1","Warn: no topLevel permission defined: .github/workflows/pypi-package.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/zizmor.yml:11"],"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":"Pinned-Dependencies","score":10,"reason":"all dependencies are pinned","details":["Info:  26 out of  26 GitHub-owned GitHubAction dependencies pinned","Info:  16 out of  16 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#vulnerabilities"}},{"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":"CII-Best-Practices","score":5,"reason":"badge detected: Passing","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":10,"reason":"project is fuzzed","details":["Info: OSSFuzz integration found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#branch-protection"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/pypi-package.yml:60"],"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":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: SAST configuration detected: CodeQL","Info: all commits (16) 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-16T00:14:29.411Z","repository_id":26467388,"created_at":"2025-08-16T00:14:29.412Z","updated_at":"2025-08-16T00:14:29.412Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273553941,"owners_count":25126249,"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-04T02:00:08.968Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"python-attrs","name":"The attrs Cabal","uuid":"25880274","kind":"organization","description":"Dedicated to empower Python developers to write better code with less effort.","email":null,"website":"https://www.attrs.org/","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/25880274?v=4","repositories_count":2,"last_synced_at":"2025-09-02T00:02:56.459Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/python-attrs","funding_links":[],"total_stars":6535,"followers":59,"following":0,"created_at":"2022-11-02T16:23:13.923Z","updated_at":"2025-09-02T00:02:56.460Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-attrs","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-attrs/repositories"},"tags":[{"name":"25.3.0","sha":"3dca08ce5bbe673d7df25f44f3dda92505d1043d","kind":"tag","published_at":"2025-03-13T11:00:24.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/25.3.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/25.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@25.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/25.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/25.3.0/manifests"},{"name":"25.2.0","sha":"19943b775d40c018e844f2cb1728442f58112a3b","kind":"tag","published_at":"2025-03-12T09:55:16.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/25.2.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/25.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@25.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/25.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/25.2.0/manifests"},{"name":"25.1.0","sha":"fbff14eeaf817e4b34e9c5727c8d546dc118a346","kind":"tag","published_at":"2025-01-25T11:23:36.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/25.1.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/25.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@25.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/25.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/25.1.0/manifests"},{"name":"24.3.0","sha":"598494a618410490cfbe0c896b7a544f6d23e0d9","kind":"tag","published_at":"2024-12-16T06:26:35.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/24.3.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/24.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@24.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/24.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/24.3.0/manifests"},{"name":"24.2.0","sha":"6771a04893780166e4b7826b63599f43ac30d00a","kind":"tag","published_at":"2024-08-06T14:27:33.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/24.2.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/24.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@24.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/24.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/24.2.0/manifests"},{"name":"24.1.0","sha":"556ca7c919fb22c1327a096a3d99493a7bb48bdc","kind":"tag","published_at":"2024-08-03T14:14:36.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/24.1.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/24.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@24.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/24.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/24.1.0/manifests"},{"name":"23.2.0","sha":"9e443b18527dc96b194e92805fa751cbf8434ba9","kind":"tag","published_at":"2023-12-31T06:20:03.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/23.2.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/23.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@23.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/23.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/23.2.0/manifests"},{"name":"23.1.0","sha":"1e2f6f9cac5cc60f0adab051c14adf09ffe39155","kind":"tag","published_at":"2023-04-16T10:22:16.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/23.1.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/23.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@23.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/23.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/23.1.0/manifests"},{"name":"22.2.0","sha":"a9960de98d0f58ccb2880d03c97dafba3fc1111c","kind":"tag","published_at":"2022-12-21T09:07:33.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/22.2.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/22.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@22.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/22.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/22.2.0/manifests"},{"name":"22.1.0","sha":"b3dfebe2e10b44437c4f97d788fb5220d790efd0","kind":"tag","published_at":"2022-07-28T13:03:05.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/22.1.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/22.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@22.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/22.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/22.1.0/manifests"},{"name":"21.4.0.post1","sha":"2bfe6db9045b8a5a9b87a1392d189ef6ffef8201","kind":"tag","published_at":"2022-02-02T08:04:06.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/21.4.0.post1","html_url":"https://github.com/python-attrs/attrs/releases/tag/21.4.0.post1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@21.4.0.post1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/21.4.0.post1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/21.4.0.post1/manifests"},{"name":"21.4.0","sha":"2de90143100e713d8ae6b5d1adb5e1e879af01fb","kind":"tag","published_at":"2021-12-29T13:09:30.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/21.4.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/21.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@21.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/21.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/21.4.0/manifests"},{"name":"21.3.0","sha":"dd26edd68e12879f716c6554f25d957af299b801","kind":"tag","published_at":"2021-12-28T05:59:47.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/21.3.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/21.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@21.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/21.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/21.3.0/manifests"},{"name":"21.2.0","sha":"83d3cd70f90a3f4d19ee8b508e58d1c58821c0ad","kind":"tag","published_at":"2021-05-07T09:22:34.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/21.2.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/21.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@21.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/21.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/21.2.0/manifests"},{"name":"21.1.0","sha":"b22195ee65d5b0ee7694ebd9da7dcd27abafd88c","kind":"tag","published_at":"2021-05-06T08:20:55.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/21.1.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/21.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@21.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/21.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/21.1.0/manifests"},{"name":"20.3.0","sha":"f3762ba07bf0cec8bebdaaeca2212ba1d662ff13","kind":"tag","published_at":"2020-11-05T10:00:51.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/20.3.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/20.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@20.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/20.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/20.3.0/manifests"},{"name":"20.2.0","sha":"4f74fbaca3cc12911e4dcf67a5cc9d2465c3e571","kind":"tag","published_at":"2020-09-05T10:19:09.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/20.2.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/20.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@20.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/20.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/20.2.0/manifests"},{"name":"20.1.0","sha":"90386b669e8ad786bfd79ef2bbce37727ed855b6","kind":"tag","published_at":"2020-08-20T17:16:17.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/20.1.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/20.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@20.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/20.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/20.1.0/manifests"},{"name":"19.3.0","sha":"823c1c332ce7de24eef8a28e6d9ccf818ce7746c","kind":"tag","published_at":"2019-10-15T05:46:06.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/19.3.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/19.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@19.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/19.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/19.3.0/manifests"},{"name":"19.2.0","sha":"7fcd616aabb4067b07a5bded22bc578d35f9e14d","kind":"commit","published_at":"2019-10-01T14:48:30.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/19.2.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/19.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@19.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/19.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/19.2.0/manifests"},{"name":"19.1.0","sha":"0356f0603eb5d8d4e7bae132ab80847fff4abcfc","kind":"tag","published_at":"2019-03-03T08:31:46.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/19.1.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/19.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@19.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/19.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/19.1.0/manifests"},{"name":"18.2.0","sha":"aaeba93b0618b24d6bcb37971445d0dcb5f52910","kind":"tag","published_at":"2018-09-01T04:44:36.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/18.2.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/18.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@18.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/18.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/18.2.0/manifests"},{"name":"18.1.0","sha":"9c3e07bab90d09a6063a7802af4063ac52da77b7","kind":"tag","published_at":"2018-05-03T16:15:26.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/18.1.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/18.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@18.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/18.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/18.1.0/manifests"},{"name":"17.4.0","sha":"ca06613b750936f6edd315cd94e5c7de0db6580d","kind":"tag","published_at":"2017-12-30T08:06:59.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/17.4.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/17.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@17.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/17.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/17.4.0/manifests"},{"name":"17.3.0","sha":"aa097d62a1f794ff3188c4859db8d368af4f60e5","kind":"tag","published_at":"2017-11-08T18:50:59.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/17.3.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/17.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@17.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/17.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/17.3.0/manifests"},{"name":"17.3.0.post2","sha":"92aeb9c08cf8e1b53799978af6f7b8a5bc1f16cf","kind":"tag","published_at":"2017-11-08T18:46:41.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/17.3.0.post2","html_url":"https://github.com/python-attrs/attrs/releases/tag/17.3.0.post2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@17.3.0.post2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/17.3.0.post2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/17.3.0.post2/manifests"},{"name":"17.3.0.post1","sha":"7501cecf0f4313c3b2597d03ac0853cca1659065","kind":"tag","published_at":"2017-11-08T18:34:00.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/17.3.0.post1","html_url":"https://github.com/python-attrs/attrs/releases/tag/17.3.0.post1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@17.3.0.post1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/17.3.0.post1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/17.3.0.post1/manifests"},{"name":"17.2.0","sha":"c324a7d5474ff54f91b2b9443746facf2b6213a2","kind":"tag","published_at":"2017-05-24T17:57:35.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/17.2.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/17.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@17.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/17.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/17.2.0/manifests"},{"name":"17.1.0","sha":"f094aec6a92de33caded84c73c24ed4347c277bd","kind":"tag","published_at":"2017-05-16T16:56:14.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/17.1.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/17.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@17.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/17.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/17.1.0/manifests"},{"name":"16.3.0","sha":"5516d5452c76416b3fea0c9d9f2b7505fae82c2b","kind":"tag","published_at":"2016-11-24T13:01:14.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/16.3.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/16.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@16.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/16.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/16.3.0/manifests"},{"name":"16.2.0","sha":"cc980c1f53906d88c9d5610a702e05c02947d81e","kind":"tag","published_at":"2016-09-17T05:49:51.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/16.2.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/16.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@16.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/16.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/16.2.0/manifests"},{"name":"16.1.0","sha":"dae4e40446ff77446844b13b86aad1700f104681","kind":"tag","published_at":"2016-08-30T10:23:28.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/16.1.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/16.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@16.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/16.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/16.1.0/manifests"},{"name":"16.0.0","sha":"c37f4423be8557ea586ffcba2ece92f75655b9a3","kind":"tag","published_at":"2016-05-23T18:29:31.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/16.0.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/16.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@16.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/16.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/16.0.0/manifests"},{"name":"15.2.0","sha":"81ff5309d93d7404c314f647ac7f420372e54071","kind":"commit","published_at":"2015-12-08T15:24:46.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/15.2.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/15.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@15.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/15.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/15.2.0/manifests"},{"name":"15.1.0","sha":"5158b66af9976d4e32a014a154c2d56ac3802512","kind":"commit","published_at":"2015-08-20T11:53:57.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/15.1.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/15.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@15.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/15.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/15.1.0/manifests"},{"name":"15.0.0","sha":"21d5dd792a00595ec219daf0e64de5de135377af","kind":"commit","published_at":"2015-04-15T21:39:29.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/15.0.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/15.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@15.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/15.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/15.0.0/manifests"}]},"repo_metadata_updated_at":"2025-09-04T12:43:12.663Z","dependent_packages_count":2857,"downloads":392796576,"downloads_period":"last-month","dependent_repos_count":226649,"rankings":{"downloads":0.004401997773322793,"dependent_repos_count":0.003118081756103645,"dependent_packages_count":0.009537661842199384,"stargazers_count":0.8261082487935775,"forks_count":3.5742387753642197,"docker_downloads_count":0.007153246381649539,"average":0.7374263353185121},"purl":"pkg:pypi/attrs","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/attrs","docker_dependents_count":18330,"docker_downloads_count":7038711185,"usage_url":"https://repos.ecosyste.ms/usage/pypi/attrs","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/attrs/dependencies","status":null,"funding_links":["https://github.com/sponsors/hynek","https://tidelift.com/funding/github/pypi/attrs"],"critical":true,"issue_metadata":{"last_synced_at":"2025-09-02T08:00:55.928Z","issues_count":214,"pull_requests_count":322,"avg_time_to_close_issue":15966780.266666668,"avg_time_to_close_pull_request":2048362.0644067796,"issues_closed_count":135,"pull_requests_closed_count":295,"pull_request_authors_count":66,"issue_authors_count":158,"avg_comments_per_issue":3.4626168224299065,"avg_comments_per_pull_request":2.0559006211180124,"merged_pull_requests_count":261,"bot_issues_count":0,"bot_pull_requests_count":44,"past_year_issues_count":39,"past_year_pull_requests_count":111,"past_year_avg_time_to_close_issue":1893919.6538461538,"past_year_avg_time_to_close_pull_request":983268.5052631579,"past_year_issues_closed_count":26,"past_year_pull_requests_closed_count":95,"past_year_pull_request_authors_count":31,"past_year_issue_authors_count":32,"past_year_avg_comments_per_issue":1.8461538461538463,"past_year_avg_comments_per_pull_request":1.0990990990990992,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":20,"past_year_merged_pull_requests_count":77,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/issues","maintainers":[{"login":"hynek","count":146,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/hynek"},{"login":"Tinche","count":19,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Tinche"},{"login":"webknjaz","count":16,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"},{"login":"Julian","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Julian"},{"login":"gabbard","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/gabbard"},{"login":"blueyed","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/blueyed"}],"active_maintainers":[{"login":"hynek","count":33,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/hynek"},{"login":"Tinche","count":8,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Tinche"},{"login":"webknjaz","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/attrs/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/attrs/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/attrs/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/attrs/related_packages","maintainers":[{"uuid":"hynek","login":"hynek","name":null,"email":null,"url":null,"packages_count":22,"html_url":"https://pypi.org/user/hynek/","role":null,"created_at":"2022-12-21T09:54:36.883Z","updated_at":"2022-12-21T09:54:36.883Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/hynek/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":725059,"maintainers_count":308348,"namespaces_count":0,"keywords_count":238006,"github":"pypi","metadata":{"funded_packages_count":50519},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-09-05T05:40:58.860Z","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":5282765,"name":"attrs","ecosystem":"conda","description":"attrs is the Python package that will bring back the joy of writing classes by relieving you from the drudgery of implementing object protocols (aka dunder methods). Its main goal is to help you to write concise and correct software without slowing down your code. For that, it gives you a class decorator and a way to declaratively define the attributes on that class:","homepage":"https://attrs.readthedocs.io/en/stable/","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/python-attrs/attrs","keywords_array":[],"namespace":null,"versions_count":16,"first_release_published_at":"2022-10-03T15:38:13.506Z","latest_release_published_at":"2022-07-31T18:26:50.000Z","latest_release_number":"22.1.0","last_synced_at":"2025-09-01T08:32:30.738Z","created_at":"2022-10-03T15:38:13.500Z","updated_at":"2025-09-01T08:32:30.738Z","registry_url":"https://anaconda.org/conda-forge/attrs","install_command":"conda install -c conda-forge attrs","documentation_url":null,"metadata":{},"repo_metadata":{"id":26467388,"uuid":"29918975","full_name":"python-attrs/attrs","owner":"python-attrs","description":"Python Classes Without Boilerplate","archived":false,"fork":false,"pushed_at":"2025-08-15T08:17:03.000Z","size":4343,"stargazers_count":5571,"open_issues_count":135,"forks_count":391,"subscribers_count":60,"default_branch":"main","last_synced_at":"2025-08-16T00:14:26.766Z","etag":null,"topics":["attributes","boilerplate","classes","oop","python"],"latest_commit_sha":null,"homepage":"https://www.attrs.org/","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/python-attrs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"hynek","tidelift":"pypi/attrs"}},"created_at":"2015-01-27T15:01:01.000Z","updated_at":"2025-08-15T08:17:05.000Z","dependencies_parsed_at":"2024-04-07T00:28:42.291Z","dependency_job_id":"a7bd42bd-8e77-4e79-b155-54b330173149","html_url":"https://github.com/python-attrs/attrs","commit_stats":{"total_commits":1599,"total_committers":169,"mean_commits":9.461538461538462,"dds":"0.23389618511569732","last_synced_commit":"19518e74f0083cdb2d6b261f898b5acfdbe50988"},"previous_names":["hynek/attrs"],"tags_count":36,"template":false,"template_full_name":null,"purl":"pkg:github/python-attrs/attrs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-attrs","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/sbom","scorecard":{"id":114325,"data":{"date":"2025-08-04","repo":{"name":"github.com/python-attrs/attrs","commit":"616adf5af936b9e690e72d740440dcfc9df25c87"},"scorecard":{"version":"v5.2.1-28-gc1d103a9","commit":"c1d103a9bb9f635ec7260bf9aa0699466fa4be0e"},"score":9,"checks":[{"name":"Code-Review","score":2,"reason":"Found 7/26 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/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#code-review"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 13 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":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: .github/SECURITY.md:1","Info: Found linked content: .github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: .github/SECURITY.md:1","Info: Found text in security policy: .github/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":"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/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#binary-artifacts"}},{"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":9,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'actions' permission set to 'read': .github/workflows/codeql-analysis.yml:16","Info: jobLevel 'contents' permission set to 'read': .github/workflows/codeql-analysis.yml:17","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/pinact.yml:15","Info: found token with 'none' permissions: .github/workflows/build-docset.yml:1","Info: found token with 'none' permissions: .github/workflows/ci.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/codeql-analysis.yml:9","Info: found token with 'none' permissions: .github/workflows/codspeed.yml:1","Info: found token with 'none' permissions: .github/workflows/pinact.yml:1","Warn: no topLevel permission defined: .github/workflows/pypi-package.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/zizmor.yml:11"],"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":"Pinned-Dependencies","score":10,"reason":"all dependencies are pinned","details":["Info:  26 out of  26 GitHub-owned GitHubAction dependencies pinned","Info:  16 out of  16 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#vulnerabilities"}},{"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":"CII-Best-Practices","score":5,"reason":"badge detected: Passing","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":10,"reason":"project is fuzzed","details":["Info: OSSFuzz integration found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#branch-protection"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/pypi-package.yml:60"],"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":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: SAST configuration detected: CodeQL","Info: all commits (16) 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-16T00:14:29.411Z","repository_id":26467388,"created_at":"2025-08-16T00:14:29.412Z","updated_at":"2025-08-16T00:14:29.412Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271409524,"owners_count":24754729,"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-08-20T02:00:09.606Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"python-attrs","name":"The attrs Cabal","uuid":"25880274","kind":"organization","description":"Dedicated to empower Python developers to write better code with less effort.","email":null,"website":"https://www.attrs.org/","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/25880274?v=4","repositories_count":2,"last_synced_at":"2025-08-18T00:04:17.136Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/python-attrs","funding_links":[],"total_stars":6499,"followers":57,"following":0,"created_at":"2022-11-02T16:23:13.923Z","updated_at":"2025-08-18T00:04:17.137Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-attrs","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-attrs/repositories"},"tags":[{"name":"25.3.0","sha":"3dca08ce5bbe673d7df25f44f3dda92505d1043d","kind":"tag","published_at":"2025-03-13T11:00:24.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/25.3.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/25.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@25.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/25.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/25.3.0/manifests"},{"name":"25.2.0","sha":"19943b775d40c018e844f2cb1728442f58112a3b","kind":"tag","published_at":"2025-03-12T09:55:16.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/25.2.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/25.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@25.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/25.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/25.2.0/manifests"},{"name":"25.1.0","sha":"fbff14eeaf817e4b34e9c5727c8d546dc118a346","kind":"tag","published_at":"2025-01-25T11:23:36.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/25.1.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/25.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@25.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/25.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/25.1.0/manifests"},{"name":"24.3.0","sha":"598494a618410490cfbe0c896b7a544f6d23e0d9","kind":"tag","published_at":"2024-12-16T06:26:35.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/24.3.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/24.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@24.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/24.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/24.3.0/manifests"},{"name":"24.2.0","sha":"6771a04893780166e4b7826b63599f43ac30d00a","kind":"tag","published_at":"2024-08-06T14:27:33.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/24.2.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/24.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@24.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/24.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/24.2.0/manifests"},{"name":"24.1.0","sha":"556ca7c919fb22c1327a096a3d99493a7bb48bdc","kind":"tag","published_at":"2024-08-03T14:14:36.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/24.1.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/24.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@24.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/24.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/24.1.0/manifests"},{"name":"23.2.0","sha":"9e443b18527dc96b194e92805fa751cbf8434ba9","kind":"tag","published_at":"2023-12-31T06:20:03.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/23.2.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/23.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@23.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/23.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/23.2.0/manifests"},{"name":"23.1.0","sha":"1e2f6f9cac5cc60f0adab051c14adf09ffe39155","kind":"tag","published_at":"2023-04-16T10:22:16.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/23.1.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/23.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@23.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/23.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/23.1.0/manifests"},{"name":"22.2.0","sha":"a9960de98d0f58ccb2880d03c97dafba3fc1111c","kind":"tag","published_at":"2022-12-21T09:07:33.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/22.2.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/22.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@22.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/22.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/22.2.0/manifests"},{"name":"22.1.0","sha":"b3dfebe2e10b44437c4f97d788fb5220d790efd0","kind":"tag","published_at":"2022-07-28T13:03:05.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/22.1.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/22.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@22.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/22.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/22.1.0/manifests"},{"name":"21.4.0.post1","sha":"2bfe6db9045b8a5a9b87a1392d189ef6ffef8201","kind":"tag","published_at":"2022-02-02T08:04:06.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/21.4.0.post1","html_url":"https://github.com/python-attrs/attrs/releases/tag/21.4.0.post1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@21.4.0.post1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/21.4.0.post1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/21.4.0.post1/manifests"},{"name":"21.4.0","sha":"2de90143100e713d8ae6b5d1adb5e1e879af01fb","kind":"tag","published_at":"2021-12-29T13:09:30.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/21.4.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/21.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@21.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/21.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/21.4.0/manifests"},{"name":"21.3.0","sha":"dd26edd68e12879f716c6554f25d957af299b801","kind":"tag","published_at":"2021-12-28T05:59:47.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/21.3.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/21.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@21.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/21.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/21.3.0/manifests"},{"name":"21.2.0","sha":"83d3cd70f90a3f4d19ee8b508e58d1c58821c0ad","kind":"tag","published_at":"2021-05-07T09:22:34.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/21.2.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/21.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@21.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/21.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/21.2.0/manifests"},{"name":"21.1.0","sha":"b22195ee65d5b0ee7694ebd9da7dcd27abafd88c","kind":"tag","published_at":"2021-05-06T08:20:55.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/21.1.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/21.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@21.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/21.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/21.1.0/manifests"},{"name":"20.3.0","sha":"f3762ba07bf0cec8bebdaaeca2212ba1d662ff13","kind":"tag","published_at":"2020-11-05T10:00:51.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/20.3.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/20.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@20.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/20.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/20.3.0/manifests"},{"name":"20.2.0","sha":"4f74fbaca3cc12911e4dcf67a5cc9d2465c3e571","kind":"tag","published_at":"2020-09-05T10:19:09.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/20.2.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/20.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@20.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/20.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/20.2.0/manifests"},{"name":"20.1.0","sha":"90386b669e8ad786bfd79ef2bbce37727ed855b6","kind":"tag","published_at":"2020-08-20T17:16:17.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/20.1.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/20.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@20.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/20.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/20.1.0/manifests"},{"name":"19.3.0","sha":"823c1c332ce7de24eef8a28e6d9ccf818ce7746c","kind":"tag","published_at":"2019-10-15T05:46:06.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/19.3.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/19.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@19.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/19.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/19.3.0/manifests"},{"name":"19.2.0","sha":"7fcd616aabb4067b07a5bded22bc578d35f9e14d","kind":"commit","published_at":"2019-10-01T14:48:30.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/19.2.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/19.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@19.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/19.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/19.2.0/manifests"},{"name":"19.1.0","sha":"0356f0603eb5d8d4e7bae132ab80847fff4abcfc","kind":"tag","published_at":"2019-03-03T08:31:46.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/19.1.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/19.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@19.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/19.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/19.1.0/manifests"},{"name":"18.2.0","sha":"aaeba93b0618b24d6bcb37971445d0dcb5f52910","kind":"tag","published_at":"2018-09-01T04:44:36.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/18.2.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/18.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@18.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/18.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/18.2.0/manifests"},{"name":"18.1.0","sha":"9c3e07bab90d09a6063a7802af4063ac52da77b7","kind":"tag","published_at":"2018-05-03T16:15:26.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/18.1.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/18.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@18.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/18.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/18.1.0/manifests"},{"name":"17.4.0","sha":"ca06613b750936f6edd315cd94e5c7de0db6580d","kind":"tag","published_at":"2017-12-30T08:06:59.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/17.4.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/17.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@17.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/17.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/17.4.0/manifests"},{"name":"17.3.0","sha":"aa097d62a1f794ff3188c4859db8d368af4f60e5","kind":"tag","published_at":"2017-11-08T18:50:59.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/17.3.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/17.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@17.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/17.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/17.3.0/manifests"},{"name":"17.3.0.post2","sha":"92aeb9c08cf8e1b53799978af6f7b8a5bc1f16cf","kind":"tag","published_at":"2017-11-08T18:46:41.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/17.3.0.post2","html_url":"https://github.com/python-attrs/attrs/releases/tag/17.3.0.post2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@17.3.0.post2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/17.3.0.post2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/17.3.0.post2/manifests"},{"name":"17.3.0.post1","sha":"7501cecf0f4313c3b2597d03ac0853cca1659065","kind":"tag","published_at":"2017-11-08T18:34:00.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/17.3.0.post1","html_url":"https://github.com/python-attrs/attrs/releases/tag/17.3.0.post1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@17.3.0.post1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/17.3.0.post1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/17.3.0.post1/manifests"},{"name":"17.2.0","sha":"c324a7d5474ff54f91b2b9443746facf2b6213a2","kind":"tag","published_at":"2017-05-24T17:57:35.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/17.2.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/17.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@17.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/17.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/17.2.0/manifests"},{"name":"17.1.0","sha":"f094aec6a92de33caded84c73c24ed4347c277bd","kind":"tag","published_at":"2017-05-16T16:56:14.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/17.1.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/17.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@17.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/17.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/17.1.0/manifests"},{"name":"16.3.0","sha":"5516d5452c76416b3fea0c9d9f2b7505fae82c2b","kind":"tag","published_at":"2016-11-24T13:01:14.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/16.3.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/16.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@16.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/16.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/16.3.0/manifests"},{"name":"16.2.0","sha":"cc980c1f53906d88c9d5610a702e05c02947d81e","kind":"tag","published_at":"2016-09-17T05:49:51.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/16.2.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/16.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@16.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/16.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/16.2.0/manifests"},{"name":"16.1.0","sha":"dae4e40446ff77446844b13b86aad1700f104681","kind":"tag","published_at":"2016-08-30T10:23:28.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/16.1.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/16.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@16.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/16.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/16.1.0/manifests"},{"name":"16.0.0","sha":"c37f4423be8557ea586ffcba2ece92f75655b9a3","kind":"tag","published_at":"2016-05-23T18:29:31.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/16.0.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/16.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@16.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/16.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/16.0.0/manifests"},{"name":"15.2.0","sha":"81ff5309d93d7404c314f647ac7f420372e54071","kind":"commit","published_at":"2015-12-08T15:24:46.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/15.2.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/15.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@15.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/15.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/15.2.0/manifests"},{"name":"15.1.0","sha":"5158b66af9976d4e32a014a154c2d56ac3802512","kind":"commit","published_at":"2015-08-20T11:53:57.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/15.1.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/15.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@15.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/15.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/15.1.0/manifests"},{"name":"15.0.0","sha":"21d5dd792a00595ec219daf0e64de5de135377af","kind":"commit","published_at":"2015-04-15T21:39:29.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/15.0.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/15.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-attrs/attrs@15.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/15.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags/15.0.0/manifests"}]},"repo_metadata_updated_at":"2025-08-21T13:29:21.347Z","dependent_packages_count":205,"downloads":null,"downloads_period":null,"dependent_repos_count":1535,"rankings":{"downloads":null,"dependent_repos_count":0.4241728629173112,"dependent_packages_count":0.33434802135835123,"stargazers_count":5.05514247217925,"forks_count":9.266929487499375,"docker_downloads_count":null,"average":3.7701482109885722},"purl":"pkg:conda/attrs","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/conda/attrs","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/conda/attrs","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/conda/attrs/dependencies","status":null,"funding_links":["https://github.com/sponsors/hynek","https://tidelift.com/funding/github/pypi/attrs"],"critical":true,"issue_metadata":{"last_synced_at":"2025-08-21T00:33:09.726Z","issues_count":219,"pull_requests_count":220,"avg_time_to_close_issue":14819774.729166666,"avg_time_to_close_pull_request":1627202.158139535,"issues_closed_count":144,"pull_requests_closed_count":215,"pull_request_authors_count":64,"issue_authors_count":162,"avg_comments_per_issue":3.904109589041096,"avg_comments_per_pull_request":2.3181818181818183,"merged_pull_requests_count":192,"bot_issues_count":0,"bot_pull_requests_count":30,"past_year_issues_count":40,"past_year_pull_requests_count":67,"past_year_avg_time_to_close_issue":2070771.1153846155,"past_year_avg_time_to_close_pull_request":811706.46875,"past_year_issues_closed_count":26,"past_year_pull_requests_closed_count":64,"past_year_pull_request_authors_count":29,"past_year_issue_authors_count":34,"past_year_avg_comments_per_issue":2.35,"past_year_avg_comments_per_pull_request":1.2238805970149254,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":11,"past_year_merged_pull_requests_count":52,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/issues","maintainers":[{"login":"hynek","count":100,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/hynek"},{"login":"Tinche","count":14,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Tinche"},{"login":"webknjaz","count":11,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"},{"login":"Julian","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Julian"},{"login":"blueyed","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/blueyed"},{"login":"gabbard","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/gabbard"}],"active_maintainers":[{"login":"hynek","count":18,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/hynek"},{"login":"webknjaz","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"},{"login":"Tinche","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Tinche"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/attrs/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/attrs/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/attrs/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/attrs/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":13395,"github":"conda-forge","metadata":{"kind":"conda-forge","key":"CondaForge","api":"https://conda.anaconda.org","funded_packages_count":2184},"icon_url":"https://github.com/conda-forge.png","created_at":"2022-10-03T15:37:08.743Z","updated_at":"2025-09-05T07:44:46.629Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/namespaces"}},{"id":5283218,"name":"attrs","ecosystem":"conda","description":"attrs is the Python package that will bring back the joy of writing classes by relieving you from the drudgery of implementing object protocols (aka dunder methods). Its main goal is to help you to write concise and correct software without slowing down your code. For that, it gives you a class decorator and a way to declaratively define the attributes on that class:","homepage":"https://www.attrs.org/","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/python-attrs/attrs","keywords_array":[],"namespace":null,"versions_count":17,"first_release_published_at":"2017-10-11T18:01:38.000Z","latest_release_published_at":"2024-12-18T14:45:57.000Z","latest_release_number":"24.3.0","last_synced_at":"2025-08-18T20:08:21.113Z","created_at":"2022-10-03T15:39:11.610Z","updated_at":"2025-08-18T20:08:21.113Z","registry_url":"https://anaconda.org/anaconda/attrs","install_command":"conda install -c anaconda attrs","documentation_url":null,"metadata":{},"repo_metadata":{"uuid":"29918975","full_name":"python-attrs/attrs","owner":"python-attrs","description":"Python Classes Without Boilerplate","archived":false,"fork":false,"pushed_at":"2023-03-18T21:32:50.000Z","size":2581,"stargazers_count":4678,"open_issues_count":116,"forks_count":336,"subscribers_count":60,"default_branch":"main","last_synced_at":"2023-03-22T07:23:48.940Z","etag":null,"topics":["attributes","boilerplate","classes","oop","python"],"latest_commit_sha":null,"homepage":"https://www.attrs.org/","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,"logo_url":null,"metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":".github/SECURITY.md","support":null},"funding":{"github":"hynek","ko_fi":"the_hynek","tidelift":"pypi/attrs"}},"created_at":"2015-01-27T15:01:01.000Z","updated_at":"2023-03-21T00:01:34.000Z","dependencies_parsed_at":"2023-01-17T01:45:53.945Z","dependency_job_id":null,"html_url":"https://github.com/python-attrs/attrs","commit_stats":null,"repository_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs","tags_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/tags","manifests_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/manifests","owner_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-attrs","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":108921946,"host_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names"},"owner_record":{"login":"python-attrs","name":"The attrs Cabal","uuid":"25880274","kind":"organization","description":"Dedicated to empower Python developers to write better code with less effort.","email":null,"website":"https://www.attrs.org/","location":null,"twitter":null,"company":null,"avatar_url":"https://avatars.githubusercontent.com/u/25880274?v=4","repositories_count":2,"last_synced_at":"2023-02-19T21:34:22.122Z","metadata":{"has_sponsors_listing":false},"owner_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-attrs"},"tags":[{"name":"22.2.0","sha":"a9960de98d0f58ccb2880d03c97dafba3fc1111c","kind":"tag","published_at":"2022-12-21T09:07:33.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/22.2.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/22.2.0"},{"name":"22.1.0","sha":"b3dfebe2e10b44437c4f97d788fb5220d790efd0","kind":"tag","published_at":"2022-07-28T13:03:05.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/22.1.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/22.1.0"},{"name":"21.4.0.post1","sha":"2bfe6db9045b8a5a9b87a1392d189ef6ffef8201","kind":"tag","published_at":"2022-02-02T08:04:06.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/21.4.0.post1","html_url":"https://github.com/python-attrs/attrs/releases/tag/21.4.0.post1"},{"name":"21.4.0","sha":"2de90143100e713d8ae6b5d1adb5e1e879af01fb","kind":"tag","published_at":"2021-12-29T13:09:30.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/21.4.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/21.4.0"},{"name":"21.3.0","sha":"dd26edd68e12879f716c6554f25d957af299b801","kind":"tag","published_at":"2021-12-28T05:59:47.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/21.3.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/21.3.0"},{"name":"21.2.0","sha":"83d3cd70f90a3f4d19ee8b508e58d1c58821c0ad","kind":"tag","published_at":"2021-05-07T09:22:34.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/21.2.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/21.2.0"},{"name":"21.1.0","sha":"b22195ee65d5b0ee7694ebd9da7dcd27abafd88c","kind":"tag","published_at":"2021-05-06T08:20:55.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/21.1.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/21.1.0"},{"name":"20.3.0","sha":"f3762ba07bf0cec8bebdaaeca2212ba1d662ff13","kind":"tag","published_at":"2020-11-05T10:00:51.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/20.3.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/20.3.0"},{"name":"20.2.0","sha":"4f74fbaca3cc12911e4dcf67a5cc9d2465c3e571","kind":"tag","published_at":"2020-09-05T10:19:09.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/20.2.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/20.2.0"},{"name":"20.1.0","sha":"90386b669e8ad786bfd79ef2bbce37727ed855b6","kind":"tag","published_at":"2020-08-20T17:16:17.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/20.1.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/20.1.0"},{"name":"19.3.0","sha":"823c1c332ce7de24eef8a28e6d9ccf818ce7746c","kind":"tag","published_at":"2019-10-15T05:46:06.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/19.3.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/19.3.0"},{"name":"19.2.0","sha":"7fcd616aabb4067b07a5bded22bc578d35f9e14d","kind":"commit","published_at":"2019-10-01T14:48:30.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/19.2.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/19.2.0"},{"name":"19.1.0","sha":"0356f0603eb5d8d4e7bae132ab80847fff4abcfc","kind":"tag","published_at":"2019-03-03T08:31:46.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/19.1.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/19.1.0"},{"name":"18.2.0","sha":"aaeba93b0618b24d6bcb37971445d0dcb5f52910","kind":"tag","published_at":"2018-09-01T04:44:36.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/18.2.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/18.2.0"},{"name":"18.1.0","sha":"9c3e07bab90d09a6063a7802af4063ac52da77b7","kind":"tag","published_at":"2018-05-03T16:15:26.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/18.1.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/18.1.0"},{"name":"17.4.0","sha":"ca06613b750936f6edd315cd94e5c7de0db6580d","kind":"tag","published_at":"2017-12-30T08:06:59.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/17.4.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/17.4.0"},{"name":"17.3.0","sha":"aa097d62a1f794ff3188c4859db8d368af4f60e5","kind":"tag","published_at":"2017-11-08T18:50:59.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/17.3.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/17.3.0"},{"name":"17.3.0.post2","sha":"92aeb9c08cf8e1b53799978af6f7b8a5bc1f16cf","kind":"tag","published_at":"2017-11-08T18:46:41.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/17.3.0.post2","html_url":"https://github.com/python-attrs/attrs/releases/tag/17.3.0.post2"},{"name":"17.3.0.post1","sha":"7501cecf0f4313c3b2597d03ac0853cca1659065","kind":"tag","published_at":"2017-11-08T18:34:00.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/17.3.0.post1","html_url":"https://github.com/python-attrs/attrs/releases/tag/17.3.0.post1"},{"name":"17.2.0","sha":"c324a7d5474ff54f91b2b9443746facf2b6213a2","kind":"tag","published_at":"2017-05-24T17:57:35.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/17.2.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/17.2.0"},{"name":"17.1.0","sha":"f094aec6a92de33caded84c73c24ed4347c277bd","kind":"tag","published_at":"2017-05-16T16:56:14.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/17.1.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/17.1.0"},{"name":"16.3.0","sha":"5516d5452c76416b3fea0c9d9f2b7505fae82c2b","kind":"tag","published_at":"2016-11-24T13:01:14.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/16.3.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/16.3.0"},{"name":"16.2.0","sha":"cc980c1f53906d88c9d5610a702e05c02947d81e","kind":"tag","published_at":"2016-09-17T05:49:51.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/16.2.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/16.2.0"},{"name":"16.1.0","sha":"dae4e40446ff77446844b13b86aad1700f104681","kind":"tag","published_at":"2016-08-30T10:23:28.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/16.1.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/16.1.0"},{"name":"16.0.0","sha":"c37f4423be8557ea586ffcba2ece92f75655b9a3","kind":"tag","published_at":"2016-05-23T18:29:31.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/16.0.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/16.0.0"},{"name":"15.2.0","sha":"81ff5309d93d7404c314f647ac7f420372e54071","kind":"commit","published_at":"2015-12-08T15:24:46.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/15.2.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/15.2.0"},{"name":"15.1.0","sha":"5158b66af9976d4e32a014a154c2d56ac3802512","kind":"commit","published_at":"2015-08-20T11:53:57.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/15.1.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/15.1.0"},{"name":"15.0.0","sha":"21d5dd792a00595ec219daf0e64de5de135377af","kind":"commit","published_at":"2015-04-15T21:39:29.000Z","download_url":"https://codeload.github.com/python-attrs/attrs/tar.gz/15.0.0","html_url":"https://github.com/python-attrs/attrs/releases/tag/15.0.0"}]},"repo_metadata_updated_at":"2023-03-22T07:23:57.042Z","dependent_packages_count":31,"downloads":null,"downloads_period":null,"dependent_repos_count":1535,"rankings":{"downloads":null,"dependent_repos_count":2.6021180030257187,"dependent_packages_count":1.2405446293494704,"stargazers_count":11.67927382753404,"forks_count":18.42662632375189,"docker_downloads_count":null,"average":8.48714069591528},"purl":"pkg:conda/attrs","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/conda/attrs","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/conda/attrs","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/conda/attrs/dependencies","status":null,"funding_links":["https://github.com/sponsors/hynek","https://ko-fi.com/the_hynek","https://tidelift.com/funding/github/pypi/attrs"],"critical":false,"issue_metadata":{"last_synced_at":"2023-08-08T20:27:04.431Z","issues_count":78,"pull_requests_count":65,"avg_time_to_close_issue":12064034.954545455,"avg_time_to_close_pull_request":1094829.8253968253,"issues_closed_count":44,"pull_requests_closed_count":63,"pull_request_authors_count":18,"issue_authors_count":65,"avg_comments_per_issue":4.333333333333333,"avg_comments_per_pull_request":3.3692307692307693,"merged_pull_requests_count":60,"bot_issues_count":0,"bot_pull_requests_count":7,"past_year_issues_count":57,"past_year_pull_requests_count":62,"past_year_avg_time_to_close_issue":2408431.0,"past_year_avg_time_to_close_pull_request":908192.05,"past_year_issues_closed_count":34,"past_year_pull_requests_closed_count":60,"past_year_pull_request_authors_count":17,"past_year_issue_authors_count":46,"past_year_avg_comments_per_issue":2.8596491228070176,"past_year_avg_comments_per_pull_request":3.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":7,"past_year_merged_pull_requests_count":57},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/attrs/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/attrs/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/attrs/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/attrs/related_packages","maintainers":[],"registry":{"name":"anaconda.org","url":"https://anaconda.org","ecosystem":"conda","default":true,"packages_count":4327,"maintainers_count":0,"namespaces_count":0,"keywords_count":2905,"github":"Anaconda","metadata":{"kind":"anaconda","key":"Main","api":"https://repo.ananconda.com","funded_packages_count":612},"icon_url":"https://github.com/Anaconda.png","created_at":"2022-10-03T15:37:08.736Z","updated_at":"2025-09-05T07:44:21.899Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/namespaces"}}],"commits":{"id":6642,"full_name":"python-attrs/attrs","default_branch":"main","committers":[{"name":"Hynek Schlawack","email":"hs@ox.cx","login":"hynek","count":1274},{"name":"Tin Tvrtković","email":"tinchester@gmail.com","login":"Tinche","count":51},{"name":"pre-commit-ci[bot]","email":"66853113+pre-commit-ci[bot]","login":"pre-commit-ci[bot]","count":31},{"name":"David Euresti","email":"david@euresti.com","login":"euresti","count":18},{"name":"Sviatoslav Sydorenko","email":"wk@sydorenko.org.ua","login":"webknjaz","count":14},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":10},{"name":"Christopher Armstrong","email":"radix@twistedmatrix.com","login":"radix","count":9},{"name":"Kyle Altendorf","email":"sda@fstab.net","login":"altendky","count":8},{"name":"wouter bolsterlee","email":"wouter@bolsterl.ee","login":"wbolster","count":7},{"name":"Stefan Scherfke","email":"stefan@sofa-rockers.org","login":"sscherfke","count":7},{"name":"David Cournapeau","email":"cournape@gmail.com","login":"cournape","count":7},{"name":"chrysle","email":"i.kant@posteo.de","login":"chrysle","count":5},{"name":"Filipe Brandenburger","email":"filipe@hudson-trading.com","login":"filbranden","count":5},{"name":"Thomas Grainger","email":"tagrain@gmail.com","login":"graingert","count":4},{"name":"Alex Ford","email":"alex.ford@abcellera.com","login":"asford","count":4},{"name":"Samuel A. Falvo II","email":"sam.falvo@rackspace.com","login":null,"count":4},{"name":"Ryan Gabbard","email":"gabbard@isi.edu","login":null,"count":4},{"name":"Glyph","email":"glyph@twistedmatrix.com","login":"glyph","count":3},{"name":"John Belmonte","email":"john@neggie.net","login":"belm0","count":3},{"name":"Joshua Oreman","email":"oremanj@gmail.com","login":"oremanj","count":3},{"name":"Tim Gates","email":"tim.gates@iress.com","login":"timgates42","count":3},{"name":"Denis Laxalde","email":"denis@laxalde.org","login":"dlax","count":3},{"name":"Antonio Botelho","email":"mrbotant@gmail.com","login":"botant","count":3},{"name":"Aaron Stephens","email":"aaronst","login":"aaronst","count":3},{"name":"paul fisher","email":"paul.fisher@tiledb.com","login":"thetorpedodog","count":3},{"name":"Paul Ganssle","email":"paul@ganssle.io","login":"pganssle","count":3},{"name":"mikejturner","email":"mike.turner@anu.edu.au","login":"mikejturner","count":2},{"name":"Łukasz Langa","email":"lukasz@langa.pl","login":"ambv","count":2},{"name":"Nick Pope","email":"nick@nickpope.me.uk","login":"ngnpope","count":2},{"name":"Oliver Bestwalter","email":"oliver@bestwalter.de","login":"obestwalter","count":2},{"name":"Philippe Ombredanne","email":"pombredanne@nexb.com","login":"pombredanne","count":2},{"name":"Steven Loria","email":"sloria1@gmail.com","login":"sloria","count":2},{"name":"Tristan Seligmann","email":"mithrandi@mithrandi.net","login":"mithrandi","count":2},{"name":"Venky Iyer","email":"indigoviolet","login":"indigoviolet","count":2},{"name":"Vitaliy Yelnik","email":"velnik@gmail.com","login":"kwist-sgr","count":2},{"name":"layday","email":"layday@protonmail.com","login":"layday","count":2},{"name":"Roger Pate","email":"roger@qxxy.com","login":"rdpate","count":2},{"name":"diabolo-dan","email":"diabolo.dan@gmail.com","login":"diabolo-dan","count":2},{"name":"davfsa","email":"davfsa@gmail.com","login":"davfsa","count":2},{"name":"William Jamir Silva","email":"williamjamir@gmail.com","login":"williamjamir","count":2},{"name":"Lumír 'Frenzy' Balhar","email":"lbalhar@redhat.com","login":"frenzymadness","count":2},{"name":"Lynn Root","email":"lynn@spotify.com","login":"econchick","count":2},{"name":"rtoijala","email":"risto.toijala@gmail.com","login":null,"count":2},{"name":"Alex Chan","email":"alex@alexwlchan.net","login":"alexwlchan","count":2},{"name":"Kevin M Granger","email":"git@kevinmgranger.me","login":"KevinMGranger","count":2},{"name":"Andrei Bodrov","email":"Drino","login":"Drino","count":2},{"name":"Andy Freeland","email":"andy@andyfreeland.net","login":"rouge8","count":2},{"name":"Chad Dombrova","email":"chadrik@gmail.com","login":"chadrik","count":2},{"name":"Nativ Issac","email":"nativ2012@gmail.com","login":"NI1993","count":2},{"name":"Eugene Toder","email":"eltoder","login":"eltoder","count":2},{"name":"Geoffrey Thomas","email":"geofft@ldpreload.com","login":"geofft","count":2},{"name":"George Macon","email":"george.macon@gmail.com","login":"gmacon","count":2},{"name":"Hugo van Kemenade","email":"hugovk","login":"hugovk","count":2},{"name":"Julian Berman","email":"Julian@GrayVines.com","login":"Julian","count":2},{"name":"Matt Bullock","email":"bullocm@amazon.com","login":"mattsb42-aws","count":2},{"name":"Zac Hatfield-Dodds","email":"Zac-HD","login":"Zac-HD","count":2},{"name":"Bruno Oliveira","email":"nicoddemus@gmail.com","login":"nicoddemus","count":1},{"name":"Bryan Forbes","email":"bryan@reigndropsfall.net","login":"bryanforbes","count":1},{"name":"C. Sachs","email":"christian.sachs@sachsmail.de","login":"chsachs","count":1},{"name":"Carlton Gibson","email":"carlton@noumenal.es","login":"carltongibson","count":1},{"name":"Damian Quiroga","email":"qdamian@gmail.com","login":"qdamian","count":1},{"name":"Hlynur Freyr Jónsson","email":"hlynur4@gmail.com","login":"hlynurf","count":1},{"name":"Gábor Lipták","email":"gliptak@gmail.com","login":"gliptak","count":1},{"name":"George Tantiras","email":"raratiru","login":"raratiru","count":1},{"name":"Gabe Appleton","email":"gabe@gabeappleton.me","login":"LivInTheLookingGlass","count":1},{"name":"Florian Bruhin","email":"me@the-compiler.org","login":"The-Compiler","count":1},{"name":"Felix Yan","email":"felixonmars@archlinux.org","login":"felixonmars","count":1},{"name":"Fabian Kochem","email":"fkochem@gmail.com","login":"vortec","count":1},{"name":"Eugene Pakhomov","email":"p1himik@gmail.com","login":"p-himik","count":1},{"name":"Eric Traut","email":"eric@traut.com","login":"erictraut","count":1},{"name":"Douglas Griffith","email":"dwg@grth.ca","login":"dwgrth","count":1},{"name":"InSync","email":"122007197+InSyncWithFoo","login":"InSyncWithFoo","count":1},{"name":"Brian Pugh","email":"bnp117@gmail.com","login":"BrianPugh","count":1},{"name":"Ash Berlin-Taylor","email":"ash_github@firemirror.com","login":"ashb","count":1},{"name":"Anthony Sottile","email":"asottile@umich.edu","login":"asottile","count":1},{"name":"Andre Dieb","email":"andre.dieb@gmail.com","login":"dieb","count":1},{"name":"Anders Huss","email":"andhus@kth.se","login":"andhus","count":1},{"name":"Alex Peters","email":"alex@peters.net","login":"Lx","count":1},{"name":"Albert Zeyer","email":"albzey@gmail.com","login":"albertz","count":1},{"name":"Adam Morris","email":"amorris@mistermorris.com","login":"brainysmurf","count":1},{"name":"Adam Dangoor","email":"adamdangoor@gmail.com","login":"adamtheturtle","count":1},{"name":"Aaron Pham","email":"29749331+aarnphm","login":"aarnphm","count":1},{"name":"A5rocks","email":"git@helvetica.moe","login":"A5rocks","count":1},{"name":"0xflotus","email":"0xflotus@gmail.com","login":"0xflotus","count":1},{"name":"Kenneth Reitz","email":"me@kennethreitz.org","login":"kennethreitz","count":1},{"name":"Simon Willison","email":"simonw@eventbrite.com","login":null,"count":1},{"name":"Michael Boger","email":"jmboger@earthlink.net","login":null,"count":1},{"name":"Antonio Botelho","email":"antonio@inhames.com","login":null,"count":1},{"name":"Dmitry Shmyrev","email":"47178016+daemonix741","login":"daemonix741","count":1},{"name":"cyli","email":"cyli@twistedmatrix.com","login":"cyli","count":1},{"name":"Zecong Hu","email":"huzecong@gmail.com","login":"huzecong","count":1},{"name":"YevIgn","email":"YevIgn","login":"YevIgn","count":1},{"name":"Yann Kaiser","email":"kaiser.yann@gmail.com","login":"epsy","count":1},{"name":"Why-not-now","email":"81090788+Why-not-now","login":"Why-not-now","count":1},{"name":"Vyacheslav Tverskoy","email":"tsx@tsx.su","login":"tsx","count":1},{"name":"Victor Song","email":"vsong1618@gmail.com","login":"Tyrubias","count":1},{"name":"Vedant Puri","email":"vedant.puri@klaviyo.com","login":"vedantpuri","count":1},{"name":"Varun Sharma","email":"varunsh@stepsecurity.io","login":"varunsh-coder","count":1},{"name":"Tommy Beadle","email":"tbeadle@gmail.com","login":"tbeadle","count":1},{"name":"Tom Prince","email":"tom.prince@twistedmatrix.com","login":"tomprince","count":1},{"name":"Tobias Bieniek","email":"tobias@bieniek.cloud","login":"Turbo87","count":1},{"name":"Timothy Emiola","email":"adetokunbo","login":"adetokunbo","count":1},{"name":"Tim Stumbaugh","email":"me@tjstum.com","login":"tjstum","count":1},{"name":"Tim Orling","email":"TicoTimo@gmail.com","login":"moto-timo","count":1},{"name":"Tim D. Smith","email":"github@tim-smith.us","login":"tdsmith","count":1},{"name":"Thomas A Caswell","email":"tcaswell@gmail.com","login":"tacaswell","count":1},{"name":"Theodore Dubois","email":"tblodt@icloud.com","login":"tbodt","count":1},{"name":"Tal Einat","email":"532281+taleinat","login":"taleinat","count":1},{"name":"Sergei Lebedev","email":"185856+superbobry","login":"superbobry","count":1},{"name":"Sagi","email":"saginadir@gmail.com","login":"saginadir","count":1},{"name":"T","email":"torque","login":"torque","count":1},{"name":"Step Security Bot","email":"bot@stepsecurity.io","login":"step-security-bot","count":1},{"name":"Stavros Korokithakis","email":"hi@stavros.io","login":"skorokithakis","count":1},{"name":"Stanis Trendelenburg","email":"stanis.trendelenburg@gmail.com","login":"trendels","count":1},{"name":"Simone Robutti","email":"simone.robutti@protonmail.com","login":"chobeat","count":1},{"name":"Çağlar Kutlu","email":"caglar.kutlu@gmail.com","login":"ckutlu","count":1},{"name":"smarie","email":"sylvain.marie@schneider-electric.com","login":"smarie","count":1},{"name":"serhii73","email":"aserhii@protonmail.com","login":"serhii73","count":1},{"name":"serge-sans-paille","email":"sergesanspaille@free.fr","login":"serge-sans-paille","count":1},{"name":"richardsheridan","email":"richard.sheridan@gmail.com","login":"richardsheridan","count":1},{"name":"redruin1","email":"tfschaefer222@gmail.com","login":"redruin1","count":1},{"name":"piglei","email":"piglei2007@gmail.com","login":"piglei","count":1},{"name":"p-leger","email":"41744096+p-leger","login":"p-leger","count":1},{"name":"ngie-eign","email":"1574099+ngie-eign","login":"ngie-eign","count":1},{"name":"my1e5","email":"10064103+my1e5","login":"my1e5","count":1},{"name":"mathieu longtin","email":"mathieu.longtin@nuance.com","login":"mlongtin0","count":1},{"name":"koenigdavidmj","email":"david@koenigfam.org","login":"koenigdavidmj","count":1},{"name":"jmglogow","email":"glogow@fbihome.de","login":"jmglogow","count":1},{"name":"jimbo1qaz","email":"jimbo1qaz@gmail.com","login":"nyanpasu64","count":1},{"name":"jfs","email":"isidore.john.r@gmail.com","login":"zed","count":1},{"name":"Kian Meng, Ang","email":"kianmeng.ang@gmail.com","login":"kianmeng","count":1},{"name":"Diego Argueta","email":"dargueta","login":"dargueta","count":1},{"name":"Michał Masłowski","email":"m.maslowski@clearcode.cc","login":"mmaslowskicc","count":1},{"name":"Michał Górny","email":"mgorny@gentoo.org","login":"mgorny","count":1},{"name":"Micael Jarniac","email":"micael@jarniac.com","login":"MicaelJarniac","count":1},{"name":"Matthieu Melot","email":"matthieu.melot@gmail.com","login":"matmel","count":1},{"name":"Matthias Schoettle","email":"git@mattsch.com","login":"mschoettle","count":1},{"name":"Matt Tuchfarber","email":"matt@tuchfarber.com","login":"tuchfarber","count":1},{"name":"Matt Bullock","email":"matt.s.b.42@gmail.com","login":"mattsb42","count":1},{"name":"Marcelo Trylesinski","email":"marcelotryle@gmail.com","login":"Kludex","count":1},{"name":"Libor Martínek","email":"libas@acco.cz","login":"bibajz","count":1},{"name":"Laurent Kadian","email":"17257425+lkadian","login":"lkadian","count":1},{"name":"Lanqing Huang","email":"lqhuang@outlook.com","login":"lqhuang","count":1},{"name":"Lan5880","email":"67932379+Lan5880","login":"Lan5880","count":1},{"name":"Kyle Barron","email":"kylebarron2@gmail.com","login":"kylebarron","count":1},{"name":"Kurt Rose","email":"doublereedkurt@gmail.com","login":"kurtbrose","count":1},{"name":"Karthikeyan Singaravelan","email":"tir.karthi@gmail.com","login":"tirkarthi","count":1},{"name":"Jürgen Gmach","email":"juergen.gmach@googlemail.com","login":"jugmac00","count":1},{"name":"Juan Pedro Fisanotti","email":"fisadev@gmail.com","login":"fisadev","count":1},{"name":"JesseWeinstein","email":"jesse@wefu.org","login":"JesseWeinstein","count":1},{"name":"Jasper Spaans","email":"j@jasper.es","login":"jap","count":1},{"name":"Jan Gosmann","email":"jan@hyper-world.de","login":"jgosmann","count":1},{"name":"Jamie Stewart","email":"jamie--stewart","login":"jamie--stewart","count":1},{"name":"James Murphy","email":"127134955+jamesmurphy-mc","login":"jamesmurphy-mc","count":1},{"name":"Ryan Volpe","email":"35857663+ryanvolpe","login":"ryanvolpe","count":1},{"name":"Rosslaew","email":"rosslaew@gmail.com","login":"christophe-riolo","count":1},{"name":"Rich Wareham","email":"rjw57","login":"rjw57","count":1},{"name":"Rebecca Turner","email":"rbt@sent.as","login":"9999years","count":1},{"name":"Ray Zhang","email":"peifeng2005@gmail.com","login":"OneRaynyDay","count":1},{"name":"R. Alex Matevish","email":"alex@matevi.sh","login":"ramatevish","count":1},{"name":"Pavel Karateev","email":"lancelote.du.lac@gmail.com","login":"lancelote","count":1},{"name":"Paul Colomiets","email":"paul@colomiets.name","login":"tailhook","count":1},{"name":"Olexiy Pohorely","email":"52452803+l1storez","login":"l1storez","count":1},{"name":"Nikola Dipanov","email":"nikola.djipanov@gmail.com","login":"djipko","count":1},{"name":"Nikita Sobolev","email":"mail@sobolevn.me","login":"sobolevn","count":1},{"name":"Nick Timkovich","email":"prometheus235@gmail.com","login":"nicktimko","count":1},{"name":"Nicholas Coltharp","email":"coltharp@pdx.edu","login":"nosewings","count":1},{"name":"Ned Batchelder","email":"ned@nedbatchelder.com","login":"nedbat","count":1},{"name":"Dmitry Yutkin","email":"yutkinn@gmail.com","login":"yutkin","count":1},{"name":"iron3oxide","email":"98779754+iron3oxide","login":"iron3oxide","count":1},{"name":"inso","email":"insomniak.fr@gmaiL.com","login":"Insoleet","count":1},{"name":"hkclark","email":"kclark@kennedyclark.com","login":"hkclark","count":1},{"name":"gopackgo90","email":"cbodendein@live.com","login":"gopackgo90","count":1},{"name":"esteevens","email":"esteevens@hotmail.com","login":"esteevens","count":1},{"name":"egregius313","email":"egregius313@gmail.com","login":"egregius313","count":1},{"name":"Mike Gilbert","email":"floppymaster@gmail.com","login":"floppym","count":1}],"total_commits":1669,"total_committers":176,"total_bot_commits":41,"total_bot_committers":2,"mean_commits":9.482954545454545,"dds":0.23666866387058116,"past_year_committers":[{"name":"Hynek Schlawack","email":"hs@ox.cx","login":"hynek","count":85},{"name":"pre-commit-ci[bot]","email":"66853113+pre-commit-ci[bot]","login":"pre-commit-ci[bot]","count":7},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":5},{"name":"Filipe Brandenburger","email":"filipe@hudson-trading.com","login":"filbranden","count":5},{"name":"Sviatoslav Sydorenko (Святослав Сидоренко)","email":"sviat@redhat.com","login":"webknjaz","count":5},{"name":"Tin Tvrtković","email":"tinchester@gmail.com","login":"Tinche","count":4},{"name":"Geoffrey Thomas","email":"geofft@ldpreload.com","login":"geofft","count":2},{"name":"A5rocks","email":"git@helvetica.moe","login":"A5rocks","count":1},{"name":"Alex Peters","email":"alex@peters.net","login":"Lx","count":1},{"name":"Ash Berlin-Taylor","email":"ash_github@firemirror.com","login":"ashb","count":1},{"name":"Douglas Griffith","email":"dwg@grth.ca","login":"dwgrth","count":1},{"name":"James Murphy","email":"127134955+jamesmurphy-mc","login":"jamesmurphy-mc","count":1},{"name":"Lumír 'Frenzy' Balhar","email":"lbalhar@redhat.com","login":"frenzymadness","count":1},{"name":"Matthias Schoettle","email":"git@mattsch.com","login":"mschoettle","count":1},{"name":"Thomas Grainger","email":"tagrain@gmail.com","login":"graingert","count":1},{"name":"Tim Stumbaugh","email":"me@tjstum.com","login":"tjstum","count":1},{"name":"Zecong Hu","email":"huzecong@gmail.com","login":"huzecong","count":1},{"name":"esteevens","email":"esteevens@hotmail.com","login":"esteevens","count":1},{"name":"jfs","email":"isidore.john.r@gmail.com","login":"zed","count":1},{"name":"redruin1","email":"tfschaefer222@gmail.com","login":"redruin1","count":1},{"name":"serge-sans-paille","email":"sergesanspaille@free.fr","login":"serge-sans-paille","count":1}],"past_year_total_commits":127,"past_year_total_committers":21,"past_year_total_bot_commits":12,"past_year_total_bot_committers":2,"past_year_mean_commits":6.0476190476190474,"past_year_dds":0.3307086614173228,"last_synced_at":"2025-08-08T00:52:12.413Z","last_synced_commit":"a296a129c60f5c736165086621f03c10a4d14065","created_at":"2023-03-07T09:43:19.441Z","updated_at":"2025-08-08T00:52:12.453Z","commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-08-27T00:00:29.048Z","repositories_count":5479765,"commits_count":853308191,"contributors_count":31095157,"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":"python-attrs/attrs","html_url":"https://github.com/python-attrs/attrs","last_synced_at":"2025-09-02T08:00:55.928Z","status":null,"issues_count":214,"pull_requests_count":322,"avg_time_to_close_issue":15966780.266666668,"avg_time_to_close_pull_request":2048362.0644067796,"issues_closed_count":135,"pull_requests_closed_count":295,"pull_request_authors_count":66,"issue_authors_count":158,"avg_comments_per_issue":3.4626168224299065,"avg_comments_per_pull_request":2.0559006211180124,"merged_pull_requests_count":261,"bot_issues_count":0,"bot_pull_requests_count":44,"past_year_issues_count":39,"past_year_pull_requests_count":111,"past_year_avg_time_to_close_issue":1893919.6538461538,"past_year_avg_time_to_close_pull_request":983268.5052631579,"past_year_issues_closed_count":26,"past_year_pull_requests_closed_count":95,"past_year_pull_request_authors_count":31,"past_year_issue_authors_count":32,"past_year_avg_comments_per_issue":1.8461538461538463,"past_year_avg_comments_per_pull_request":1.0990990990990992,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":20,"past_year_merged_pull_requests_count":77,"created_at":"2023-05-10T11:08:11.980Z","updated_at":"2025-09-03T06:20:58.355Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-attrs%2Fattrs/issues","issue_labels_count":{"Feature":27,"Typing":18,"Bug":17,"Documentation":13,"Thinking":6,"Performance":5,"Good for New Contributors":4,"Meta":3,"Invalid":2,"On Hold":2,"dataclasses":2,"Question":1},"pull_request_labels_count":{"dependencies":16,"github_actions":5,"Feature":2,"Cleanup":2,"Meta":1},"issue_author_associations_count":{"NONE":151,"CONTRIBUTOR":38,"MEMBER":22},"pull_request_author_associations_count":{"MEMBER":163,"CONTRIBUTOR":146,"NONE":35},"issue_authors":{"hynek":14,"AdrianSosic":11,"glyph":4,"redruin1":4,"euresti":3,"Darkdragon84":3,"Tinche":3,"raphCode":2,"webknjaz":2,"txemi":2,"rklasen":2,"befeleme":2,"serge-sans-paille":2,"my1e5":2,"ikonst":2,"sscherfke":2,"RNKuhns":2,"Dr-ZeeD":2,"asford":2,"mrolle45":2,"MicaelJarniac":2,"kloczek":2,"Drino":2,"n-splv":2,"LukasKrocek":2,"burnpanck":2,"userappgate":1,"ethanjyx":1,"kevinphs":1,"gabbard":1,"leroyvn":1,"MioYvo":1,"kjohnsen":1,"superosku":1,"beelze":1,"bavalpey":1,"dlovell":1,"SoundsSerious":1,"aleaverfay":1,"homayouniarieed":1,"bdanofsky":1,"dalejung":1,"oremanj":1,"Funth0mas":1,"mozesa":1,"kdebrab":1,"agronholm":1,"frenzymadness":1,"blueyed":1,"Julian":1,"berquist":1,"layday":1,"paketb0te":1,"bijaykhatri23":1,"itamarst":1,"lpnueg4":1,"jamesmurphy-mc":1,"wencan":1,"vreuter":1,"jxrossel":1,"tomprince":1,"YAmikep":1,"miki5799":1,"jml":1,"AntoinePrv":1,"germaniuss":1,"Redoubts":1,"luca-penasa":1,"zeevro":1,"kevinleahy-switchdin":1,"wimglenn":1,"badicsalex":1,"ryan-minato":1,"jacobg":1,"paulmelnikow":1,"ariebovenberg":1,"vedantpuri":1,"dbertouille":1,"pymarv":1,"znichollscr":1,"ericfrederich":1,"erictraut":1,"klausmcm":1,"Guneetkaur03":1,"mkdsfm":1,"chansoo-google":1,"inducer":1,"Rizhiy":1,"jacopoabramo":1,"A5rocks":1,"emmeowzing":1,"canepan":1,"dougthor42":1,"stevecj":1,"ThatXliner":1,"jakobwes":1,"poneill":1,"dbramel":1,"Tlunch":1,"SrinivasMcp":1,"rouge8":1,"graingert":1,"dkrikun":1,"ashb":1,"majidaldo":1,"Wenzel":1,"csghone":1,"4l1fe":1,"injust":1,"DMRobertson":1,"fredsensibill":1,"chrysle":1,"OrHayat":1,"Why-not-now":1,"superbobry":1,"mgorny":1,"martinzugnoni":1,"Sharp-Eyes":1,"gmacon":1,"znicholls":1,"pinkfrog9":1,"dargueta":1,"olivercoleman-switchdin":1,"bepri":1,"huzecong":1,"ShaiAvr":1,"ngchihuan":1,"Fuyukai":1,"jgarvin":1,"keironstoddart":1,"AndreLouisCaron":1,"wandth":1,"brunokim":1,"Xfel":1,"jfindlay":1,"dnlfm":1,"ponomar":1,"OneRaynyDay":1,"skirpichev":1,"brendan-simon-indt":1,"nyoxi":1,"alexchandel":1,"rec":1,"alonme":1,"ckutlu":1,"brettc":1,"tsx":1,"roynico":1,"geofft":1,"mwchase":1,"SMoraisAnsys":1,"Hnasar":1,"BEllis":1,"lukpueh":1,"tartopohm":1,"djipko":1,"Arcitec":1},"pull_request_authors":{"hynek":132,"pre-commit-ci[bot]":31,"Tinche":16,"dependabot[bot]":15,"webknjaz":14,"filbranden":12,"dlax":9,"chrysle":5,"diabolo-dan":4,"geofft":4,"esteevens":4,"frenzymadness":4,"sscherfke":4,"redruin1":4,"koenigdavidmj":3,"mikejturner":3,"axel-osoft":3,"carltongibson":3,"jamesmurphy-mc":2,"tjstum":2,"serge-sans-paille":2,"kursataktas":2,"dwgrth":2,"wagenrace":2,"graingert":2,"zed":2,"timmow":2,"Lx":2,"eltoder":2,"A5rocks":2,"RNKuhns":2,"moto-timo":2,"altendky":2,"kloczek":2,"econchick":2,"johnthagen":2,"SMoraisAnsys":2,"richardsheridan":2,"tdsmith":2,"ryan-minato":2,"ashb":2,"mschoettle":2,"bibajz":2,"my1e5":2,"finite-state-machine":1,"vedantpuri":1,"kwist-sgr":1,"superbobry":1,"gmacon":1,"torque":1,"JelleZijlstra":1,"dcsaba89":1,"bryanforbes":1,"djipko":1,"BrianPugh":1,"aarnphm":1,"lqhuang":1,"InSyncWithFoo":1,"tsx":1,"huzecong":1,"ngnpope":1,"hugovk":1,"Tyrubias":1,"Julian":1,"Why-not-now":1,"raratiru":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-03T00:00:08.273Z","repositories_count":10070501,"issues_count":31240645,"pull_requests_count":95394471,"authors_count":10689216,"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":{"Typing":1,"Documentation":1,"Bug":1},"past_year_pull_request_labels_count":{"dependencies":5,"github_actions":5},"past_year_issue_author_associations_count":{"NONE":31,"CONTRIBUTOR":4,"MEMBER":4},"past_year_pull_request_author_associations_count":{"CONTRIBUTOR":65,"MEMBER":39,"NONE":23},"past_year_issue_authors":{"redruin1":4,"hynek":3,"AdrianSosic":2,"serge-sans-paille":2,"luca-penasa":1,"mgorny":1,"MioYvo":1,"ngchihuan":1,"nyoxi":1,"Redoubts":1,"ryan-minato":1,"SMoraisAnsys":1,"SoundsSerious":1,"SrinivasMcp":1,"Tinche":1,"Tlunch":1,"vreuter":1,"kloczek":1,"kevinleahy-switchdin":1,"jxrossel":1,"jacopoabramo":1,"Guneetkaur03":1,"geofft":1,"Fuyukai":1,"frenzymadness":1,"dkrikun":1,"Darkdragon84":1,"chansoo-google":1,"burnpanck":1,"bijaykhatri23":1,"bepri":1,"ashb":1},"past_year_pull_request_authors":{"hynek":30,"pre-commit-ci[bot]":17,"filbranden":12,"Tinche":7,"dependabot[bot]":5,"redruin1":4,"esteevens":4,"geofft":4,"axel-osoft":3,"zed":2,"tjstum":2,"dwgrth":2,"frenzymadness":2,"ryan-minato":2,"serge-sans-paille":2,"kursataktas":2,"jamesmurphy-mc":2,"wagenrace":2,"Lx":2,"webknjaz":2,"SMoraisAnsys":2,"johnthagen":2,"timmow":2,"graingert":2,"sscherfke":2,"A5rocks":2,"ashb":2,"diabolo-dan":1,"JelleZijlstra":1,"huzecong":1,"carltongibson":1,"finite-state-machine":1},"maintainers":[{"login":"hynek","count":146,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/hynek"},{"login":"Tinche","count":19,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Tinche"},{"login":"webknjaz","count":16,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"},{"login":"Julian","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Julian"},{"login":"gabbard","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/gabbard"},{"login":"blueyed","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/blueyed"}],"active_maintainers":[{"login":"hynek","count":33,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/hynek"},{"login":"Tinche","count":8,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Tinche"},{"login":"webknjaz","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/webknjaz"}]},"events":{"total":{"ForkEvent":31,"CreateEvent":66,"CommitCommentEvent":3,"ReleaseEvent":4,"IssuesEvent":68,"WatchEvent":325,"DeleteEvent":59,"IssueCommentEvent":225,"PushEvent":210,"GollumEvent":3,"PullRequestReviewCommentEvent":39,"PullRequestReviewEvent":86,"PullRequestEvent":113},"last_year":{"ForkEvent":31,"CreateEvent":66,"CommitCommentEvent":3,"ReleaseEvent":4,"IssuesEvent":68,"WatchEvent":325,"DeleteEvent":59,"IssueCommentEvent":225,"PushEvent":210,"GollumEvent":3,"PullRequestReviewCommentEvent":39,"PullRequestReviewEvent":86,"PullRequestEvent":113}},"keywords":["attributes","boilerplate","classes","oop","python"],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/build-docset.yml","sha":null,"kind":"manifest","created_at":"2023-01-14T04:43:10.591Z","updated_at":"2023-01-14T04:43:10.591Z","repository_link":"https://github.com/python-attrs/attrs/blob/main/.github/workflows/build-docset.yml","dependencies":[{"id":6892449712,"package_name":"step-security/harden-runner","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":6892449713,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":6892449714,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":6892449715,"package_name":"actions/upload-artifact","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/ci.yml","sha":null,"kind":"manifest","created_at":"2023-01-14T04:43:10.612Z","updated_at":"2023-01-14T04:43:10.612Z","repository_link":"https://github.com/python-attrs/attrs/blob/main/.github/workflows/ci.yml","dependencies":[{"id":6892449716,"package_name":"step-security/harden-runner","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":6892449717,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":6892449718,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":6892449719,"package_name":"actions/upload-artifact","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":6892449720,"package_name":"actions/download-artifact","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":6892449721,"package_name":"hynek/build-and-inspect-python-package","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":6892449722,"package_name":"re-actors/alls-green","ecosystem":"actions","requirements":"release/v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/codeql-analysis.yml","sha":null,"kind":"manifest","created_at":"2023-01-14T04:43:10.623Z","updated_at":"2023-01-14T04:43:10.623Z","repository_link":"https://github.com/python-attrs/attrs/blob/main/.github/workflows/codeql-analysis.yml","dependencies":[{"id":6892449723,"package_name":"step-security/harden-runner","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":6892449724,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":6892449725,"package_name":"github/codeql-action/init","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":6892449726,"package_name":"github/codeql-action/analyze","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/pypi-package.yml","sha":null,"kind":"manifest","created_at":"2023-01-14T04:43:10.633Z","updated_at":"2023-01-14T04:43:10.633Z","repository_link":"https://github.com/python-attrs/attrs/blob/main/.github/workflows/pypi-package.yml","dependencies":[{"id":6892449727,"package_name":"step-security/harden-runner","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":6892449728,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":6892449729,"package_name":"pypa/gh-action-pypi-publish","ecosystem":"actions","requirements":"release/v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2023-09-29T08:34:17.893Z","updated_at":"2023-09-29T08:34:17.893Z","repository_link":"https://github.com/python-attrs/attrs/blob/main/pyproject.toml","dependencies":[{"id":14014510872,"package_name":"importlib_metadata","ecosystem":"pypi","requirements":"python_version\u003c'3.8'","direct":true,"kind":"runtime","optional":false}]}],"score":36.553855422275035,"created_at":"2025-09-04T15:51:15.822Z","updated_at":"2025-10-07T08:16:46.149Z","avatar_url":"https://github.com/python-attrs.png","language":"Python","category":null,"sub_category":null,"monthly_downloads":392796576,"funding_links":["https://github.com/sponsors/hynek","https://tidelift.com/funding/github/pypi/attrs","https://tidelift.com/?utm_source=lifter\u0026utm_medium=referral\u0026utm_campaign=hynek","https://polar.sh/"],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["closember","unit-testing","fuzzing","property-based-testing","autopep8","codeformatter","formatter","gofmt","pre-commit-hook","yapf"],"project_url":"https://science.ecosyste.ms/api/v1/projects/41113","html_url":"https://science.ecosyste.ms/projects/41113"}