{"id":70119,"name":"spinach","description":"Modern Redis task queue for Python 3","url":"https://github.com/nicolaslm/spinach","last_synced_at":"2025-09-08T15:00:59.441Z","repository":{"id":24711494,"uuid":"102268369","full_name":"NicolasLM/spinach","owner":"NicolasLM","description":"Modern Redis task queue for Python 3","archived":false,"fork":false,"pushed_at":"2024-11-18T13:49:45.000Z","size":249,"stargazers_count":64,"open_issues_count":7,"forks_count":4,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-08-19T03:34:15.682Z","etag":null,"topics":["asyncio","jobs","python","python3","queue","redis","tasks","thread"],"latest_commit_sha":null,"homepage":"https://spinach.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NicolasLM.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-09-03T13:58:29.000Z","updated_at":"2025-08-16T08:21:10.000Z","dependencies_parsed_at":"2024-01-16T06:16:43.829Z","dependency_job_id":"cbbbda72-8d43-497d-94b2-b7568209b2fa","html_url":"https://github.com/NicolasLM/spinach","commit_stats":{"total_commits":130,"total_committers":5,"mean_commits":26.0,"dds":0.0692307692307692,"last_synced_commit":"6e3356e34e104cd3aa136e47bf3a61778b68918e"},"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"purl":"pkg:github/NicolasLM/spinach","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NicolasLM","download_url":"https://codeload.github.com/NicolasLM/spinach/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/sbom","scorecard":{"id":101324,"data":{"date":"2025-08-11","repo":{"name":"github.com/NicolasLM/spinach","commit":"4aeba67d99dc5495d979294599edd5e972357d67"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.7,"checks":[{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/python-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/tests.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":3,"reason":"Found 5/16 approved changesets -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-publish.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/NicolasLM/spinach/python-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-publish.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/NicolasLM/spinach/python-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/NicolasLM/spinach/tests.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/NicolasLM/spinach/tests.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/NicolasLM/spinach/tests.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/NicolasLM/spinach/tests.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/python-publish.yml:20","Warn: pipCommand not pinned by hash: .github/workflows/python-publish.yml:21","Warn: pipCommand not pinned by hash: .github/workflows/tests.yml:30","Warn: pipCommand not pinned by hash: .github/workflows/tests.yml:31","Info:   0 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned","Info:   0 out of   4 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: BSD 2-Clause \"Simplified\" License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 27 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-15T10:11:03.539Z","repository_id":24711494,"created_at":"2025-08-15T10:11:03.539Z","updated_at":"2025-08-15T10:11:03.539Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274202747,"owners_count":25240371,"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-08T02:00:09.813Z","response_time":121,"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":"NicolasLM","name":"Nicolas Le Manchet","uuid":"7612656","kind":"user","description":"Senior Software Engineer","email":"","website":"https://lemanchet.fr","location":"Poland","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/7612656?u=8cd64238014f47cbe1c3337b9b9bddd401d91948\u0026v=4","repositories_count":35,"last_synced_at":"2024-03-18T06:10:22.353Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/NicolasLM","funding_links":[],"total_stars":1448,"followers":null,"following":null,"created_at":"2022-11-09T00:22:03.234Z","updated_at":"2024-03-18T06:10:24.450Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NicolasLM","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NicolasLM/repositories"},"packages":[{"id":2928870,"name":"spinach","ecosystem":"pypi","description":"Modern Redis task queue for Python 3","homepage":"https://github.com/NicolasLM/spinach","licenses":"BSD 2-clause","normalized_licenses":["BSD-2-Clause"],"repository_url":"https://github.com/NicolasLM/spinach","keywords_array":["task","queue","jobs","redis"],"namespace":null,"versions_count":23,"first_release_published_at":"2017-09-03T18:55:48.000Z","latest_release_published_at":"2024-11-18T13:50:10.000Z","latest_release_number":"0.0.25","last_synced_at":"2025-08-19T03:19:05.013Z","created_at":"2022-04-10T12:41:22.650Z","updated_at":"2025-08-19T03:45:00.014Z","registry_url":"https://pypi.org/project/spinach/","install_command":"pip install spinach --index-url https://pypi.org/simple","documentation_url":"https://spinach.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["Development Status :: 4 - Beta","Intended Audience :: Developers","License :: OSI Approved :: BSD License","Natural Language :: English","Programming Language :: Python :: 3","Programming Language :: Python :: 3 :: Only","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","Topic :: Software Development :: Libraries","Topic :: System :: Distributed Computing"],"normalized_name":"spinach","project_status":null},"repo_metadata":{"id":24711494,"uuid":"102268369","full_name":"NicolasLM/spinach","owner":"NicolasLM","description":"Modern Redis task queue for Python 3","archived":false,"fork":false,"pushed_at":"2024-11-18T13:49:45.000Z","size":249,"stargazers_count":63,"open_issues_count":7,"forks_count":4,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-07-01T21:50:00.638Z","etag":null,"topics":["asyncio","jobs","python","python3","queue","redis","tasks","thread"],"latest_commit_sha":null,"homepage":"https://spinach.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NicolasLM.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-09-03T13:58:29.000Z","updated_at":"2025-02-18T22:22:26.000Z","dependencies_parsed_at":"2024-01-16T06:16:43.829Z","dependency_job_id":"cbbbda72-8d43-497d-94b2-b7568209b2fa","html_url":"https://github.com/NicolasLM/spinach","commit_stats":{"total_commits":130,"total_committers":5,"mean_commits":26.0,"dds":0.0692307692307692,"last_synced_commit":"6e3356e34e104cd3aa136e47bf3a61778b68918e"},"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"purl":"pkg:github/NicolasLM/spinach","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NicolasLM","download_url":"https://codeload.github.com/NicolasLM/spinach/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/sbom","scorecard":{"id":101324,"data":{"date":"2025-08-11","repo":{"name":"github.com/NicolasLM/spinach","commit":"4aeba67d99dc5495d979294599edd5e972357d67"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.7,"checks":[{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/python-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/tests.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":3,"reason":"Found 5/16 approved changesets -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-publish.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/NicolasLM/spinach/python-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-publish.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/NicolasLM/spinach/python-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/NicolasLM/spinach/tests.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/NicolasLM/spinach/tests.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/NicolasLM/spinach/tests.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/NicolasLM/spinach/tests.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/python-publish.yml:20","Warn: pipCommand not pinned by hash: .github/workflows/python-publish.yml:21","Warn: pipCommand not pinned by hash: .github/workflows/tests.yml:30","Warn: pipCommand not pinned by hash: .github/workflows/tests.yml:31","Info:   0 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned","Info:   0 out of   4 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: BSD 2-Clause \"Simplified\" License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 27 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-15T10:11:03.539Z","repository_id":24711494,"created_at":"2025-08-15T10:11:03.539Z","updated_at":"2025-08-15T10:11:03.539Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271094038,"owners_count":24698150,"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-19T02:00:09.176Z","response_time":63,"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":"NicolasLM","name":"Nicolas Le Manchet","uuid":"7612656","kind":"user","description":"Senior Software Engineer","email":"","website":"https://lemanchet.fr","location":"Poland","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/7612656?u=8cd64238014f47cbe1c3337b9b9bddd401d91948\u0026v=4","repositories_count":35,"last_synced_at":"2024-03-18T06:10:22.353Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/NicolasLM","funding_links":[],"total_stars":1448,"followers":null,"following":null,"created_at":"2022-11-09T00:22:03.234Z","updated_at":"2024-03-18T06:10:24.450Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NicolasLM","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NicolasLM/repositories"},"tags":[{"name":"v0.0.24","sha":"42448654e66f7a943687ae030797df7ff58284da","kind":"commit","published_at":"2024-05-10T01:26:05.000Z","download_url":"https://codeload.github.com/NicolasLM/spinach/tar.gz/v0.0.24","html_url":"https://github.com/NicolasLM/spinach/releases/tag/v0.0.24","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/NicolasLM/spinach@v0.0.24","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.24","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.24/manifests"},{"name":"v0.0.23","sha":"f1d2cb829c6027093b684a758bf178089be977a7","kind":"commit","published_at":"2024-05-02T22:33:12.000Z","download_url":"https://codeload.github.com/NicolasLM/spinach/tar.gz/v0.0.23","html_url":"https://github.com/NicolasLM/spinach/releases/tag/v0.0.23","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/NicolasLM/spinach@v0.0.23","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.23","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.23/manifests"},{"name":"v0.0.22","sha":"f1f35a74bfb6125169e6e18bed87ac5114ee199c","kind":"commit","published_at":"2024-05-02T05:35:36.000Z","download_url":"https://codeload.github.com/NicolasLM/spinach/tar.gz/v0.0.22","html_url":"https://github.com/NicolasLM/spinach/releases/tag/v0.0.22","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/NicolasLM/spinach@v0.0.22","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.22","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.22/manifests"},{"name":"v0.0.21","sha":"634c8da3a11a4164184797bcc040802070fc4aed","kind":"commit","published_at":"2024-05-01T23:49:03.000Z","download_url":"https://codeload.github.com/NicolasLM/spinach/tar.gz/v0.0.21","html_url":"https://github.com/NicolasLM/spinach/releases/tag/v0.0.21","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/NicolasLM/spinach@v0.0.21","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.21","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.21/manifests"},{"name":"v0.0.20","sha":"7d9d4306399234075455bc018e8f98569f2392d8","kind":"commit","published_at":"2024-02-28T02:28:55.000Z","download_url":"https://codeload.github.com/NicolasLM/spinach/tar.gz/v0.0.20","html_url":"https://github.com/NicolasLM/spinach/releases/tag/v0.0.20","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/NicolasLM/spinach@v0.0.20","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.20","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.20/manifests"},{"name":"v0.0.19","sha":"ba6d1c2f3cfe2cb1b77d2a1823dde5836e8668df","kind":"commit","published_at":"2024-02-28T02:15:01.000Z","download_url":"https://codeload.github.com/NicolasLM/spinach/tar.gz/v0.0.19","html_url":"https://github.com/NicolasLM/spinach/releases/tag/v0.0.19","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/NicolasLM/spinach@v0.0.19","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.19","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.19/manifests"},{"name":"v0.0.18","sha":"96451a9a2dea183d9c434f5de2c9d047f929e053","kind":"commit","published_at":"2024-02-28T01:38:00.000Z","download_url":"https://codeload.github.com/NicolasLM/spinach/tar.gz/v0.0.18","html_url":"https://github.com/NicolasLM/spinach/releases/tag/v0.0.18","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/NicolasLM/spinach@v0.0.18","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.18","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.18/manifests"},{"name":"v0.0.17","sha":"6e3356e34e104cd3aa136e47bf3a61778b68918e","kind":"commit","published_at":"2022-10-13T16:06:06.000Z","download_url":"https://codeload.github.com/NicolasLM/spinach/tar.gz/v0.0.17","html_url":"https://github.com/NicolasLM/spinach/releases/tag/v0.0.17","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/NicolasLM/spinach@v0.0.17","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.17","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.17/manifests"},{"name":"v0.0.16","sha":"a6472240f1f109f672f40a1eb778710ccc604605","kind":"commit","published_at":"2022-05-03T08:34:03.000Z","download_url":"https://codeload.github.com/NicolasLM/spinach/tar.gz/v0.0.16","html_url":"https://github.com/NicolasLM/spinach/releases/tag/v0.0.16","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/NicolasLM/spinach@v0.0.16","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.16","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.16/manifests"},{"name":"v0.0.15","sha":"09c78189f2b82c21a9358b416648592bd1834f3d","kind":"commit","published_at":"2022-03-11T00:28:42.000Z","download_url":"https://codeload.github.com/NicolasLM/spinach/tar.gz/v0.0.15","html_url":"https://github.com/NicolasLM/spinach/releases/tag/v0.0.15","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/NicolasLM/spinach@v0.0.15","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.15","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.15/manifests"},{"name":"v0.0.14","sha":"8002ca6c49e59896334d7046dd701ab957453db8","kind":"commit","published_at":"2021-05-06T16:51:39.000Z","download_url":"https://codeload.github.com/NicolasLM/spinach/tar.gz/v0.0.14","html_url":"https://github.com/NicolasLM/spinach/releases/tag/v0.0.14","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/NicolasLM/spinach@v0.0.14","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.14/manifests"},{"name":"v0.0.13","sha":"d4510b8ff4718e3b45fd352084d522e4a554fc3c","kind":"commit","published_at":"2021-03-31T18:58:24.000Z","download_url":"https://codeload.github.com/NicolasLM/spinach/tar.gz/v0.0.13","html_url":"https://github.com/NicolasLM/spinach/releases/tag/v0.0.13","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/NicolasLM/spinach@v0.0.13","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.13/manifests"},{"name":"v0.0.12","sha":"b3430b4641d263d7dcc20fa63f89f5ba1a16e50f","kind":"commit","published_at":"2021-03-31T18:18:25.000Z","download_url":"https://codeload.github.com/NicolasLM/spinach/tar.gz/v0.0.12","html_url":"https://github.com/NicolasLM/spinach/releases/tag/v0.0.12","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/NicolasLM/spinach@v0.0.12","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.12/manifests"},{"name":"v0.0.11","sha":"dded2733856cb32805bbf578d8045ee6f5853a31","kind":"commit","published_at":"2019-07-16T07:38:28.000Z","download_url":"https://codeload.github.com/NicolasLM/spinach/tar.gz/v0.0.11","html_url":"https://github.com/NicolasLM/spinach/releases/tag/v0.0.11","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/NicolasLM/spinach@v0.0.11","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.11/manifests"},{"name":"v0.0.10","sha":"52c5b87f8694f80a5a8cc0ae6563ebd5547b6b25","kind":"commit","published_at":"2019-06-10T09:04:09.000Z","download_url":"https://codeload.github.com/NicolasLM/spinach/tar.gz/v0.0.10","html_url":"https://github.com/NicolasLM/spinach/releases/tag/v0.0.10","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/NicolasLM/spinach@v0.0.10","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.10/manifests"},{"name":"v0.0.9","sha":"b6353c13d6fa3444741b74eefe7dab6e2581bdba","kind":"commit","published_at":"2018-12-04T09:59:05.000Z","download_url":"https://codeload.github.com/NicolasLM/spinach/tar.gz/v0.0.9","html_url":"https://github.com/NicolasLM/spinach/releases/tag/v0.0.9","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/NicolasLM/spinach@v0.0.9","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.9/manifests"},{"name":"v0.0.8","sha":"1e206c10171b21c59b91607ab3a4afca4c4dea68","kind":"commit","published_at":"2018-10-11T20:37:24.000Z","download_url":"https://codeload.github.com/NicolasLM/spinach/tar.gz/v0.0.8","html_url":"https://github.com/NicolasLM/spinach/releases/tag/v0.0.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/NicolasLM/spinach@v0.0.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.8/manifests"},{"name":"v0.0.7","sha":"119b8482b6197d3a6ecdbd0f7c8a91aec2f3d5a1","kind":"commit","published_at":"2018-10-10T18:26:09.000Z","download_url":"https://codeload.github.com/NicolasLM/spinach/tar.gz/v0.0.7","html_url":"https://github.com/NicolasLM/spinach/releases/tag/v0.0.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/NicolasLM/spinach@v0.0.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.7/manifests"},{"name":"v0.0.6","sha":"0953012f6aa0c1f824996f63473cc7bb0427fe7e","kind":"commit","published_at":"2018-10-07T14:27:56.000Z","download_url":"https://codeload.github.com/NicolasLM/spinach/tar.gz/v0.0.6","html_url":"https://github.com/NicolasLM/spinach/releases/tag/v0.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/NicolasLM/spinach@v0.0.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.6/manifests"},{"name":"v0.0.5","sha":"59c96c9fee76161c7e9c9ed5baee981887f1da72","kind":"commit","published_at":"2018-03-06T20:08:13.000Z","download_url":"https://codeload.github.com/NicolasLM/spinach/tar.gz/v0.0.5","html_url":"https://github.com/NicolasLM/spinach/releases/tag/v0.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/NicolasLM/spinach@v0.0.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.5/manifests"},{"name":"v0.0.4","sha":"c0352e3ba47270a48f3d23a4881b1e7b6cc942df","kind":"commit","published_at":"2018-03-03T11:24:37.000Z","download_url":"https://codeload.github.com/NicolasLM/spinach/tar.gz/v0.0.4","html_url":"https://github.com/NicolasLM/spinach/releases/tag/v0.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/NicolasLM/spinach@v0.0.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.4/manifests"},{"name":"v0.0.3","sha":"38fd856e9da512e80885089e79bca6d3088c95a1","kind":"commit","published_at":"2018-02-07T18:34:01.000Z","download_url":"https://codeload.github.com/NicolasLM/spinach/tar.gz/v0.0.3","html_url":"https://github.com/NicolasLM/spinach/releases/tag/v0.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/NicolasLM/spinach@v0.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.3/manifests"},{"name":"v0.0.2","sha":"93ae3e864787d4b71918ed9afdfce9cc32394d3a","kind":"commit","published_at":"2017-09-03T19:25:37.000Z","download_url":"https://codeload.github.com/NicolasLM/spinach/tar.gz/v0.0.2","html_url":"https://github.com/NicolasLM/spinach/releases/tag/v0.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/NicolasLM/spinach@v0.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.2/manifests"},{"name":"v0.0.1","sha":"0eaf83194db7ca73bf4a74d0629c3cebec27d69c","kind":"commit","published_at":"2017-09-03T18:54:56.000Z","download_url":"https://codeload.github.com/NicolasLM/spinach/tar.gz/v0.0.1","html_url":"https://github.com/NicolasLM/spinach/releases/tag/v0.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/NicolasLM/spinach@v0.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags/v0.0.1/manifests"}]},"repo_metadata_updated_at":"2025-08-19T03:45:00.014Z","dependent_packages_count":0,"downloads":460,"downloads_period":"last-month","dependent_repos_count":4,"rankings":{"downloads":19.12685543220656,"dependent_repos_count":7.537737604474993,"dependent_packages_count":10.002282794063202,"stargazers_count":8.755296122317398,"forks_count":15.333248927664341,"docker_downloads_count":null,"average":12.1510841761453},"purl":"pkg:pypi/spinach","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/spinach","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/spinach","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/spinach/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-07-01T21:48:51.674Z","issues_count":23,"pull_requests_count":26,"avg_time_to_close_issue":10774260.421052631,"avg_time_to_close_pull_request":109994.65217391304,"issues_closed_count":19,"pull_requests_closed_count":23,"pull_request_authors_count":2,"issue_authors_count":5,"avg_comments_per_issue":4.130434782608695,"avg_comments_per_pull_request":1.5384615384615385,"merged_pull_requests_count":22,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/issues","maintainers":[{"login":"bigjools","count":16,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/bigjools"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/spinach/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/spinach/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/spinach/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/spinach/related_packages","maintainers":[{"uuid":"NicolasLM","login":"NicolasLM","name":null,"email":null,"url":null,"packages_count":6,"html_url":"https://pypi.org/user/NicolasLM/","role":null,"created_at":"2023-02-25T12:57:36.310Z","updated_at":"2023-02-25T12:57:36.310Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/NicolasLM/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":726167,"maintainers_count":308804,"namespaces_count":0,"keywords_count":238245,"github":"pypi","metadata":{"funded_packages_count":50579},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-09-08T05:32:36.857Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}}],"commits":{"id":663443,"full_name":"NicolasLM/spinach","default_branch":"master","committers":[{"name":"Nicolas Le Manchet","email":"nicolas@lemanchet.fr","login":"NicolasLM","count":124},{"name":"Julian Edwards","email":"bigjools@gmail.com","login":"bigjools","count":12},{"name":"Nicolas Simonds","email":"nisimond@cisco.com","login":"nisimond","count":10},{"name":"Nicolas Simonds","email":"github@submedia.net","login":"0xDEC0DE","count":3},{"name":"Julian Edwards","email":"juledwar@cisco.com","login":"juledwar","count":1}],"total_commits":150,"total_committers":5,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":30.0,"dds":0.17333333333333334,"past_year_committers":[{"name":"Nicolas Simonds","email":"nisimond@cisco.com","login":"nisimond","count":9},{"name":"Julian Edwards","email":"bigjools@gmail.com","login":"bigjools","count":8},{"name":"Nicolas Le Manchet","email":"nicolas@lemanchet.fr","login":"NicolasLM","count":3}],"past_year_total_commits":20,"past_year_total_committers":3,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":6.666666666666667,"past_year_dds":0.55,"last_synced_at":"2024-12-20T23:58:47.303Z","last_synced_commit":"4aeba67d99dc5495d979294599edd5e972357d67","created_at":"2023-03-09T10:08:52.435Z","updated_at":"2024-12-20T23:58:47.304Z","commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-07T00:00:09.744Z","repositories_count":5480019,"commits_count":853389126,"contributors_count":31098155,"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":"NicolasLM/spinach","html_url":"https://github.com/NicolasLM/spinach","last_synced_at":"2025-08-19T03:23:16.930Z","status":"error","issues_count":23,"pull_requests_count":26,"avg_time_to_close_issue":10774260.421052631,"avg_time_to_close_pull_request":109994.65217391304,"issues_closed_count":19,"pull_requests_closed_count":23,"pull_request_authors_count":2,"issue_authors_count":5,"avg_comments_per_issue":4.130434782608695,"avg_comments_per_pull_request":1.5384615384615385,"merged_pull_requests_count":22,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"created_at":"2023-05-15T00:32:04.471Z","updated_at":"2025-09-01T17:12:49.070Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/issues","issue_labels_count":{"bug":2,"enhancement":1},"pull_request_labels_count":{},"issue_author_associations_count":{"CONTRIBUTOR":17,"COLLABORATOR":3,"NONE":2},"pull_request_author_associations_count":{"COLLABORATOR":19,"CONTRIBUTOR":18},"issue_authors":{"juledwar":10,"0xDEC0DE":7,"bigjools":3,"lqmanh":1,"jezdez":1},"pull_request_authors":{"bigjools":19,"0xDEC0DE":18},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-04T00:00:25.939Z","repositories_count":10077808,"issues_count":31319768,"pull_requests_count":96023561,"authors_count":10691937,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{},"past_year_pull_request_author_associations_count":{"CONTRIBUTOR":1},"past_year_issue_authors":{},"past_year_pull_request_authors":{"0xDEC0DE":1},"maintainers":[{"login":"bigjools","count":22,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/bigjools"}],"active_maintainers":[]},"events":{"total":{"ReleaseEvent":1,"WatchEvent":2,"PushEvent":2,"PullRequestReviewCommentEvent":1,"PullRequestReviewEvent":2,"CreateEvent":2},"last_year":{"ReleaseEvent":1,"WatchEvent":2,"PushEvent":2,"PullRequestReviewCommentEvent":1,"PullRequestReviewEvent":2,"CreateEvent":2}},"keywords":["asyncio","jobs","python","python3","queue","redis","tasks","thread"],"dependencies":[{"ecosystem":"pypi","filepath":"setup.py","sha":null,"kind":"manifest","created_at":"2022-08-08T05:00:11.651Z","updated_at":"2022-08-08T05:00:11.651Z","repository_link":"https://github.com/NicolasLM/spinach/blob/master/setup.py","dependencies":[{"id":625961868,"package_name":"redis","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":625961869,"package_name":"blinker","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/python-publish.yml","sha":null,"kind":"manifest","created_at":"2024-01-16T06:16:42.611Z","updated_at":"2024-01-16T06:16:42.611Z","repository_link":"https://github.com/NicolasLM/spinach/blob/master/.github/workflows/python-publish.yml","dependencies":[{"id":15639390212,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":15639390213,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/tests.yml","sha":null,"kind":"manifest","created_at":"2024-01-16T06:16:42.733Z","updated_at":"2024-01-16T06:16:42.733Z","repository_link":"https://github.com/NicolasLM/spinach/blob/master/.github/workflows/tests.yml","dependencies":[{"id":15639390214,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":15639390215,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":15639390216,"package_name":"AndreMiras/coveralls-python-action","ecosystem":"actions","requirements":"develop","direct":true,"kind":"composite","optional":false},{"id":15639390221,"package_name":"redis","ecosystem":"actions","requirements":"*","direct":true,"kind":"docker","optional":false}]},{"ecosystem":"docker","filepath":"tests/docker-compose.yml","sha":null,"kind":"manifest","created_at":"2024-01-16T06:16:43.130Z","updated_at":"2024-01-16T06:16:43.130Z","repository_link":"https://github.com/NicolasLM/spinach/blob/master/tests/docker-compose.yml","dependencies":[{"id":15639390222,"package_name":"docker.io/redis","ecosystem":"docker","requirements":"latest","direct":true,"kind":"runtime","optional":false}]}],"score":12.014155195062772,"created_at":"2025-09-08T11:19:06.270Z","updated_at":"2025-10-07T08:25:53.682Z","avatar_url":"https://github.com/NicolasLM.png","language":"Python","category":null,"sub_category":null,"monthly_downloads":460,"funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://science.ecosyste.ms/api/v1/projects/70119","html_url":"https://science.ecosyste.ms/projects/70119"}