{"id":369315,"url":"https://github.com/kurtraschke/pyRFC3339","last_synced_at":"2026-08-24T12:34:17.769Z","repository":{"id":643910,"uuid":"285928","full_name":"kurtraschke/pyRFC3339","owner":"kurtraschke","description":"Python library for generating and parsing RFC 3339-compliant timestamps.","archived":false,"fork":false,"pushed_at":"2026-08-09T18:23:19.000Z","size":251,"stargazers_count":15,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-08-13T07:52:13.230Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pyrfc3339.readthedocs.io/","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/kurtraschke.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2009-08-23T20:36:54.000Z","updated_at":"2026-08-09T18:23:20.000Z","dependencies_parsed_at":"2026-08-06T02:35:38.564Z","dependency_job_id":null,"html_url":"https://github.com/kurtraschke/pyRFC3339","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/kurtraschke/pyRFC3339","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/sbom","scorecard":{"id":574093,"data":{"date":"2025-08-11","repo":{"name":"github.com/kurtraschke/pyRFC3339","commit":"2fb337c497daa31c7eeec8c0d38771acf3c04f45"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.1,"checks":[{"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":"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":"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":"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/pypi-publish.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:80: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:119: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-python.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-python.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/pypi-publish.yml:25","Info:   0 out of   7 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 third-party GitHubAction dependencies pinned","Info:   0 out of   1 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":"Code-Review","score":0,"reason":"Found 1/24 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/pypi-publish.yml:70","Warn: no topLevel permission defined: .github/workflows/pypi-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/test-python.yml:1"],"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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Signed-Releases","score":2,"reason":"1 out of the last 3 releases have a total of 1 signed artifacts.","details":["Info: signed release artifact: pyRFC3339-2.0.1-py3-none-any.whl.sigstore.json: https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","Warn: release artifact v1.1 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603","Warn: release artifact v2.0.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/183285619","Warn: release artifact v1.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603"],"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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/pypi-publish.yml:39"],"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":"SAST","score":8,"reason":"SAST tool is not run on all commits -- score normalized to 8","details":["Warn: 6 commits out of 7 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-20T17:11:19.852Z","repository_id":643910,"created_at":"2025-08-20T17:11:19.852Z","updated_at":"2025-08-20T17:11:19.852Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36601171,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-13T02:00:06.325Z","response_time":111,"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":"kurtraschke","name":"Kurt Raschke","uuid":"118546","kind":"user","description":"","email":"","website":"https://kurtraschke.com","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/118546?v=4","repositories_count":69,"last_synced_at":"2024-04-16T01:04:54.989Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/kurtraschke","funding_links":[],"total_stars":156,"followers":55,"following":0,"created_at":"2022-11-02T18:58:51.327Z","updated_at":"2024-04-16T01:05:07.682Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke/repositories"},"packages":[{"id":13411145,"name":"pyrfc3339","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/kurtraschke/pyRFC3339","licenses":"mit","normalized_licenses":[],"repository_url":"https://github.com/kurtraschke/pyRFC3339","keywords_array":["misc"],"namespace":"main","versions_count":1,"first_release_published_at":"2026-02-06T20:16:51.944Z","latest_release_published_at":"2026-02-06T20:16:51.944Z","latest_release_number":"1.1-3","last_synced_at":"2026-03-06T20:41:10.384Z","created_at":"2026-02-06T20:16:51.664Z","updated_at":"2026-08-13T08:46:21.944Z","registry_url":"https://launchpad.net/ubuntu/+source/pyrfc3339","install_command":"apt-get install pyrfc3339","documentation_url":null,"metadata":{"component":"main","architecture":"all","priority":"optional","binary":"python3-rfc3339","standards_version":"4.6.0","maintainer":"Debian Python Team \u003cteam+python@tracker.debian.org\u003e","build_depends":"debhelper-compat (= 13), dh-python, python3-all, python3-nose, python3-setuptools, python3-tz","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":643910,"uuid":"285928","full_name":"kurtraschke/pyRFC3339","owner":"kurtraschke","description":"Python library for generating and parsing RFC 3339-compliant timestamps.","archived":false,"fork":false,"pushed_at":"2026-08-09T18:23:19.000Z","size":251,"stargazers_count":15,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-08-13T07:52:13.230Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pyrfc3339.readthedocs.io/","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/kurtraschke.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2009-08-23T20:36:54.000Z","updated_at":"2026-08-09T18:23:20.000Z","dependencies_parsed_at":"2026-08-06T02:35:38.564Z","dependency_job_id":null,"html_url":"https://github.com/kurtraschke/pyRFC3339","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/kurtraschke/pyRFC3339","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/sbom","scorecard":{"id":574093,"data":{"date":"2025-08-11","repo":{"name":"github.com/kurtraschke/pyRFC3339","commit":"2fb337c497daa31c7eeec8c0d38771acf3c04f45"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.1,"checks":[{"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":"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":"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":"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/pypi-publish.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:80: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:119: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-python.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-python.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/pypi-publish.yml:25","Info:   0 out of   7 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 third-party GitHubAction dependencies pinned","Info:   0 out of   1 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":"Code-Review","score":0,"reason":"Found 1/24 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/pypi-publish.yml:70","Warn: no topLevel permission defined: .github/workflows/pypi-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/test-python.yml:1"],"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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Signed-Releases","score":2,"reason":"1 out of the last 3 releases have a total of 1 signed artifacts.","details":["Info: signed release artifact: pyRFC3339-2.0.1-py3-none-any.whl.sigstore.json: https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","Warn: release artifact v1.1 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603","Warn: release artifact v2.0.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/183285619","Warn: release artifact v1.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603"],"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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/pypi-publish.yml:39"],"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":"SAST","score":8,"reason":"SAST tool is not run on all commits -- score normalized to 8","details":["Warn: 6 commits out of 7 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-20T17:11:19.852Z","repository_id":643910,"created_at":"2025-08-20T17:11:19.852Z","updated_at":"2025-08-20T17:11:19.852Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36601171,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-13T02:00:06.325Z","response_time":111,"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":"kurtraschke","name":"Kurt Raschke","uuid":"118546","kind":"user","description":"","email":"","website":"https://kurtraschke.com","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/118546?v=4","repositories_count":69,"last_synced_at":"2024-04-16T01:04:54.989Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/kurtraschke","funding_links":[],"total_stars":156,"followers":55,"following":0,"created_at":"2022-11-02T18:58:51.327Z","updated_at":"2024-04-16T01:05:07.682Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke/repositories"},"tags":[{"name":"v2.1.0","sha":"ff6ec789381717903a84912ea7b6fa527b0d0deb","kind":"commit","published_at":"2025-08-23T16:22:25.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0/manifests"},{"name":"v2.0.1","sha":"a11f99fe020ee21076c90fc3d1ad5bf801742c57","kind":"commit","published_at":"2024-11-04T01:40:49.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1/manifests"},{"name":"v2.0","sha":"b326744f5556085b05db29a07e7c31de8459154c","kind":"commit","published_at":"2024-11-04T01:31:26.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0/manifests"},{"name":"v1.1","sha":"e30cc1555adce0ecc7bd65509a2249d47e5a41b4","kind":"commit","published_at":"2018-06-11T00:18:08.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1/manifests"},{"name":"v1.0","sha":"6ffad1620d6ece8bb8c4b93308aed8a312c96148","kind":"commit","published_at":"2015-11-09T03:58:46.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0/manifests"}]},"repo_metadata_updated_at":"2026-08-13T08:46:21.944Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:deb/ubuntu/pyrfc3339?arch=source\u0026distro=ubuntu-22.04\u0026repository_url=https://launchpad.net/ubuntu/jammy","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/pyrfc3339","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/pyrfc3339","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/pyrfc3339/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-10T05:31:44.139Z","issues_count":6,"pull_requests_count":60,"avg_time_to_close_issue":60821074.0,"avg_time_to_close_pull_request":9176624.5,"issues_closed_count":6,"pull_requests_closed_count":50,"pull_request_authors_count":10,"issue_authors_count":6,"avg_comments_per_issue":1.6666666666666667,"avg_comments_per_pull_request":0.21666666666666667,"merged_pull_requests_count":43,"bot_issues_count":1,"bot_pull_requests_count":47,"past_year_issues_count":0,"past_year_pull_requests_count":41,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":155155.75757575757,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":33,"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.07317073170731707,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":41,"past_year_merged_pull_requests_count":31,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/issues","maintainers":[{"login":"kurtraschke","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kurtraschke"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/pyrfc3339/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/pyrfc3339/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/pyrfc3339/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/pyrfc3339/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/pyrfc3339/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/pyrfc3339/codemeta","maintainers":[],"registry":{"name":"ubuntu-22.04","url":"https://launchpad.net/ubuntu/jammy","ecosystem":"ubuntu","default":false,"packages_count":34289,"maintainers_count":0,"namespaces_count":4,"keywords_count":1498,"github":"ubuntu","metadata":{"codename":"jammy","funded_packages_count":971},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:46.486Z","updated_at":"2026-08-24T05:06:06.213Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/namespaces"}},{"id":13402752,"name":"pyrfc3339","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/kurtraschke/pyRFC3339","licenses":"mit","normalized_licenses":[],"repository_url":"https://github.com/kurtraschke/pyRFC3339","keywords_array":["universe/misc"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-06T10:22:32.882Z","latest_release_published_at":"2026-02-06T10:22:32.882Z","latest_release_number":"1.1-4","last_synced_at":"2026-03-06T10:59:56.844Z","created_at":"2026-02-06T10:22:32.007Z","updated_at":"2026-08-13T08:46:21.940Z","registry_url":"https://launchpad.net/ubuntu/+source/pyrfc3339","install_command":"apt-get install pyrfc3339","documentation_url":null,"metadata":{"component":"universe","architecture":"all","priority":"optional","binary":"python3-rfc3339","standards_version":"4.6.1","maintainer":"Debian Python Team \u003cteam+python@tracker.debian.org\u003e","build_depends":"debhelper-compat (= 13), dh-python, python3-all, python3-setuptools, python3-tz","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":643910,"uuid":"285928","full_name":"kurtraschke/pyRFC3339","owner":"kurtraschke","description":"Python library for generating and parsing RFC 3339-compliant timestamps.","archived":false,"fork":false,"pushed_at":"2026-08-09T18:23:19.000Z","size":251,"stargazers_count":15,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-08-13T07:52:13.230Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pyrfc3339.readthedocs.io/","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/kurtraschke.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2009-08-23T20:36:54.000Z","updated_at":"2026-08-09T18:23:20.000Z","dependencies_parsed_at":"2026-08-06T02:35:38.564Z","dependency_job_id":null,"html_url":"https://github.com/kurtraschke/pyRFC3339","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/kurtraschke/pyRFC3339","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/sbom","scorecard":{"id":574093,"data":{"date":"2025-08-11","repo":{"name":"github.com/kurtraschke/pyRFC3339","commit":"2fb337c497daa31c7eeec8c0d38771acf3c04f45"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.1,"checks":[{"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":"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":"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":"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/pypi-publish.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:80: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:119: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-python.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-python.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/pypi-publish.yml:25","Info:   0 out of   7 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 third-party GitHubAction dependencies pinned","Info:   0 out of   1 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":"Code-Review","score":0,"reason":"Found 1/24 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/pypi-publish.yml:70","Warn: no topLevel permission defined: .github/workflows/pypi-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/test-python.yml:1"],"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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Signed-Releases","score":2,"reason":"1 out of the last 3 releases have a total of 1 signed artifacts.","details":["Info: signed release artifact: pyRFC3339-2.0.1-py3-none-any.whl.sigstore.json: https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","Warn: release artifact v1.1 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603","Warn: release artifact v2.0.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/183285619","Warn: release artifact v1.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603"],"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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/pypi-publish.yml:39"],"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":"SAST","score":8,"reason":"SAST tool is not run on all commits -- score normalized to 8","details":["Warn: 6 commits out of 7 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-20T17:11:19.852Z","repository_id":643910,"created_at":"2025-08-20T17:11:19.852Z","updated_at":"2025-08-20T17:11:19.852Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36601171,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-13T02:00:06.325Z","response_time":111,"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":"kurtraschke","name":"Kurt Raschke","uuid":"118546","kind":"user","description":"","email":"","website":"https://kurtraschke.com","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/118546?v=4","repositories_count":69,"last_synced_at":"2024-04-16T01:04:54.989Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/kurtraschke","funding_links":[],"total_stars":156,"followers":55,"following":0,"created_at":"2022-11-02T18:58:51.327Z","updated_at":"2024-04-16T01:05:07.682Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke/repositories"},"tags":[{"name":"v2.1.0","sha":"ff6ec789381717903a84912ea7b6fa527b0d0deb","kind":"commit","published_at":"2025-08-23T16:22:25.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0/manifests"},{"name":"v2.0.1","sha":"a11f99fe020ee21076c90fc3d1ad5bf801742c57","kind":"commit","published_at":"2024-11-04T01:40:49.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1/manifests"},{"name":"v2.0","sha":"b326744f5556085b05db29a07e7c31de8459154c","kind":"commit","published_at":"2024-11-04T01:31:26.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0/manifests"},{"name":"v1.1","sha":"e30cc1555adce0ecc7bd65509a2249d47e5a41b4","kind":"commit","published_at":"2018-06-11T00:18:08.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1/manifests"},{"name":"v1.0","sha":"6ffad1620d6ece8bb8c4b93308aed8a312c96148","kind":"commit","published_at":"2015-11-09T03:58:46.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0/manifests"}]},"repo_metadata_updated_at":"2026-08-13T08:46:21.939Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:deb/ubuntu/pyrfc3339?arch=source\u0026distro=ubuntu-24.04","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/pyrfc3339","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/pyrfc3339","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/pyrfc3339/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-10T05:31:44.139Z","issues_count":6,"pull_requests_count":60,"avg_time_to_close_issue":60821074.0,"avg_time_to_close_pull_request":9176624.5,"issues_closed_count":6,"pull_requests_closed_count":50,"pull_request_authors_count":10,"issue_authors_count":6,"avg_comments_per_issue":1.6666666666666667,"avg_comments_per_pull_request":0.21666666666666667,"merged_pull_requests_count":43,"bot_issues_count":1,"bot_pull_requests_count":47,"past_year_issues_count":0,"past_year_pull_requests_count":41,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":155155.75757575757,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":33,"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.07317073170731707,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":41,"past_year_merged_pull_requests_count":31,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/issues","maintainers":[{"login":"kurtraschke","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kurtraschke"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/pyrfc3339/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/pyrfc3339/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/pyrfc3339/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/pyrfc3339/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/pyrfc3339/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/pyrfc3339/codemeta","maintainers":[],"registry":{"name":"ubuntu-24.04","url":"https://launchpad.net/ubuntu/noble","ecosystem":"ubuntu","default":true,"packages_count":37306,"maintainers_count":0,"namespaces_count":4,"keywords_count":1697,"github":"ubuntu","metadata":{"codename":"noble","funded_packages_count":1237},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:45.928Z","updated_at":"2026-08-24T05:06:09.353Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/namespaces"}},{"id":13198363,"name":"python311Packages.pyrfc3339","ecosystem":"nixpkgs","description":"Generate and parse RFC 3339 timestamps","homepage":"https://github.com/kurtraschke/pyRFC3339","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/kurtraschke/pyRFC3339","keywords_array":["python"],"namespace":null,"versions_count":1,"first_release_published_at":"2026-02-02T00:36:45.881Z","latest_release_published_at":"2026-02-02T00:36:45.881Z","latest_release_number":"1.1","last_synced_at":"2026-03-08T12:08:32.236Z","created_at":"2026-02-02T00:36:33.115Z","updated_at":"2026-08-13T08:46:21.941Z","registry_url":"https://search.nixos.org/packages?channel=24.05\u0026query=python311Packages.pyrfc3339","install_command":"nix-env -iA nixpkgs.python311Packages.pyrfc3339","documentation_url":"https://github.com/NixOS/nixpkgs/blob/nixos-24.05/pkgs/development/python-modules/pyrfc3339/default.nix#L37","metadata":{"nix_attribute":"python3.11-pyrfc3339-1.1","position":"pkgs/development/python-modules/pyrfc3339/default.nix:37","platforms":["aarch64-linux","armv5tel-linux","armv6l-linux","armv7a-linux","armv7l-linux","i686-linux","loongarch64-linux","m68k-linux","microblaze-linux","microblazeel-linux","mips-linux","mips64-linux","mips64el-linux","mipsel-linux","powerpc64-linux","powerpc64le-linux","riscv32-linux","riscv64-linux","s390-linux","s390x-linux","x86_64-linux","x86_64-darwin","i686-darwin","aarch64-darwin","armv7a-darwin","i686-cygwin","x86_64-cygwin","x86_64-windows","i686-windows"],"broken":false,"insecure":false,"unfree":false,"outputs":["dist","out"],"upstream_ecosystem":"pypi","upstream_name":"pyrfc3339","upstream_purl":"pkg:pypi/pyrfc3339"},"repo_metadata":{"id":643910,"uuid":"285928","full_name":"kurtraschke/pyRFC3339","owner":"kurtraschke","description":"Python library for generating and parsing RFC 3339-compliant timestamps.","archived":false,"fork":false,"pushed_at":"2026-08-09T18:23:19.000Z","size":251,"stargazers_count":15,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-08-13T07:52:13.230Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pyrfc3339.readthedocs.io/","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/kurtraschke.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2009-08-23T20:36:54.000Z","updated_at":"2026-08-09T18:23:20.000Z","dependencies_parsed_at":"2026-08-06T02:35:38.564Z","dependency_job_id":null,"html_url":"https://github.com/kurtraschke/pyRFC3339","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/kurtraschke/pyRFC3339","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/sbom","scorecard":{"id":574093,"data":{"date":"2025-08-11","repo":{"name":"github.com/kurtraschke/pyRFC3339","commit":"2fb337c497daa31c7eeec8c0d38771acf3c04f45"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.1,"checks":[{"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":"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":"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":"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/pypi-publish.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:80: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:119: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-python.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-python.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/pypi-publish.yml:25","Info:   0 out of   7 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 third-party GitHubAction dependencies pinned","Info:   0 out of   1 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":"Code-Review","score":0,"reason":"Found 1/24 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/pypi-publish.yml:70","Warn: no topLevel permission defined: .github/workflows/pypi-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/test-python.yml:1"],"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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Signed-Releases","score":2,"reason":"1 out of the last 3 releases have a total of 1 signed artifacts.","details":["Info: signed release artifact: pyRFC3339-2.0.1-py3-none-any.whl.sigstore.json: https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","Warn: release artifact v1.1 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603","Warn: release artifact v2.0.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/183285619","Warn: release artifact v1.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603"],"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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/pypi-publish.yml:39"],"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":"SAST","score":8,"reason":"SAST tool is not run on all commits -- score normalized to 8","details":["Warn: 6 commits out of 7 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-20T17:11:19.852Z","repository_id":643910,"created_at":"2025-08-20T17:11:19.852Z","updated_at":"2025-08-20T17:11:19.852Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36601171,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-13T02:00:06.325Z","response_time":111,"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":"kurtraschke","name":"Kurt Raschke","uuid":"118546","kind":"user","description":"","email":"","website":"https://kurtraschke.com","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/118546?v=4","repositories_count":69,"last_synced_at":"2024-04-16T01:04:54.989Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/kurtraschke","funding_links":[],"total_stars":156,"followers":55,"following":0,"created_at":"2022-11-02T18:58:51.327Z","updated_at":"2024-04-16T01:05:07.682Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke/repositories"},"tags":[{"name":"v2.1.0","sha":"ff6ec789381717903a84912ea7b6fa527b0d0deb","kind":"commit","published_at":"2025-08-23T16:22:25.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0/manifests"},{"name":"v2.0.1","sha":"a11f99fe020ee21076c90fc3d1ad5bf801742c57","kind":"commit","published_at":"2024-11-04T01:40:49.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1/manifests"},{"name":"v2.0","sha":"b326744f5556085b05db29a07e7c31de8459154c","kind":"commit","published_at":"2024-11-04T01:31:26.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0/manifests"},{"name":"v1.1","sha":"e30cc1555adce0ecc7bd65509a2249d47e5a41b4","kind":"commit","published_at":"2018-06-11T00:18:08.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1/manifests"},{"name":"v1.0","sha":"6ffad1620d6ece8bb8c4b93308aed8a312c96148","kind":"commit","published_at":"2015-11-09T03:58:46.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0/manifests"}]},"repo_metadata_updated_at":"2026-08-13T08:46:21.941Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:nix/python311Packages.pyrfc3339?channel=24.05\u0026repository_url=https://channels.nixos.org/nixos-24.05","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/nixpkgs/python311Packages.pyrfc3339","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/nixpkgs/python311Packages.pyrfc3339","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/nixpkgs/python311Packages.pyrfc3339/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-10T05:31:44.139Z","issues_count":6,"pull_requests_count":60,"avg_time_to_close_issue":60821074.0,"avg_time_to_close_pull_request":9176624.5,"issues_closed_count":6,"pull_requests_closed_count":50,"pull_request_authors_count":10,"issue_authors_count":6,"avg_comments_per_issue":1.6666666666666667,"avg_comments_per_pull_request":0.21666666666666667,"merged_pull_requests_count":43,"bot_issues_count":1,"bot_pull_requests_count":47,"past_year_issues_count":0,"past_year_pull_requests_count":41,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":155155.75757575757,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":33,"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.07317073170731707,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":41,"past_year_merged_pull_requests_count":31,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/issues","maintainers":[{"login":"kurtraschke","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kurtraschke"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/packages/python311Packages.pyrfc3339/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/packages/python311Packages.pyrfc3339/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/packages/python311Packages.pyrfc3339/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/packages/python311Packages.pyrfc3339/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/packages/python311Packages.pyrfc3339/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/packages/python311Packages.pyrfc3339/codemeta","maintainers":[],"registry":{"name":"nixpkgs-24.05","url":"https://channels.nixos.org/nixos-24.05","ecosystem":"nixpkgs","default":false,"packages_count":116156,"maintainers_count":3383,"namespaces_count":0,"keywords_count":654,"github":"NixOS","metadata":{"funded_packages_count":3165},"icon_url":"https://github.com/NixOS.png","created_at":"2026-01-25T22:30:53.309Z","updated_at":"2026-08-24T05:01:24.965Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/namespaces"}},{"id":12897809,"name":"python314Packages.pyrfc3339","ecosystem":"nixpkgs","description":"Generate and parse RFC 3339 timestamps","homepage":"https://github.com/kurtraschke/pyRFC3339","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/kurtraschke/pyRFC3339","keywords_array":["python"],"namespace":null,"versions_count":2,"first_release_published_at":"2026-01-27T09:35:06.658Z","latest_release_published_at":"2026-03-07T09:26:17.959Z","latest_release_number":"2.1.0","last_synced_at":"2026-03-07T09:26:18.350Z","created_at":"2026-01-27T09:35:06.414Z","updated_at":"2026-08-13T08:46:21.959Z","registry_url":"https://search.nixos.org/packages?channel=unstable\u0026query=python314Packages.pyrfc3339","install_command":"nix-env -iA nixpkgs.python314Packages.pyrfc3339","documentation_url":"https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/development/python-modules/pyrfc3339/default.nix#L46","metadata":{"nix_attribute":"python3.14-pyrfc3339-2.1.0","position":"pkgs/development/python-modules/pyrfc3339/default.nix:46","platforms":["aarch64-linux","armv5tel-linux","armv6l-linux","armv7a-linux","armv7l-linux","i686-linux","loongarch64-linux","m68k-linux","microblaze-linux","microblazeel-linux","mips-linux","mips64-linux","mips64el-linux","mipsel-linux","powerpc-linux","powerpc64-linux","powerpc64le-linux","riscv32-linux","riscv64-linux","s390-linux","s390x-linux","x86_64-linux","x86_64-darwin","aarch64-darwin","aarch64-windows","x86_64-windows","i686-windows","i686-freebsd","x86_64-freebsd","aarch64-freebsd"],"broken":false,"insecure":false,"unfree":false,"outputs":["dist","out"],"upstream_ecosystem":"pypi","upstream_name":"pyrfc3339","upstream_purl":"pkg:pypi/pyrfc3339"},"repo_metadata":{"id":643910,"uuid":"285928","full_name":"kurtraschke/pyRFC3339","owner":"kurtraschke","description":"Python library for generating and parsing RFC 3339-compliant timestamps.","archived":false,"fork":false,"pushed_at":"2026-08-09T18:23:19.000Z","size":251,"stargazers_count":15,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-08-13T07:52:13.230Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pyrfc3339.readthedocs.io/","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/kurtraschke.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2009-08-23T20:36:54.000Z","updated_at":"2026-08-09T18:23:20.000Z","dependencies_parsed_at":"2026-08-06T02:35:38.564Z","dependency_job_id":null,"html_url":"https://github.com/kurtraschke/pyRFC3339","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/kurtraschke/pyRFC3339","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/sbom","scorecard":{"id":574093,"data":{"date":"2025-08-11","repo":{"name":"github.com/kurtraschke/pyRFC3339","commit":"2fb337c497daa31c7eeec8c0d38771acf3c04f45"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.1,"checks":[{"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":"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":"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":"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/pypi-publish.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:80: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:119: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-python.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-python.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/pypi-publish.yml:25","Info:   0 out of   7 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 third-party GitHubAction dependencies pinned","Info:   0 out of   1 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":"Code-Review","score":0,"reason":"Found 1/24 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/pypi-publish.yml:70","Warn: no topLevel permission defined: .github/workflows/pypi-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/test-python.yml:1"],"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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Signed-Releases","score":2,"reason":"1 out of the last 3 releases have a total of 1 signed artifacts.","details":["Info: signed release artifact: pyRFC3339-2.0.1-py3-none-any.whl.sigstore.json: https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","Warn: release artifact v1.1 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603","Warn: release artifact v2.0.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/183285619","Warn: release artifact v1.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603"],"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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/pypi-publish.yml:39"],"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":"SAST","score":8,"reason":"SAST tool is not run on all commits -- score normalized to 8","details":["Warn: 6 commits out of 7 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-20T17:11:19.852Z","repository_id":643910,"created_at":"2025-08-20T17:11:19.852Z","updated_at":"2025-08-20T17:11:19.852Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36601171,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-13T02:00:06.325Z","response_time":111,"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":"kurtraschke","name":"Kurt Raschke","uuid":"118546","kind":"user","description":"","email":"","website":"https://kurtraschke.com","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/118546?v=4","repositories_count":69,"last_synced_at":"2024-04-16T01:04:54.989Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/kurtraschke","funding_links":[],"total_stars":156,"followers":55,"following":0,"created_at":"2022-11-02T18:58:51.327Z","updated_at":"2024-04-16T01:05:07.682Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke/repositories"},"tags":[{"name":"v2.1.0","sha":"ff6ec789381717903a84912ea7b6fa527b0d0deb","kind":"commit","published_at":"2025-08-23T16:22:25.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0/manifests"},{"name":"v2.0.1","sha":"a11f99fe020ee21076c90fc3d1ad5bf801742c57","kind":"commit","published_at":"2024-11-04T01:40:49.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1/manifests"},{"name":"v2.0","sha":"b326744f5556085b05db29a07e7c31de8459154c","kind":"commit","published_at":"2024-11-04T01:31:26.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0/manifests"},{"name":"v1.1","sha":"e30cc1555adce0ecc7bd65509a2249d47e5a41b4","kind":"commit","published_at":"2018-06-11T00:18:08.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1/manifests"},{"name":"v1.0","sha":"6ffad1620d6ece8bb8c4b93308aed8a312c96148","kind":"commit","published_at":"2015-11-09T03:58:46.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0/manifests"}]},"repo_metadata_updated_at":"2026-08-13T08:46:21.959Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:nix/python314Packages.pyrfc3339?channel=unstable","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/nixpkgs/python314Packages.pyrfc3339","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/nixpkgs/python314Packages.pyrfc3339","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/nixpkgs/python314Packages.pyrfc3339/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-10T05:31:44.139Z","issues_count":6,"pull_requests_count":60,"avg_time_to_close_issue":60821074.0,"avg_time_to_close_pull_request":9176624.5,"issues_closed_count":6,"pull_requests_closed_count":50,"pull_request_authors_count":10,"issue_authors_count":6,"avg_comments_per_issue":1.6666666666666667,"avg_comments_per_pull_request":0.21666666666666667,"merged_pull_requests_count":43,"bot_issues_count":1,"bot_pull_requests_count":47,"past_year_issues_count":0,"past_year_pull_requests_count":41,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":155155.75757575757,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":33,"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.07317073170731707,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":41,"past_year_merged_pull_requests_count":31,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/issues","maintainers":[{"login":"kurtraschke","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kurtraschke"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/packages/python314Packages.pyrfc3339/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/packages/python314Packages.pyrfc3339/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/packages/python314Packages.pyrfc3339/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/packages/python314Packages.pyrfc3339/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/packages/python314Packages.pyrfc3339/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/packages/python314Packages.pyrfc3339/codemeta","maintainers":[],"registry":{"name":"nixpkgs-unstable","url":"https://channels.nixos.org/nixos-unstable","ecosystem":"nixpkgs","default":true,"packages_count":153756,"maintainers_count":4901,"namespaces_count":0,"keywords_count":3257,"github":"NixOS","metadata":{"funded_packages_count":5996},"icon_url":"https://github.com/NixOS.png","created_at":"2026-01-25T22:30:52.762Z","updated_at":"2026-08-24T05:00:11.845Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/namespaces"}},{"id":13562117,"name":"pyrfc3339","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/kurtraschke/pyRFC3339","licenses":"mit","normalized_licenses":[],"repository_url":"https://github.com/kurtraschke/pyRFC3339","keywords_array":["universe/misc"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-11T05:36:16.493Z","latest_release_published_at":"2026-02-11T05:36:16.493Z","latest_release_number":"1.1-4","last_synced_at":"2026-03-12T05:12:20.841Z","created_at":"2026-02-11T05:36:16.278Z","updated_at":"2026-08-13T08:46:22.033Z","registry_url":"https://launchpad.net/ubuntu/+source/pyrfc3339","install_command":"apt-get install pyrfc3339","documentation_url":null,"metadata":{"component":"universe","architecture":"all","priority":"optional","binary":"python3-rfc3339","standards_version":"4.6.1","maintainer":"Debian Python Team \u003cteam+python@tracker.debian.org\u003e","build_depends":"debhelper-compat (= 13), dh-python, python3-all, python3-setuptools, python3-tz","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":643910,"uuid":"285928","full_name":"kurtraschke/pyRFC3339","owner":"kurtraschke","description":"Python library for generating and parsing RFC 3339-compliant timestamps.","archived":false,"fork":false,"pushed_at":"2026-08-09T18:23:19.000Z","size":251,"stargazers_count":15,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-08-13T07:52:13.230Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pyrfc3339.readthedocs.io/","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/kurtraschke.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2009-08-23T20:36:54.000Z","updated_at":"2026-08-09T18:23:20.000Z","dependencies_parsed_at":"2026-08-06T02:35:38.564Z","dependency_job_id":null,"html_url":"https://github.com/kurtraschke/pyRFC3339","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/kurtraschke/pyRFC3339","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/sbom","scorecard":{"id":574093,"data":{"date":"2025-08-11","repo":{"name":"github.com/kurtraschke/pyRFC3339","commit":"2fb337c497daa31c7eeec8c0d38771acf3c04f45"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.1,"checks":[{"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":"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":"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":"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/pypi-publish.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:80: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:119: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-python.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-python.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/pypi-publish.yml:25","Info:   0 out of   7 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 third-party GitHubAction dependencies pinned","Info:   0 out of   1 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":"Code-Review","score":0,"reason":"Found 1/24 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/pypi-publish.yml:70","Warn: no topLevel permission defined: .github/workflows/pypi-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/test-python.yml:1"],"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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Signed-Releases","score":2,"reason":"1 out of the last 3 releases have a total of 1 signed artifacts.","details":["Info: signed release artifact: pyRFC3339-2.0.1-py3-none-any.whl.sigstore.json: https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","Warn: release artifact v1.1 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603","Warn: release artifact v2.0.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/183285619","Warn: release artifact v1.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603"],"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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/pypi-publish.yml:39"],"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":"SAST","score":8,"reason":"SAST tool is not run on all commits -- score normalized to 8","details":["Warn: 6 commits out of 7 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-20T17:11:19.852Z","repository_id":643910,"created_at":"2025-08-20T17:11:19.852Z","updated_at":"2025-08-20T17:11:19.852Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36601171,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-13T02:00:06.325Z","response_time":111,"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":"kurtraschke","name":"Kurt Raschke","uuid":"118546","kind":"user","description":"","email":"","website":"https://kurtraschke.com","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/118546?v=4","repositories_count":69,"last_synced_at":"2024-04-16T01:04:54.989Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/kurtraschke","funding_links":[],"total_stars":156,"followers":55,"following":0,"created_at":"2022-11-02T18:58:51.327Z","updated_at":"2024-04-16T01:05:07.682Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke/repositories"},"tags":[{"name":"v2.1.0","sha":"ff6ec789381717903a84912ea7b6fa527b0d0deb","kind":"commit","published_at":"2025-08-23T16:22:25.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0/manifests"},{"name":"v2.0.1","sha":"a11f99fe020ee21076c90fc3d1ad5bf801742c57","kind":"commit","published_at":"2024-11-04T01:40:49.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1/manifests"},{"name":"v2.0","sha":"b326744f5556085b05db29a07e7c31de8459154c","kind":"commit","published_at":"2024-11-04T01:31:26.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0/manifests"},{"name":"v1.1","sha":"e30cc1555adce0ecc7bd65509a2249d47e5a41b4","kind":"commit","published_at":"2018-06-11T00:18:08.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1/manifests"},{"name":"v1.0","sha":"6ffad1620d6ece8bb8c4b93308aed8a312c96148","kind":"commit","published_at":"2015-11-09T03:58:46.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0/manifests"}]},"repo_metadata_updated_at":"2026-08-13T08:46:22.032Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:deb/ubuntu/pyrfc3339?arch=source\u0026distro=ubuntu-23.04\u0026repository_url=https://launchpad.net/ubuntu/lunar","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/pyrfc3339","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/pyrfc3339","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/pyrfc3339/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-10T05:31:44.139Z","issues_count":6,"pull_requests_count":60,"avg_time_to_close_issue":60821074.0,"avg_time_to_close_pull_request":9176624.5,"issues_closed_count":6,"pull_requests_closed_count":50,"pull_request_authors_count":10,"issue_authors_count":6,"avg_comments_per_issue":1.6666666666666667,"avg_comments_per_pull_request":0.21666666666666667,"merged_pull_requests_count":43,"bot_issues_count":1,"bot_pull_requests_count":47,"past_year_issues_count":0,"past_year_pull_requests_count":41,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":155155.75757575757,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":33,"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.07317073170731707,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":41,"past_year_merged_pull_requests_count":31,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/issues","maintainers":[{"login":"kurtraschke","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kurtraschke"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/pyrfc3339/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/pyrfc3339/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/pyrfc3339/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/pyrfc3339/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/pyrfc3339/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/pyrfc3339/codemeta","maintainers":[],"registry":{"name":"ubuntu-23.04","url":"https://launchpad.net/ubuntu/lunar","ecosystem":"ubuntu","default":false,"packages_count":36116,"maintainers_count":0,"namespaces_count":4,"keywords_count":999,"github":"ubuntu","metadata":{"codename":"lunar","mirror":"http://old-releases.ubuntu.com/ubuntu","funded_packages_count":1100},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:49.117Z","updated_at":"2026-08-24T05:06:12.490Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/namespaces"}},{"id":13462685,"name":"pyrfc3339","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/kurtraschke/pyRFC3339","licenses":"mit","normalized_licenses":[],"repository_url":"https://github.com/kurtraschke/pyRFC3339","keywords_array":["universe/misc"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-09T11:04:50.193Z","latest_release_published_at":"2026-02-09T11:04:50.193Z","latest_release_number":"1.1-4","last_synced_at":"2026-03-09T11:08:02.316Z","created_at":"2026-02-09T11:04:49.766Z","updated_at":"2026-08-13T08:46:22.038Z","registry_url":"https://launchpad.net/ubuntu/+source/pyrfc3339","install_command":"apt-get install pyrfc3339","documentation_url":null,"metadata":{"component":"universe","architecture":"all","priority":"optional","binary":"python3-rfc3339","standards_version":"4.6.1","maintainer":"Debian Python Team \u003cteam+python@tracker.debian.org\u003e","build_depends":"debhelper-compat (= 13), dh-python, python3-all, python3-setuptools, python3-tz","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":643910,"uuid":"285928","full_name":"kurtraschke/pyRFC3339","owner":"kurtraschke","description":"Python library for generating and parsing RFC 3339-compliant timestamps.","archived":false,"fork":false,"pushed_at":"2026-08-09T18:23:19.000Z","size":251,"stargazers_count":15,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-08-13T07:52:13.230Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pyrfc3339.readthedocs.io/","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/kurtraschke.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2009-08-23T20:36:54.000Z","updated_at":"2026-08-09T18:23:20.000Z","dependencies_parsed_at":"2026-08-06T02:35:38.564Z","dependency_job_id":null,"html_url":"https://github.com/kurtraschke/pyRFC3339","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/kurtraschke/pyRFC3339","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/sbom","scorecard":{"id":574093,"data":{"date":"2025-08-11","repo":{"name":"github.com/kurtraschke/pyRFC3339","commit":"2fb337c497daa31c7eeec8c0d38771acf3c04f45"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.1,"checks":[{"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":"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":"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":"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/pypi-publish.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:80: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:119: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-python.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-python.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/pypi-publish.yml:25","Info:   0 out of   7 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 third-party GitHubAction dependencies pinned","Info:   0 out of   1 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":"Code-Review","score":0,"reason":"Found 1/24 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/pypi-publish.yml:70","Warn: no topLevel permission defined: .github/workflows/pypi-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/test-python.yml:1"],"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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Signed-Releases","score":2,"reason":"1 out of the last 3 releases have a total of 1 signed artifacts.","details":["Info: signed release artifact: pyRFC3339-2.0.1-py3-none-any.whl.sigstore.json: https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","Warn: release artifact v1.1 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603","Warn: release artifact v2.0.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/183285619","Warn: release artifact v1.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603"],"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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/pypi-publish.yml:39"],"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":"SAST","score":8,"reason":"SAST tool is not run on all commits -- score normalized to 8","details":["Warn: 6 commits out of 7 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-20T17:11:19.852Z","repository_id":643910,"created_at":"2025-08-20T17:11:19.852Z","updated_at":"2025-08-20T17:11:19.852Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36601171,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-13T02:00:06.325Z","response_time":111,"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":"kurtraschke","name":"Kurt Raschke","uuid":"118546","kind":"user","description":"","email":"","website":"https://kurtraschke.com","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/118546?v=4","repositories_count":69,"last_synced_at":"2024-04-16T01:04:54.989Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/kurtraschke","funding_links":[],"total_stars":156,"followers":55,"following":0,"created_at":"2022-11-02T18:58:51.327Z","updated_at":"2024-04-16T01:05:07.682Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke/repositories"},"tags":[{"name":"v2.1.0","sha":"ff6ec789381717903a84912ea7b6fa527b0d0deb","kind":"commit","published_at":"2025-08-23T16:22:25.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0/manifests"},{"name":"v2.0.1","sha":"a11f99fe020ee21076c90fc3d1ad5bf801742c57","kind":"commit","published_at":"2024-11-04T01:40:49.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1/manifests"},{"name":"v2.0","sha":"b326744f5556085b05db29a07e7c31de8459154c","kind":"commit","published_at":"2024-11-04T01:31:26.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0/manifests"},{"name":"v1.1","sha":"e30cc1555adce0ecc7bd65509a2249d47e5a41b4","kind":"commit","published_at":"2018-06-11T00:18:08.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1/manifests"},{"name":"v1.0","sha":"6ffad1620d6ece8bb8c4b93308aed8a312c96148","kind":"commit","published_at":"2015-11-09T03:58:46.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0/manifests"}]},"repo_metadata_updated_at":"2026-08-13T08:46:22.038Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:deb/ubuntu/pyrfc3339?arch=source\u0026distro=ubuntu-24.10\u0026repository_url=https://launchpad.net/ubuntu/oracular","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/pyrfc3339","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/pyrfc3339","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/pyrfc3339/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-10T05:31:44.139Z","issues_count":6,"pull_requests_count":60,"avg_time_to_close_issue":60821074.0,"avg_time_to_close_pull_request":9176624.5,"issues_closed_count":6,"pull_requests_closed_count":50,"pull_request_authors_count":10,"issue_authors_count":6,"avg_comments_per_issue":1.6666666666666667,"avg_comments_per_pull_request":0.21666666666666667,"merged_pull_requests_count":43,"bot_issues_count":1,"bot_pull_requests_count":47,"past_year_issues_count":0,"past_year_pull_requests_count":41,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":155155.75757575757,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":33,"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.07317073170731707,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":41,"past_year_merged_pull_requests_count":31,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/issues","maintainers":[{"login":"kurtraschke","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kurtraschke"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/pyrfc3339/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/pyrfc3339/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/pyrfc3339/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/pyrfc3339/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/pyrfc3339/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/pyrfc3339/codemeta","maintainers":[],"registry":{"name":"ubuntu-24.10","url":"https://launchpad.net/ubuntu/oracular","ecosystem":"ubuntu","default":false,"packages_count":38437,"maintainers_count":0,"namespaces_count":4,"keywords_count":1440,"github":"ubuntu","metadata":{"codename":"oracular","mirror":"http://old-releases.ubuntu.com/ubuntu","funded_packages_count":1308},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:48.028Z","updated_at":"2026-08-24T05:05:15.657Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/namespaces"}},{"id":13798868,"name":"pyrfc3339","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/kurtraschke/pyRFC3339","licenses":"mit","normalized_licenses":["MIT"],"repository_url":"https://github.com/kurtraschke/pyRFC3339","keywords_array":["universe/misc"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-13T17:02:11.621Z","latest_release_published_at":"2026-02-13T17:02:11.621Z","latest_release_number":"1.1-4","last_synced_at":"2026-03-14T00:19:08.892Z","created_at":"2026-02-13T17:02:10.869Z","updated_at":"2026-08-13T08:46:22.046Z","registry_url":"https://launchpad.net/ubuntu/+source/pyrfc3339","install_command":"apt-get install pyrfc3339","documentation_url":null,"metadata":{"component":"universe","architecture":"all","priority":"optional","binary":"python3-rfc3339","standards_version":"4.6.1","maintainer":"Debian Python Team \u003cteam+python@tracker.debian.org\u003e","build_depends":"debhelper-compat (= 13), dh-python, python3-all, python3-setuptools, python3-tz","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":643910,"uuid":"285928","full_name":"kurtraschke/pyRFC3339","owner":"kurtraschke","description":"Python library for generating and parsing RFC 3339-compliant timestamps.","archived":false,"fork":false,"pushed_at":"2026-08-09T18:23:19.000Z","size":251,"stargazers_count":15,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-08-13T07:52:13.230Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pyrfc3339.readthedocs.io/","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/kurtraschke.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2009-08-23T20:36:54.000Z","updated_at":"2026-08-09T18:23:20.000Z","dependencies_parsed_at":"2026-08-06T02:35:38.564Z","dependency_job_id":null,"html_url":"https://github.com/kurtraschke/pyRFC3339","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/kurtraschke/pyRFC3339","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/sbom","scorecard":{"id":574093,"data":{"date":"2025-08-11","repo":{"name":"github.com/kurtraschke/pyRFC3339","commit":"2fb337c497daa31c7eeec8c0d38771acf3c04f45"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.1,"checks":[{"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":"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":"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":"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/pypi-publish.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:80: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:119: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-python.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-python.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/pypi-publish.yml:25","Info:   0 out of   7 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 third-party GitHubAction dependencies pinned","Info:   0 out of   1 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":"Code-Review","score":0,"reason":"Found 1/24 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/pypi-publish.yml:70","Warn: no topLevel permission defined: .github/workflows/pypi-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/test-python.yml:1"],"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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Signed-Releases","score":2,"reason":"1 out of the last 3 releases have a total of 1 signed artifacts.","details":["Info: signed release artifact: pyRFC3339-2.0.1-py3-none-any.whl.sigstore.json: https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","Warn: release artifact v1.1 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603","Warn: release artifact v2.0.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/183285619","Warn: release artifact v1.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603"],"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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/pypi-publish.yml:39"],"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":"SAST","score":8,"reason":"SAST tool is not run on all commits -- score normalized to 8","details":["Warn: 6 commits out of 7 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-20T17:11:19.852Z","repository_id":643910,"created_at":"2025-08-20T17:11:19.852Z","updated_at":"2025-08-20T17:11:19.852Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36601171,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-13T02:00:06.325Z","response_time":111,"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":"kurtraschke","name":"Kurt Raschke","uuid":"118546","kind":"user","description":"","email":"","website":"https://kurtraschke.com","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/118546?v=4","repositories_count":69,"last_synced_at":"2024-04-16T01:04:54.989Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/kurtraschke","funding_links":[],"total_stars":156,"followers":55,"following":0,"created_at":"2022-11-02T18:58:51.327Z","updated_at":"2024-04-16T01:05:07.682Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke/repositories"},"tags":[{"name":"v2.1.0","sha":"ff6ec789381717903a84912ea7b6fa527b0d0deb","kind":"commit","published_at":"2025-08-23T16:22:25.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0/manifests"},{"name":"v2.0.1","sha":"a11f99fe020ee21076c90fc3d1ad5bf801742c57","kind":"commit","published_at":"2024-11-04T01:40:49.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1/manifests"},{"name":"v2.0","sha":"b326744f5556085b05db29a07e7c31de8459154c","kind":"commit","published_at":"2024-11-04T01:31:26.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0/manifests"},{"name":"v1.1","sha":"e30cc1555adce0ecc7bd65509a2249d47e5a41b4","kind":"commit","published_at":"2018-06-11T00:18:08.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1/manifests"},{"name":"v1.0","sha":"6ffad1620d6ece8bb8c4b93308aed8a312c96148","kind":"commit","published_at":"2015-11-09T03:58:46.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0/manifests"}]},"repo_metadata_updated_at":"2026-08-13T08:46:22.046Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:deb/ubuntu/pyrfc3339?arch=source\u0026distro=ubuntu-23.10\u0026repository_url=https://launchpad.net/ubuntu/mantic","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/pyrfc3339","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/pyrfc3339","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/pyrfc3339/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-10T05:31:44.139Z","issues_count":6,"pull_requests_count":60,"avg_time_to_close_issue":60821074.0,"avg_time_to_close_pull_request":9176624.5,"issues_closed_count":6,"pull_requests_closed_count":50,"pull_request_authors_count":10,"issue_authors_count":6,"avg_comments_per_issue":1.6666666666666667,"avg_comments_per_pull_request":0.21666666666666667,"merged_pull_requests_count":43,"bot_issues_count":1,"bot_pull_requests_count":47,"past_year_issues_count":0,"past_year_pull_requests_count":41,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":155155.75757575757,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":33,"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.07317073170731707,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":41,"past_year_merged_pull_requests_count":31,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/issues","maintainers":[{"login":"kurtraschke","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kurtraschke"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/pyrfc3339/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/pyrfc3339/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/pyrfc3339/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/pyrfc3339/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/pyrfc3339/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/pyrfc3339/codemeta","maintainers":[],"registry":{"name":"ubuntu-23.10","url":"https://launchpad.net/ubuntu/mantic","ecosystem":"ubuntu","default":false,"packages_count":36642,"maintainers_count":0,"namespaces_count":4,"keywords_count":2213,"github":"ubuntu","metadata":{"codename":"mantic","mirror":"http://old-releases.ubuntu.com/ubuntu","funded_packages_count":1334},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:48.636Z","updated_at":"2026-08-24T05:06:10.948Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/namespaces"}},{"id":14512877,"name":"dev-python/pyrfc3339","ecosystem":"gentoo","description":"Generates and parses RFC 3339 timestamps","homepage":"https://github.com/kurtraschke/pyRFC3339/","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/kurtraschke/pyRFC3339","keywords_array":["amd64","arm","arm64","~ppc64","~riscv","x86"],"namespace":"dev-python","versions_count":1,"first_release_published_at":"2026-05-11T16:39:47.000Z","latest_release_published_at":"2026-05-11T16:39:47.000Z","latest_release_number":"2.1.0","last_synced_at":"2026-05-27T02:33:36.372Z","created_at":"2026-05-27T02:33:35.853Z","updated_at":"2026-08-13T08:46:22.052Z","registry_url":"https://packages.gentoo.org/packages/dev-python/pyrfc3339","install_command":"emerge dev-python/pyrfc3339","documentation_url":"https://packages.gentoo.org/packages/dev-python/pyrfc3339","metadata":{"category":"dev-python","slot":"0","eapi":"8","inherit":"distutils-r1","iuse":"test python_targets_pypy3_11 python_targets_python3_11 python_targets_python3_12 python_targets_python3_13 python_targets_python3_14"},"repo_metadata":{"id":643910,"uuid":"285928","full_name":"kurtraschke/pyRFC3339","owner":"kurtraschke","description":"Python library for generating and parsing RFC 3339-compliant timestamps.","archived":false,"fork":false,"pushed_at":"2026-08-09T18:23:19.000Z","size":251,"stargazers_count":15,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-08-13T07:52:13.230Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pyrfc3339.readthedocs.io/","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/kurtraschke.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2009-08-23T20:36:54.000Z","updated_at":"2026-08-09T18:23:20.000Z","dependencies_parsed_at":"2026-08-06T02:35:38.564Z","dependency_job_id":null,"html_url":"https://github.com/kurtraschke/pyRFC3339","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/kurtraschke/pyRFC3339","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/sbom","scorecard":{"id":574093,"data":{"date":"2025-08-11","repo":{"name":"github.com/kurtraschke/pyRFC3339","commit":"2fb337c497daa31c7eeec8c0d38771acf3c04f45"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.1,"checks":[{"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":"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":"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":"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/pypi-publish.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:80: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:119: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-python.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-python.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/pypi-publish.yml:25","Info:   0 out of   7 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 third-party GitHubAction dependencies pinned","Info:   0 out of   1 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":"Code-Review","score":0,"reason":"Found 1/24 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/pypi-publish.yml:70","Warn: no topLevel permission defined: .github/workflows/pypi-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/test-python.yml:1"],"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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Signed-Releases","score":2,"reason":"1 out of the last 3 releases have a total of 1 signed artifacts.","details":["Info: signed release artifact: pyRFC3339-2.0.1-py3-none-any.whl.sigstore.json: https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","Warn: release artifact v1.1 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603","Warn: release artifact v2.0.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/183285619","Warn: release artifact v1.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603"],"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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/pypi-publish.yml:39"],"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":"SAST","score":8,"reason":"SAST tool is not run on all commits -- score normalized to 8","details":["Warn: 6 commits out of 7 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-20T17:11:19.852Z","repository_id":643910,"created_at":"2025-08-20T17:11:19.852Z","updated_at":"2025-08-20T17:11:19.852Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36601171,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-13T02:00:06.325Z","response_time":111,"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":"kurtraschke","name":"Kurt Raschke","uuid":"118546","kind":"user","description":"","email":"","website":"https://kurtraschke.com","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/118546?v=4","repositories_count":69,"last_synced_at":"2024-04-16T01:04:54.989Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/kurtraschke","funding_links":[],"total_stars":156,"followers":55,"following":0,"created_at":"2022-11-02T18:58:51.327Z","updated_at":"2024-04-16T01:05:07.682Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke/repositories"},"tags":[{"name":"v2.1.0","sha":"ff6ec789381717903a84912ea7b6fa527b0d0deb","kind":"commit","published_at":"2025-08-23T16:22:25.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0/manifests"},{"name":"v2.0.1","sha":"a11f99fe020ee21076c90fc3d1ad5bf801742c57","kind":"commit","published_at":"2024-11-04T01:40:49.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1/manifests"},{"name":"v2.0","sha":"b326744f5556085b05db29a07e7c31de8459154c","kind":"commit","published_at":"2024-11-04T01:31:26.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0/manifests"},{"name":"v1.1","sha":"e30cc1555adce0ecc7bd65509a2249d47e5a41b4","kind":"commit","published_at":"2018-06-11T00:18:08.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1/manifests"},{"name":"v1.0","sha":"6ffad1620d6ece8bb8c4b93308aed8a312c96148","kind":"commit","published_at":"2015-11-09T03:58:46.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0/manifests"}]},"repo_metadata_updated_at":"2026-08-13T08:46:22.051Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:gentoo/dev-python/pyrfc3339","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/gentoo/dev-python/pyrfc3339","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/gentoo/dev-python/pyrfc3339","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/gentoo/dev-python/pyrfc3339/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-10T05:31:44.139Z","issues_count":6,"pull_requests_count":60,"avg_time_to_close_issue":60821074.0,"avg_time_to_close_pull_request":9176624.5,"issues_closed_count":6,"pull_requests_closed_count":50,"pull_request_authors_count":10,"issue_authors_count":6,"avg_comments_per_issue":1.6666666666666667,"avg_comments_per_pull_request":0.21666666666666667,"merged_pull_requests_count":43,"bot_issues_count":1,"bot_pull_requests_count":47,"past_year_issues_count":0,"past_year_pull_requests_count":41,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":155155.75757575757,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":33,"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.07317073170731707,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":41,"past_year_merged_pull_requests_count":31,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/issues","maintainers":[{"login":"kurtraschke","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kurtraschke"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/gentoo-portage/packages/dev-python%2Fpyrfc3339/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/gentoo-portage/packages/dev-python%2Fpyrfc3339/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/gentoo-portage/packages/dev-python%2Fpyrfc3339/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/gentoo-portage/packages/dev-python%2Fpyrfc3339/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/gentoo-portage/packages/dev-python%2Fpyrfc3339/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/gentoo-portage/packages/dev-python%2Fpyrfc3339/codemeta","maintainers":[],"registry":{"name":"gentoo-portage","url":"https://packages.gentoo.org/","ecosystem":"gentoo","default":true,"packages_count":19524,"maintainers_count":0,"namespaces_count":174,"keywords_count":1054,"github":"gentoo","metadata":{"snapshot_url":"https://distfiles.gentoo.org/snapshots/portage-latest.tar.xz","funded_packages_count":620},"icon_url":"https://github.com/gentoo.png","created_at":"2026-05-26T08:59:24.155Z","updated_at":"2026-08-24T05:05:20.930Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gentoo-portage/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/gentoo-portage/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/gentoo-portage/namespaces"}},{"id":13305719,"name":"python311Packages.pyRFC3339","ecosystem":"nixpkgs","description":"Generate and parse RFC 3339 timestamps","homepage":"https://github.com/kurtraschke/pyRFC3339","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/kurtraschke/pyRFC3339","keywords_array":["python"],"namespace":null,"versions_count":1,"first_release_published_at":"2026-02-02T07:03:30.536Z","latest_release_published_at":"2026-02-02T07:03:30.536Z","latest_release_number":"1.1","last_synced_at":"2026-03-07T10:36:08.569Z","created_at":"2026-02-02T07:03:30.291Z","updated_at":"2026-08-13T08:46:22.055Z","registry_url":"https://search.nixos.org/packages?channel=23.11\u0026query=python311Packages.pyRFC3339","install_command":"nix-env -iA nixpkgs.python311Packages.pyRFC3339","documentation_url":"https://github.com/NixOS/nixpkgs/blob/nixos-23.11/pkgs/development/python-modules/pyrfc3339/default.nix#L21","metadata":{"nix_attribute":"python3.11-pyRFC3339-1.1","position":"pkgs/development/python-modules/pyrfc3339/default.nix:21","platforms":["aarch64-linux","armv5tel-linux","armv6l-linux","armv7a-linux","armv7l-linux","i686-linux","loongarch64-linux","m68k-linux","microblaze-linux","microblazeel-linux","mips-linux","mips64-linux","mips64el-linux","mipsel-linux","powerpc64-linux","powerpc64le-linux","riscv32-linux","riscv64-linux","s390-linux","s390x-linux","x86_64-linux","x86_64-darwin","i686-darwin","aarch64-darwin","armv7a-darwin","i686-cygwin","x86_64-cygwin","x86_64-windows","i686-windows"],"broken":false,"insecure":false,"unfree":false,"outputs":["dist","out"],"upstream_ecosystem":"pypi","upstream_name":"pyRFC3339","upstream_purl":"pkg:pypi/pyRFC3339"},"repo_metadata":{"id":643910,"uuid":"285928","full_name":"kurtraschke/pyRFC3339","owner":"kurtraschke","description":"Python library for generating and parsing RFC 3339-compliant timestamps.","archived":false,"fork":false,"pushed_at":"2026-08-09T18:23:19.000Z","size":251,"stargazers_count":15,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-08-13T07:52:13.230Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pyrfc3339.readthedocs.io/","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/kurtraschke.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2009-08-23T20:36:54.000Z","updated_at":"2026-08-09T18:23:20.000Z","dependencies_parsed_at":"2026-08-06T02:35:38.564Z","dependency_job_id":null,"html_url":"https://github.com/kurtraschke/pyRFC3339","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/kurtraschke/pyRFC3339","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/sbom","scorecard":{"id":574093,"data":{"date":"2025-08-11","repo":{"name":"github.com/kurtraschke/pyRFC3339","commit":"2fb337c497daa31c7eeec8c0d38771acf3c04f45"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.1,"checks":[{"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":"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":"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":"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/pypi-publish.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:80: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:119: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-python.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-python.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/pypi-publish.yml:25","Info:   0 out of   7 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 third-party GitHubAction dependencies pinned","Info:   0 out of   1 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":"Code-Review","score":0,"reason":"Found 1/24 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/pypi-publish.yml:70","Warn: no topLevel permission defined: .github/workflows/pypi-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/test-python.yml:1"],"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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Signed-Releases","score":2,"reason":"1 out of the last 3 releases have a total of 1 signed artifacts.","details":["Info: signed release artifact: pyRFC3339-2.0.1-py3-none-any.whl.sigstore.json: https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","Warn: release artifact v1.1 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603","Warn: release artifact v2.0.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/183285619","Warn: release artifact v1.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603"],"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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/pypi-publish.yml:39"],"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":"SAST","score":8,"reason":"SAST tool is not run on all commits -- score normalized to 8","details":["Warn: 6 commits out of 7 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-20T17:11:19.852Z","repository_id":643910,"created_at":"2025-08-20T17:11:19.852Z","updated_at":"2025-08-20T17:11:19.852Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36601171,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-13T02:00:06.325Z","response_time":111,"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":"kurtraschke","name":"Kurt Raschke","uuid":"118546","kind":"user","description":"","email":"","website":"https://kurtraschke.com","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/118546?v=4","repositories_count":69,"last_synced_at":"2024-04-16T01:04:54.989Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/kurtraschke","funding_links":[],"total_stars":156,"followers":55,"following":0,"created_at":"2022-11-02T18:58:51.327Z","updated_at":"2024-04-16T01:05:07.682Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke/repositories"},"tags":[{"name":"v2.1.0","sha":"ff6ec789381717903a84912ea7b6fa527b0d0deb","kind":"commit","published_at":"2025-08-23T16:22:25.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0/manifests"},{"name":"v2.0.1","sha":"a11f99fe020ee21076c90fc3d1ad5bf801742c57","kind":"commit","published_at":"2024-11-04T01:40:49.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1/manifests"},{"name":"v2.0","sha":"b326744f5556085b05db29a07e7c31de8459154c","kind":"commit","published_at":"2024-11-04T01:31:26.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0/manifests"},{"name":"v1.1","sha":"e30cc1555adce0ecc7bd65509a2249d47e5a41b4","kind":"commit","published_at":"2018-06-11T00:18:08.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1/manifests"},{"name":"v1.0","sha":"6ffad1620d6ece8bb8c4b93308aed8a312c96148","kind":"commit","published_at":"2015-11-09T03:58:46.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0/manifests"}]},"repo_metadata_updated_at":"2026-08-13T08:46:22.055Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:nix/python311Packages.pyRFC3339?channel=23.11\u0026repository_url=https://channels.nixos.org/nixos-23.11","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/nixpkgs/python311Packages.pyRFC3339","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/nixpkgs/python311Packages.pyRFC3339","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/nixpkgs/python311Packages.pyRFC3339/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-10T05:31:44.139Z","issues_count":6,"pull_requests_count":60,"avg_time_to_close_issue":60821074.0,"avg_time_to_close_pull_request":9176624.5,"issues_closed_count":6,"pull_requests_closed_count":50,"pull_request_authors_count":10,"issue_authors_count":6,"avg_comments_per_issue":1.6666666666666667,"avg_comments_per_pull_request":0.21666666666666667,"merged_pull_requests_count":43,"bot_issues_count":1,"bot_pull_requests_count":47,"past_year_issues_count":0,"past_year_pull_requests_count":41,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":155155.75757575757,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":33,"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.07317073170731707,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":41,"past_year_merged_pull_requests_count":31,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/issues","maintainers":[{"login":"kurtraschke","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kurtraschke"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/packages/python311Packages.pyRFC3339/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/packages/python311Packages.pyRFC3339/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/packages/python311Packages.pyRFC3339/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/packages/python311Packages.pyRFC3339/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/packages/python311Packages.pyRFC3339/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/packages/python311Packages.pyRFC3339/codemeta","maintainers":[],"registry":{"name":"nixpkgs-23.11","url":"https://channels.nixos.org/nixos-23.11","ecosystem":"nixpkgs","default":false,"packages_count":108178,"maintainers_count":2997,"namespaces_count":0,"keywords_count":569,"github":"NixOS","metadata":{"funded_packages_count":3080},"icon_url":"https://github.com/NixOS.png","created_at":"2026-01-25T22:30:53.577Z","updated_at":"2026-08-24T05:04:51.596Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/namespaces"}},{"id":13206625,"name":"python312Packages.pyrfc3339","ecosystem":"nixpkgs","description":"Generate and parse RFC 3339 timestamps","homepage":"https://github.com/kurtraschke/pyRFC3339","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/kurtraschke/pyRFC3339","keywords_array":["python"],"namespace":null,"versions_count":1,"first_release_published_at":"2026-02-02T01:07:16.169Z","latest_release_published_at":"2026-02-02T01:07:16.169Z","latest_release_number":"1.1","last_synced_at":"2026-04-10T22:01:20.170Z","created_at":"2026-02-02T01:07:14.852Z","updated_at":"2026-08-13T08:46:22.063Z","registry_url":"https://search.nixos.org/packages?channel=24.05\u0026query=python312Packages.pyrfc3339","install_command":"nix-env -iA nixpkgs.python312Packages.pyrfc3339","documentation_url":"https://github.com/NixOS/nixpkgs/blob/nixos-24.05/pkgs/development/python-modules/pyrfc3339/default.nix#L37","metadata":{"nix_attribute":"python3.12-pyrfc3339-1.1","position":"pkgs/development/python-modules/pyrfc3339/default.nix:37","platforms":["aarch64-linux","armv5tel-linux","armv6l-linux","armv7a-linux","armv7l-linux","i686-linux","loongarch64-linux","m68k-linux","microblaze-linux","microblazeel-linux","mips-linux","mips64-linux","mips64el-linux","mipsel-linux","powerpc64-linux","powerpc64le-linux","riscv32-linux","riscv64-linux","s390-linux","s390x-linux","x86_64-linux","x86_64-darwin","i686-darwin","aarch64-darwin","armv7a-darwin","i686-cygwin","x86_64-cygwin","x86_64-windows","i686-windows"],"broken":false,"insecure":false,"unfree":false,"outputs":["dist","out"],"upstream_ecosystem":"pypi","upstream_name":"pyrfc3339","upstream_purl":"pkg:pypi/pyrfc3339"},"repo_metadata":{"id":643910,"uuid":"285928","full_name":"kurtraschke/pyRFC3339","owner":"kurtraschke","description":"Python library for generating and parsing RFC 3339-compliant timestamps.","archived":false,"fork":false,"pushed_at":"2026-08-09T18:23:19.000Z","size":251,"stargazers_count":15,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-08-13T07:52:13.230Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pyrfc3339.readthedocs.io/","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/kurtraschke.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2009-08-23T20:36:54.000Z","updated_at":"2026-08-09T18:23:20.000Z","dependencies_parsed_at":"2026-08-06T02:35:38.564Z","dependency_job_id":null,"html_url":"https://github.com/kurtraschke/pyRFC3339","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/kurtraschke/pyRFC3339","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/sbom","scorecard":{"id":574093,"data":{"date":"2025-08-11","repo":{"name":"github.com/kurtraschke/pyRFC3339","commit":"2fb337c497daa31c7eeec8c0d38771acf3c04f45"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.1,"checks":[{"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":"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":"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":"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/pypi-publish.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:80: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:119: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-python.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-python.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/pypi-publish.yml:25","Info:   0 out of   7 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 third-party GitHubAction dependencies pinned","Info:   0 out of   1 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":"Code-Review","score":0,"reason":"Found 1/24 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/pypi-publish.yml:70","Warn: no topLevel permission defined: .github/workflows/pypi-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/test-python.yml:1"],"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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Signed-Releases","score":2,"reason":"1 out of the last 3 releases have a total of 1 signed artifacts.","details":["Info: signed release artifact: pyRFC3339-2.0.1-py3-none-any.whl.sigstore.json: https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","Warn: release artifact v1.1 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603","Warn: release artifact v2.0.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/183285619","Warn: release artifact v1.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603"],"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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/pypi-publish.yml:39"],"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":"SAST","score":8,"reason":"SAST tool is not run on all commits -- score normalized to 8","details":["Warn: 6 commits out of 7 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-20T17:11:19.852Z","repository_id":643910,"created_at":"2025-08-20T17:11:19.852Z","updated_at":"2025-08-20T17:11:19.852Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36601171,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-13T02:00:06.325Z","response_time":111,"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":"kurtraschke","name":"Kurt Raschke","uuid":"118546","kind":"user","description":"","email":"","website":"https://kurtraschke.com","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/118546?v=4","repositories_count":69,"last_synced_at":"2024-04-16T01:04:54.989Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/kurtraschke","funding_links":[],"total_stars":156,"followers":55,"following":0,"created_at":"2022-11-02T18:58:51.327Z","updated_at":"2024-04-16T01:05:07.682Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke/repositories"},"tags":[{"name":"v2.1.0","sha":"ff6ec789381717903a84912ea7b6fa527b0d0deb","kind":"commit","published_at":"2025-08-23T16:22:25.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0/manifests"},{"name":"v2.0.1","sha":"a11f99fe020ee21076c90fc3d1ad5bf801742c57","kind":"commit","published_at":"2024-11-04T01:40:49.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1/manifests"},{"name":"v2.0","sha":"b326744f5556085b05db29a07e7c31de8459154c","kind":"commit","published_at":"2024-11-04T01:31:26.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0/manifests"},{"name":"v1.1","sha":"e30cc1555adce0ecc7bd65509a2249d47e5a41b4","kind":"commit","published_at":"2018-06-11T00:18:08.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1/manifests"},{"name":"v1.0","sha":"6ffad1620d6ece8bb8c4b93308aed8a312c96148","kind":"commit","published_at":"2015-11-09T03:58:46.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0/manifests"}]},"repo_metadata_updated_at":"2026-08-13T08:46:22.063Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:nix/python312Packages.pyrfc3339?channel=24.05\u0026repository_url=https://channels.nixos.org/nixos-24.05","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/nixpkgs/python312Packages.pyrfc3339","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/nixpkgs/python312Packages.pyrfc3339","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/nixpkgs/python312Packages.pyrfc3339/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-10T05:31:44.139Z","issues_count":6,"pull_requests_count":60,"avg_time_to_close_issue":60821074.0,"avg_time_to_close_pull_request":9176624.5,"issues_closed_count":6,"pull_requests_closed_count":50,"pull_request_authors_count":10,"issue_authors_count":6,"avg_comments_per_issue":1.6666666666666667,"avg_comments_per_pull_request":0.21666666666666667,"merged_pull_requests_count":43,"bot_issues_count":1,"bot_pull_requests_count":47,"past_year_issues_count":0,"past_year_pull_requests_count":41,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":155155.75757575757,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":33,"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.07317073170731707,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":41,"past_year_merged_pull_requests_count":31,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/issues","maintainers":[{"login":"kurtraschke","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kurtraschke"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/packages/python312Packages.pyrfc3339/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/packages/python312Packages.pyrfc3339/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/packages/python312Packages.pyrfc3339/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/packages/python312Packages.pyrfc3339/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/packages/python312Packages.pyrfc3339/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/packages/python312Packages.pyrfc3339/codemeta","maintainers":[],"registry":{"name":"nixpkgs-24.05","url":"https://channels.nixos.org/nixos-24.05","ecosystem":"nixpkgs","default":false,"packages_count":116156,"maintainers_count":3383,"namespaces_count":0,"keywords_count":654,"github":"NixOS","metadata":{"funded_packages_count":3165},"icon_url":"https://github.com/NixOS.png","created_at":"2026-01-25T22:30:53.309Z","updated_at":"2026-08-24T05:01:24.965Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.05/namespaces"}},{"id":13079505,"name":"python311Packages.pyrfc3339","ecosystem":"nixpkgs","description":"Generate and parse RFC 3339 timestamps","homepage":"https://github.com/kurtraschke/pyRFC3339","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/kurtraschke/pyRFC3339","keywords_array":["python"],"namespace":null,"versions_count":1,"first_release_published_at":"2026-02-01T17:42:38.895Z","latest_release_published_at":"2026-02-01T17:42:38.895Z","latest_release_number":"1.1","last_synced_at":"2026-03-08T05:24:08.898Z","created_at":"2026-02-01T17:42:37.631Z","updated_at":"2026-08-13T08:46:22.062Z","registry_url":"https://search.nixos.org/packages?channel=24.11\u0026query=python311Packages.pyrfc3339","install_command":"nix-env -iA nixpkgs.python311Packages.pyrfc3339","documentation_url":"https://github.com/NixOS/nixpkgs/blob/nixos-24.11/pkgs/development/python-modules/pyrfc3339/default.nix#L31","metadata":{"nix_attribute":"python3.11-pyrfc3339-1.1","position":"pkgs/development/python-modules/pyrfc3339/default.nix:31","platforms":["aarch64-linux","armv5tel-linux","armv6l-linux","armv7a-linux","armv7l-linux","i686-linux","loongarch64-linux","m68k-linux","microblaze-linux","microblazeel-linux","mips-linux","mips64-linux","mips64el-linux","mipsel-linux","powerpc64-linux","powerpc64le-linux","riscv32-linux","riscv64-linux","s390-linux","s390x-linux","x86_64-linux","x86_64-darwin","i686-darwin","aarch64-darwin","armv7a-darwin","i686-cygwin","x86_64-cygwin","aarch64-windows","x86_64-windows","i686-windows","i686-freebsd","x86_64-freebsd"],"broken":false,"insecure":false,"unfree":false,"outputs":["dist","out"],"upstream_ecosystem":"pypi","upstream_name":"pyrfc3339","upstream_purl":"pkg:pypi/pyrfc3339"},"repo_metadata":{"id":643910,"uuid":"285928","full_name":"kurtraschke/pyRFC3339","owner":"kurtraschke","description":"Python library for generating and parsing RFC 3339-compliant timestamps.","archived":false,"fork":false,"pushed_at":"2026-08-09T18:23:19.000Z","size":251,"stargazers_count":15,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-08-13T07:52:13.230Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pyrfc3339.readthedocs.io/","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/kurtraschke.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2009-08-23T20:36:54.000Z","updated_at":"2026-08-09T18:23:20.000Z","dependencies_parsed_at":"2026-08-06T02:35:38.564Z","dependency_job_id":null,"html_url":"https://github.com/kurtraschke/pyRFC3339","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/kurtraschke/pyRFC3339","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/sbom","scorecard":{"id":574093,"data":{"date":"2025-08-11","repo":{"name":"github.com/kurtraschke/pyRFC3339","commit":"2fb337c497daa31c7eeec8c0d38771acf3c04f45"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.1,"checks":[{"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":"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":"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":"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/pypi-publish.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:80: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:119: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-python.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-python.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/pypi-publish.yml:25","Info:   0 out of   7 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 third-party GitHubAction dependencies pinned","Info:   0 out of   1 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":"Code-Review","score":0,"reason":"Found 1/24 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/pypi-publish.yml:70","Warn: no topLevel permission defined: .github/workflows/pypi-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/test-python.yml:1"],"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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Signed-Releases","score":2,"reason":"1 out of the last 3 releases have a total of 1 signed artifacts.","details":["Info: signed release artifact: pyRFC3339-2.0.1-py3-none-any.whl.sigstore.json: https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","Warn: release artifact v1.1 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603","Warn: release artifact v2.0.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/183285619","Warn: release artifact v1.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603"],"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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/pypi-publish.yml:39"],"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":"SAST","score":8,"reason":"SAST tool is not run on all commits -- score normalized to 8","details":["Warn: 6 commits out of 7 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-20T17:11:19.852Z","repository_id":643910,"created_at":"2025-08-20T17:11:19.852Z","updated_at":"2025-08-20T17:11:19.852Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36601171,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-13T02:00:06.325Z","response_time":111,"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":"kurtraschke","name":"Kurt Raschke","uuid":"118546","kind":"user","description":"","email":"","website":"https://kurtraschke.com","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/118546?v=4","repositories_count":69,"last_synced_at":"2024-04-16T01:04:54.989Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/kurtraschke","funding_links":[],"total_stars":156,"followers":55,"following":0,"created_at":"2022-11-02T18:58:51.327Z","updated_at":"2024-04-16T01:05:07.682Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke/repositories"},"tags":[{"name":"v2.1.0","sha":"ff6ec789381717903a84912ea7b6fa527b0d0deb","kind":"commit","published_at":"2025-08-23T16:22:25.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0/manifests"},{"name":"v2.0.1","sha":"a11f99fe020ee21076c90fc3d1ad5bf801742c57","kind":"commit","published_at":"2024-11-04T01:40:49.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1/manifests"},{"name":"v2.0","sha":"b326744f5556085b05db29a07e7c31de8459154c","kind":"commit","published_at":"2024-11-04T01:31:26.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0/manifests"},{"name":"v1.1","sha":"e30cc1555adce0ecc7bd65509a2249d47e5a41b4","kind":"commit","published_at":"2018-06-11T00:18:08.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1/manifests"},{"name":"v1.0","sha":"6ffad1620d6ece8bb8c4b93308aed8a312c96148","kind":"commit","published_at":"2015-11-09T03:58:46.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0/manifests"}]},"repo_metadata_updated_at":"2026-08-13T08:46:22.062Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:nix/python311Packages.pyrfc3339?channel=24.11\u0026repository_url=https://channels.nixos.org/nixos-24.11","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/nixpkgs/python311Packages.pyrfc3339","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/nixpkgs/python311Packages.pyrfc3339","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/nixpkgs/python311Packages.pyrfc3339/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-10T05:31:44.139Z","issues_count":6,"pull_requests_count":60,"avg_time_to_close_issue":60821074.0,"avg_time_to_close_pull_request":9176624.5,"issues_closed_count":6,"pull_requests_closed_count":50,"pull_request_authors_count":10,"issue_authors_count":6,"avg_comments_per_issue":1.6666666666666667,"avg_comments_per_pull_request":0.21666666666666667,"merged_pull_requests_count":43,"bot_issues_count":1,"bot_pull_requests_count":47,"past_year_issues_count":0,"past_year_pull_requests_count":41,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":155155.75757575757,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":33,"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.07317073170731707,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":41,"past_year_merged_pull_requests_count":31,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/issues","maintainers":[{"login":"kurtraschke","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kurtraschke"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/packages/python311Packages.pyrfc3339/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/packages/python311Packages.pyrfc3339/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/packages/python311Packages.pyrfc3339/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/packages/python311Packages.pyrfc3339/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/packages/python311Packages.pyrfc3339/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/packages/python311Packages.pyrfc3339/codemeta","maintainers":[],"registry":{"name":"nixpkgs-24.11","url":"https://channels.nixos.org/nixos-24.11","ecosystem":"nixpkgs","default":false,"packages_count":121983,"maintainers_count":3777,"namespaces_count":0,"keywords_count":739,"github":"NixOS","metadata":{"funded_packages_count":3349},"icon_url":"https://github.com/NixOS.png","created_at":"2026-01-25T22:30:53.059Z","updated_at":"2026-08-24T05:04:31.033Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/namespaces"}},{"id":12831012,"name":"python311Packages.pyRFC3339","ecosystem":"nixpkgs","description":"Generate and parse RFC 3339 timestamps","homepage":"https://github.com/kurtraschke/pyRFC3339","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/kurtraschke/pyRFC3339","keywords_array":["python"],"namespace":null,"versions_count":1,"first_release_published_at":"2026-01-26T19:55:14.179Z","latest_release_published_at":"2026-01-26T19:55:14.179Z","latest_release_number":"1.1","last_synced_at":"2026-04-03T09:27:15.559Z","created_at":"2026-01-26T19:55:14.023Z","updated_at":"2026-08-13T08:46:22.066Z","registry_url":"https://search.nixos.org/packages?channel=23.05\u0026query=python311Packages.pyRFC3339","install_command":"nix-env -iA nixpkgs.python311Packages.pyRFC3339","documentation_url":"https://github.com/NixOS/nixpkgs/blob/nixos-23.05/pkgs/development/python-modules/pyrfc3339/default.nix#L21","metadata":{"nix_attribute":"python3.11-pyRFC3339-1.1","position":"pkgs/development/python-modules/pyrfc3339/default.nix:21","platforms":["aarch64-linux","armv5tel-linux","armv6l-linux","armv7a-linux","armv7l-linux","i686-linux","loongarch64-linux","m68k-linux","microblaze-linux","microblazeel-linux","mipsel-linux","mips64el-linux","powerpc64-linux","powerpc64le-linux","riscv32-linux","riscv64-linux","s390-linux","s390x-linux","x86_64-linux","x86_64-darwin","i686-darwin","aarch64-darwin","armv7a-darwin"],"broken":false,"insecure":false,"unfree":false,"outputs":["dist","out"],"upstream_ecosystem":"pypi","upstream_name":"pyRFC3339","upstream_purl":"pkg:pypi/pyRFC3339"},"repo_metadata":{"id":643910,"uuid":"285928","full_name":"kurtraschke/pyRFC3339","owner":"kurtraschke","description":"Python library for generating and parsing RFC 3339-compliant timestamps.","archived":false,"fork":false,"pushed_at":"2026-08-09T18:23:19.000Z","size":251,"stargazers_count":15,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-08-13T07:52:13.230Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pyrfc3339.readthedocs.io/","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/kurtraschke.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2009-08-23T20:36:54.000Z","updated_at":"2026-08-09T18:23:20.000Z","dependencies_parsed_at":"2026-08-06T02:35:38.564Z","dependency_job_id":null,"html_url":"https://github.com/kurtraschke/pyRFC3339","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/kurtraschke/pyRFC3339","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/sbom","scorecard":{"id":574093,"data":{"date":"2025-08-11","repo":{"name":"github.com/kurtraschke/pyRFC3339","commit":"2fb337c497daa31c7eeec8c0d38771acf3c04f45"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.1,"checks":[{"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":"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":"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":"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/pypi-publish.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:80: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:119: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-python.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-python.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/pypi-publish.yml:25","Info:   0 out of   7 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 third-party GitHubAction dependencies pinned","Info:   0 out of   1 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":"Code-Review","score":0,"reason":"Found 1/24 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/pypi-publish.yml:70","Warn: no topLevel permission defined: .github/workflows/pypi-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/test-python.yml:1"],"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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Signed-Releases","score":2,"reason":"1 out of the last 3 releases have a total of 1 signed artifacts.","details":["Info: signed release artifact: pyRFC3339-2.0.1-py3-none-any.whl.sigstore.json: https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","Warn: release artifact v1.1 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603","Warn: release artifact v2.0.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/183285619","Warn: release artifact v1.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603"],"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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/pypi-publish.yml:39"],"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":"SAST","score":8,"reason":"SAST tool is not run on all commits -- score normalized to 8","details":["Warn: 6 commits out of 7 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-20T17:11:19.852Z","repository_id":643910,"created_at":"2025-08-20T17:11:19.852Z","updated_at":"2025-08-20T17:11:19.852Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36601171,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-13T02:00:06.325Z","response_time":111,"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":"kurtraschke","name":"Kurt Raschke","uuid":"118546","kind":"user","description":"","email":"","website":"https://kurtraschke.com","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/118546?v=4","repositories_count":69,"last_synced_at":"2024-04-16T01:04:54.989Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/kurtraschke","funding_links":[],"total_stars":156,"followers":55,"following":0,"created_at":"2022-11-02T18:58:51.327Z","updated_at":"2024-04-16T01:05:07.682Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke/repositories"},"tags":[{"name":"v2.1.0","sha":"ff6ec789381717903a84912ea7b6fa527b0d0deb","kind":"commit","published_at":"2025-08-23T16:22:25.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0/manifests"},{"name":"v2.0.1","sha":"a11f99fe020ee21076c90fc3d1ad5bf801742c57","kind":"commit","published_at":"2024-11-04T01:40:49.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1/manifests"},{"name":"v2.0","sha":"b326744f5556085b05db29a07e7c31de8459154c","kind":"commit","published_at":"2024-11-04T01:31:26.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0/manifests"},{"name":"v1.1","sha":"e30cc1555adce0ecc7bd65509a2249d47e5a41b4","kind":"commit","published_at":"2018-06-11T00:18:08.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1/manifests"},{"name":"v1.0","sha":"6ffad1620d6ece8bb8c4b93308aed8a312c96148","kind":"commit","published_at":"2015-11-09T03:58:46.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0/manifests"}]},"repo_metadata_updated_at":"2026-08-13T08:46:22.066Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:nix/python311Packages.pyRFC3339?channel=23.05\u0026repository_url=https://channels.nixos.org/nixos-23.05","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/nixpkgs/python311Packages.pyRFC3339","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/nixpkgs/python311Packages.pyRFC3339","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/nixpkgs/python311Packages.pyRFC3339/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-10T05:31:44.139Z","issues_count":6,"pull_requests_count":60,"avg_time_to_close_issue":60821074.0,"avg_time_to_close_pull_request":9176624.5,"issues_closed_count":6,"pull_requests_closed_count":50,"pull_request_authors_count":10,"issue_authors_count":6,"avg_comments_per_issue":1.6666666666666667,"avg_comments_per_pull_request":0.21666666666666667,"merged_pull_requests_count":43,"bot_issues_count":1,"bot_pull_requests_count":47,"past_year_issues_count":0,"past_year_pull_requests_count":41,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":155155.75757575757,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":33,"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.07317073170731707,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":41,"past_year_merged_pull_requests_count":31,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/issues","maintainers":[{"login":"kurtraschke","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kurtraschke"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/packages/python311Packages.pyRFC3339/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/packages/python311Packages.pyRFC3339/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/packages/python311Packages.pyRFC3339/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/packages/python311Packages.pyRFC3339/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/packages/python311Packages.pyRFC3339/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/packages/python311Packages.pyRFC3339/codemeta","maintainers":[],"registry":{"name":"nixpkgs-23.05","url":"https://channels.nixos.org/nixos-23.05","ecosystem":"nixpkgs","default":false,"packages_count":101092,"maintainers_count":2622,"namespaces_count":0,"keywords_count":613,"github":"NixOS","metadata":{"funded_packages_count":2146},"icon_url":"https://github.com/NixOS.png","created_at":"2026-01-25T22:30:53.882Z","updated_at":"2026-08-24T05:04:28.515Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/namespaces"}},{"id":13706706,"name":"pyrfc3339","ecosystem":"debian","description":null,"homepage":"https://github.com/kurtraschke/pyRFC3339","licenses":"mit","normalized_licenses":[],"repository_url":"https://github.com/kurtraschke/pyRFC3339","keywords_array":["misc"],"namespace":"main","versions_count":1,"first_release_published_at":"2026-02-12T22:16:07.869Z","latest_release_published_at":"2026-02-12T22:16:07.869Z","latest_release_number":"1.1-4","last_synced_at":"2026-03-13T07:46:05.784Z","created_at":"2026-02-12T22:16:07.684Z","updated_at":"2026-08-13T08:46:22.068Z","registry_url":"https://tracker.debian.org/pkg/pyrfc3339","install_command":"apt-get install pyrfc3339","documentation_url":"https://packages.debian.org/bookworm/pyrfc3339","metadata":{"component":"main","architecture":"all","priority":"optional","binary":"python3-rfc3339","standards_version":"4.6.1","maintainer":"Debian Python Team \u003cteam+python@tracker.debian.org\u003e","build_depends":"debhelper-compat (= 13), dh-python, python3-all, python3-setuptools, python3-tz","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":643910,"uuid":"285928","full_name":"kurtraschke/pyRFC3339","owner":"kurtraschke","description":"Python library for generating and parsing RFC 3339-compliant timestamps.","archived":false,"fork":false,"pushed_at":"2026-08-09T18:23:19.000Z","size":251,"stargazers_count":15,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-08-13T07:52:13.230Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pyrfc3339.readthedocs.io/","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/kurtraschke.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2009-08-23T20:36:54.000Z","updated_at":"2026-08-09T18:23:20.000Z","dependencies_parsed_at":"2026-08-06T02:35:38.564Z","dependency_job_id":null,"html_url":"https://github.com/kurtraschke/pyRFC3339","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/kurtraschke/pyRFC3339","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/sbom","scorecard":{"id":574093,"data":{"date":"2025-08-11","repo":{"name":"github.com/kurtraschke/pyRFC3339","commit":"2fb337c497daa31c7eeec8c0d38771acf3c04f45"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.1,"checks":[{"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":"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":"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":"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/pypi-publish.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:80: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:119: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-python.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-python.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/pypi-publish.yml:25","Info:   0 out of   7 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 third-party GitHubAction dependencies pinned","Info:   0 out of   1 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":"Code-Review","score":0,"reason":"Found 1/24 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/pypi-publish.yml:70","Warn: no topLevel permission defined: .github/workflows/pypi-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/test-python.yml:1"],"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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Signed-Releases","score":2,"reason":"1 out of the last 3 releases have a total of 1 signed artifacts.","details":["Info: signed release artifact: pyRFC3339-2.0.1-py3-none-any.whl.sigstore.json: https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","Warn: release artifact v1.1 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603","Warn: release artifact v2.0.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/183285619","Warn: release artifact v1.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603"],"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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/pypi-publish.yml:39"],"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":"SAST","score":8,"reason":"SAST tool is not run on all commits -- score normalized to 8","details":["Warn: 6 commits out of 7 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-20T17:11:19.852Z","repository_id":643910,"created_at":"2025-08-20T17:11:19.852Z","updated_at":"2025-08-20T17:11:19.852Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36601171,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-13T02:00:06.325Z","response_time":111,"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":"kurtraschke","name":"Kurt Raschke","uuid":"118546","kind":"user","description":"","email":"","website":"https://kurtraschke.com","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/118546?v=4","repositories_count":69,"last_synced_at":"2024-04-16T01:04:54.989Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/kurtraschke","funding_links":[],"total_stars":156,"followers":55,"following":0,"created_at":"2022-11-02T18:58:51.327Z","updated_at":"2024-04-16T01:05:07.682Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke/repositories"},"tags":[{"name":"v2.1.0","sha":"ff6ec789381717903a84912ea7b6fa527b0d0deb","kind":"commit","published_at":"2025-08-23T16:22:25.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0/manifests"},{"name":"v2.0.1","sha":"a11f99fe020ee21076c90fc3d1ad5bf801742c57","kind":"commit","published_at":"2024-11-04T01:40:49.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1/manifests"},{"name":"v2.0","sha":"b326744f5556085b05db29a07e7c31de8459154c","kind":"commit","published_at":"2024-11-04T01:31:26.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0/manifests"},{"name":"v1.1","sha":"e30cc1555adce0ecc7bd65509a2249d47e5a41b4","kind":"commit","published_at":"2018-06-11T00:18:08.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1/manifests"},{"name":"v1.0","sha":"6ffad1620d6ece8bb8c4b93308aed8a312c96148","kind":"commit","published_at":"2015-11-09T03:58:46.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0/manifests"}]},"repo_metadata_updated_at":"2026-08-13T08:46:22.068Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:deb/debian/pyrfc3339?arch=source\u0026distro=debian-12","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/debian/pyrfc3339","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/debian/pyrfc3339","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/debian/pyrfc3339/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-10T05:31:44.139Z","issues_count":6,"pull_requests_count":60,"avg_time_to_close_issue":60821074.0,"avg_time_to_close_pull_request":9176624.5,"issues_closed_count":6,"pull_requests_closed_count":50,"pull_request_authors_count":10,"issue_authors_count":6,"avg_comments_per_issue":1.6666666666666667,"avg_comments_per_pull_request":0.21666666666666667,"merged_pull_requests_count":43,"bot_issues_count":1,"bot_pull_requests_count":47,"past_year_issues_count":0,"past_year_pull_requests_count":41,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":155155.75757575757,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":33,"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.07317073170731707,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":41,"past_year_merged_pull_requests_count":31,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/issues","maintainers":[{"login":"kurtraschke","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kurtraschke"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/pyrfc3339/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/pyrfc3339/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/pyrfc3339/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/pyrfc3339/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/pyrfc3339/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/pyrfc3339/codemeta","maintainers":[],"registry":{"name":"debian-12","url":"https://packages.debian.org/bookworm","ecosystem":"debian","default":true,"packages_count":34734,"maintainers_count":0,"namespaces_count":4,"keywords_count":2650,"github":"debian","metadata":{"codename":"bookworm","funded_packages_count":1231},"icon_url":"https://github.com/debian.png","created_at":"2026-02-04T11:01:49.459Z","updated_at":"2026-08-24T05:06:15.317Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/namespaces"}},{"id":13944476,"name":"python-pyrfc3339","ecosystem":"guix","description":"Python timestamp library","homepage":"https://github.com/kurtraschke/pyRFC3339","licenses":"expat","normalized_licenses":["Other"],"repository_url":"https://github.com/kurtraschke/pyRFC3339","keywords_array":[],"namespace":null,"versions_count":1,"first_release_published_at":"2026-03-02T16:57:42.606Z","latest_release_published_at":"2026-03-02T16:57:42.606Z","latest_release_number":"2.0.1","last_synced_at":"2026-04-27T14:35:12.711Z","created_at":"2026-03-02T16:57:42.424Z","updated_at":"2026-08-13T08:46:22.072Z","registry_url":"https://packages.guix.gnu.org/packages/python-pyrfc3339/2.0.1/","install_command":"guix install python-pyrfc3339","documentation_url":"https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/time.scm#n718","metadata":{"location":"gnu/packages/time.scm:718","variable_name":"python-pyrfc3339"},"repo_metadata":{"id":643910,"uuid":"285928","full_name":"kurtraschke/pyRFC3339","owner":"kurtraschke","description":"Python library for generating and parsing RFC 3339-compliant timestamps.","archived":false,"fork":false,"pushed_at":"2026-08-09T18:23:19.000Z","size":251,"stargazers_count":15,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-08-13T07:52:13.230Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pyrfc3339.readthedocs.io/","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/kurtraschke.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2009-08-23T20:36:54.000Z","updated_at":"2026-08-09T18:23:20.000Z","dependencies_parsed_at":"2026-08-06T02:35:38.564Z","dependency_job_id":null,"html_url":"https://github.com/kurtraschke/pyRFC3339","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/kurtraschke/pyRFC3339","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/sbom","scorecard":{"id":574093,"data":{"date":"2025-08-11","repo":{"name":"github.com/kurtraschke/pyRFC3339","commit":"2fb337c497daa31c7eeec8c0d38771acf3c04f45"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.1,"checks":[{"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":"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":"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":"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/pypi-publish.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:80: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:119: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-python.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-python.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/pypi-publish.yml:25","Info:   0 out of   7 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 third-party GitHubAction dependencies pinned","Info:   0 out of   1 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":"Code-Review","score":0,"reason":"Found 1/24 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/pypi-publish.yml:70","Warn: no topLevel permission defined: .github/workflows/pypi-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/test-python.yml:1"],"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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Signed-Releases","score":2,"reason":"1 out of the last 3 releases have a total of 1 signed artifacts.","details":["Info: signed release artifact: pyRFC3339-2.0.1-py3-none-any.whl.sigstore.json: https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","Warn: release artifact v1.1 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603","Warn: release artifact v2.0.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/183285619","Warn: release artifact v1.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603"],"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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/pypi-publish.yml:39"],"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":"SAST","score":8,"reason":"SAST tool is not run on all commits -- score normalized to 8","details":["Warn: 6 commits out of 7 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-20T17:11:19.852Z","repository_id":643910,"created_at":"2025-08-20T17:11:19.852Z","updated_at":"2025-08-20T17:11:19.852Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36601171,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-13T02:00:06.325Z","response_time":111,"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":"kurtraschke","name":"Kurt Raschke","uuid":"118546","kind":"user","description":"","email":"","website":"https://kurtraschke.com","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/118546?v=4","repositories_count":69,"last_synced_at":"2024-04-16T01:04:54.989Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/kurtraschke","funding_links":[],"total_stars":156,"followers":55,"following":0,"created_at":"2022-11-02T18:58:51.327Z","updated_at":"2024-04-16T01:05:07.682Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke/repositories"},"tags":[{"name":"v2.1.0","sha":"ff6ec789381717903a84912ea7b6fa527b0d0deb","kind":"commit","published_at":"2025-08-23T16:22:25.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0/manifests"},{"name":"v2.0.1","sha":"a11f99fe020ee21076c90fc3d1ad5bf801742c57","kind":"commit","published_at":"2024-11-04T01:40:49.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1/manifests"},{"name":"v2.0","sha":"b326744f5556085b05db29a07e7c31de8459154c","kind":"commit","published_at":"2024-11-04T01:31:26.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0/manifests"},{"name":"v1.1","sha":"e30cc1555adce0ecc7bd65509a2249d47e5a41b4","kind":"commit","published_at":"2018-06-11T00:18:08.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1/manifests"},{"name":"v1.0","sha":"6ffad1620d6ece8bb8c4b93308aed8a312c96148","kind":"commit","published_at":"2015-11-09T03:58:46.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0/manifests"}]},"repo_metadata_updated_at":"2026-08-13T08:46:22.072Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:guix/python-pyrfc3339","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/guix/python-pyrfc3339","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/guix/python-pyrfc3339","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/guix/python-pyrfc3339/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-10T05:31:44.139Z","issues_count":6,"pull_requests_count":60,"avg_time_to_close_issue":60821074.0,"avg_time_to_close_pull_request":9176624.5,"issues_closed_count":6,"pull_requests_closed_count":50,"pull_request_authors_count":10,"issue_authors_count":6,"avg_comments_per_issue":1.6666666666666667,"avg_comments_per_pull_request":0.21666666666666667,"merged_pull_requests_count":43,"bot_issues_count":1,"bot_pull_requests_count":47,"past_year_issues_count":0,"past_year_pull_requests_count":41,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":155155.75757575757,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":33,"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.07317073170731707,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":41,"past_year_merged_pull_requests_count":31,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/issues","maintainers":[{"login":"kurtraschke","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kurtraschke"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/python-pyrfc3339/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/python-pyrfc3339/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/python-pyrfc3339/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/python-pyrfc3339/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/python-pyrfc3339/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/python-pyrfc3339/codemeta","maintainers":[],"registry":{"name":"guix","url":"https://guix.gnu.org","ecosystem":"guix","default":true,"packages_count":32336,"maintainers_count":0,"namespaces_count":0,"keywords_count":1654,"github":"guix-mirror","metadata":{"funded_packages_count":1223},"icon_url":"https://github.com/guix-mirror.png","created_at":"2026-03-02T16:23:46.981Z","updated_at":"2026-08-24T05:05:20.073Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/guix/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/guix/namespaces"}},{"id":13298056,"name":"python310Packages.pyRFC3339","ecosystem":"nixpkgs","description":"Generate and parse RFC 3339 timestamps","homepage":"https://github.com/kurtraschke/pyRFC3339","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/kurtraschke/pyRFC3339","keywords_array":["python"],"namespace":null,"versions_count":1,"first_release_published_at":"2026-02-02T06:32:35.260Z","latest_release_published_at":"2026-02-02T06:32:35.260Z","latest_release_number":"1.1","last_synced_at":"2026-03-07T07:40:42.825Z","created_at":"2026-02-02T06:32:34.853Z","updated_at":"2026-08-13T08:46:22.080Z","registry_url":"https://search.nixos.org/packages?channel=23.11\u0026query=python310Packages.pyRFC3339","install_command":"nix-env -iA nixpkgs.python310Packages.pyRFC3339","documentation_url":"https://github.com/NixOS/nixpkgs/blob/nixos-23.11/pkgs/development/python-modules/pyrfc3339/default.nix#L21","metadata":{"nix_attribute":"python3.10-pyRFC3339-1.1","position":"pkgs/development/python-modules/pyrfc3339/default.nix:21","platforms":["aarch64-linux","armv5tel-linux","armv6l-linux","armv7a-linux","armv7l-linux","i686-linux","loongarch64-linux","m68k-linux","microblaze-linux","microblazeel-linux","mips-linux","mips64-linux","mips64el-linux","mipsel-linux","powerpc64-linux","powerpc64le-linux","riscv32-linux","riscv64-linux","s390-linux","s390x-linux","x86_64-linux","x86_64-darwin","i686-darwin","aarch64-darwin","armv7a-darwin","i686-cygwin","x86_64-cygwin","x86_64-windows","i686-windows"],"broken":false,"insecure":false,"unfree":false,"outputs":["dist","out"],"upstream_ecosystem":"pypi","upstream_name":"pyRFC3339","upstream_purl":"pkg:pypi/pyRFC3339"},"repo_metadata":{"id":643910,"uuid":"285928","full_name":"kurtraschke/pyRFC3339","owner":"kurtraschke","description":"Python library for generating and parsing RFC 3339-compliant timestamps.","archived":false,"fork":false,"pushed_at":"2026-08-09T18:23:19.000Z","size":251,"stargazers_count":15,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-08-13T07:52:13.230Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pyrfc3339.readthedocs.io/","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/kurtraschke.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2009-08-23T20:36:54.000Z","updated_at":"2026-08-09T18:23:20.000Z","dependencies_parsed_at":"2026-08-06T02:35:38.564Z","dependency_job_id":null,"html_url":"https://github.com/kurtraschke/pyRFC3339","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/kurtraschke/pyRFC3339","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/sbom","scorecard":{"id":574093,"data":{"date":"2025-08-11","repo":{"name":"github.com/kurtraschke/pyRFC3339","commit":"2fb337c497daa31c7eeec8c0d38771acf3c04f45"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.1,"checks":[{"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":"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":"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":"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/pypi-publish.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:80: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:119: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-python.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-python.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/pypi-publish.yml:25","Info:   0 out of   7 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 third-party GitHubAction dependencies pinned","Info:   0 out of   1 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":"Code-Review","score":0,"reason":"Found 1/24 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/pypi-publish.yml:70","Warn: no topLevel permission defined: .github/workflows/pypi-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/test-python.yml:1"],"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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Signed-Releases","score":2,"reason":"1 out of the last 3 releases have a total of 1 signed artifacts.","details":["Info: signed release artifact: pyRFC3339-2.0.1-py3-none-any.whl.sigstore.json: https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","Warn: release artifact v1.1 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603","Warn: release artifact v2.0.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/183285619","Warn: release artifact v1.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603"],"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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/pypi-publish.yml:39"],"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":"SAST","score":8,"reason":"SAST tool is not run on all commits -- score normalized to 8","details":["Warn: 6 commits out of 7 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-20T17:11:19.852Z","repository_id":643910,"created_at":"2025-08-20T17:11:19.852Z","updated_at":"2025-08-20T17:11:19.852Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36601171,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-13T02:00:06.325Z","response_time":111,"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":"kurtraschke","name":"Kurt Raschke","uuid":"118546","kind":"user","description":"","email":"","website":"https://kurtraschke.com","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/118546?v=4","repositories_count":69,"last_synced_at":"2024-04-16T01:04:54.989Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/kurtraschke","funding_links":[],"total_stars":156,"followers":55,"following":0,"created_at":"2022-11-02T18:58:51.327Z","updated_at":"2024-04-16T01:05:07.682Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke/repositories"},"tags":[{"name":"v2.1.0","sha":"ff6ec789381717903a84912ea7b6fa527b0d0deb","kind":"commit","published_at":"2025-08-23T16:22:25.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0/manifests"},{"name":"v2.0.1","sha":"a11f99fe020ee21076c90fc3d1ad5bf801742c57","kind":"commit","published_at":"2024-11-04T01:40:49.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1/manifests"},{"name":"v2.0","sha":"b326744f5556085b05db29a07e7c31de8459154c","kind":"commit","published_at":"2024-11-04T01:31:26.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0/manifests"},{"name":"v1.1","sha":"e30cc1555adce0ecc7bd65509a2249d47e5a41b4","kind":"commit","published_at":"2018-06-11T00:18:08.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1/manifests"},{"name":"v1.0","sha":"6ffad1620d6ece8bb8c4b93308aed8a312c96148","kind":"commit","published_at":"2015-11-09T03:58:46.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0/manifests"}]},"repo_metadata_updated_at":"2026-08-13T08:46:22.079Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{},"purl":"pkg:nix/python310Packages.pyRFC3339?channel=23.11\u0026repository_url=https://channels.nixos.org/nixos-23.11","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/nixpkgs/python310Packages.pyRFC3339","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/nixpkgs/python310Packages.pyRFC3339","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/nixpkgs/python310Packages.pyRFC3339/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-10T05:31:44.139Z","issues_count":6,"pull_requests_count":60,"avg_time_to_close_issue":60821074.0,"avg_time_to_close_pull_request":9176624.5,"issues_closed_count":6,"pull_requests_closed_count":50,"pull_request_authors_count":10,"issue_authors_count":6,"avg_comments_per_issue":1.6666666666666667,"avg_comments_per_pull_request":0.21666666666666667,"merged_pull_requests_count":43,"bot_issues_count":1,"bot_pull_requests_count":47,"past_year_issues_count":0,"past_year_pull_requests_count":41,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":155155.75757575757,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":33,"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.07317073170731707,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":41,"past_year_merged_pull_requests_count":31,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/issues","maintainers":[{"login":"kurtraschke","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kurtraschke"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/packages/python310Packages.pyRFC3339/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/packages/python310Packages.pyRFC3339/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/packages/python310Packages.pyRFC3339/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/packages/python310Packages.pyRFC3339/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/packages/python310Packages.pyRFC3339/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/packages/python310Packages.pyRFC3339/codemeta","maintainers":[],"registry":{"name":"nixpkgs-23.11","url":"https://channels.nixos.org/nixos-23.11","ecosystem":"nixpkgs","default":false,"packages_count":108178,"maintainers_count":2997,"namespaces_count":0,"keywords_count":569,"github":"NixOS","metadata":{"funded_packages_count":3080},"icon_url":"https://github.com/NixOS.png","created_at":"2026-01-25T22:30:53.577Z","updated_at":"2026-08-24T05:04:51.596Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.11/namespaces"}},{"id":5301100,"name":"pyrfc3339","ecosystem":"conda","description":"pyRFC3339 parses and generates RFC 3339-compliant timestamps using Python datetime.datetime objects.","homepage":"https://github.com/kurtraschke/pyRFC3339","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/kurtraschke/pyRFC3339","keywords_array":[],"namespace":null,"versions_count":1,"first_release_published_at":"2019-10-24T21:39:25.000Z","latest_release_published_at":"2019-10-24T21:39:25.000Z","latest_release_number":"1.1","last_synced_at":"2026-03-26T14:32:34.460Z","created_at":"2022-10-03T16:10:13.084Z","updated_at":"2026-08-13T08:46:22.085Z","registry_url":"https://anaconda.org/conda-forge/pyrfc3339","install_command":"conda install -c conda-forge pyrfc3339","documentation_url":null,"metadata":{},"repo_metadata":{"id":643910,"uuid":"285928","full_name":"kurtraschke/pyRFC3339","owner":"kurtraschke","description":"Python library for generating and parsing RFC 3339-compliant timestamps.","archived":false,"fork":false,"pushed_at":"2026-08-09T18:23:19.000Z","size":251,"stargazers_count":15,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-08-13T07:52:13.230Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pyrfc3339.readthedocs.io/","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/kurtraschke.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2009-08-23T20:36:54.000Z","updated_at":"2026-08-09T18:23:20.000Z","dependencies_parsed_at":"2026-08-06T02:35:38.564Z","dependency_job_id":null,"html_url":"https://github.com/kurtraschke/pyRFC3339","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/kurtraschke/pyRFC3339","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/sbom","scorecard":{"id":574093,"data":{"date":"2025-08-11","repo":{"name":"github.com/kurtraschke/pyRFC3339","commit":"2fb337c497daa31c7eeec8c0d38771acf3c04f45"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.1,"checks":[{"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":"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":"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":"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/pypi-publish.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:80: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:119: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-python.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-python.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/pypi-publish.yml:25","Info:   0 out of   7 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 third-party GitHubAction dependencies pinned","Info:   0 out of   1 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":"Code-Review","score":0,"reason":"Found 1/24 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/pypi-publish.yml:70","Warn: no topLevel permission defined: .github/workflows/pypi-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/test-python.yml:1"],"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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Signed-Releases","score":2,"reason":"1 out of the last 3 releases have a total of 1 signed artifacts.","details":["Info: signed release artifact: pyRFC3339-2.0.1-py3-none-any.whl.sigstore.json: https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","Warn: release artifact v1.1 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603","Warn: release artifact v2.0.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/183285619","Warn: release artifact v1.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603"],"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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/pypi-publish.yml:39"],"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":"SAST","score":8,"reason":"SAST tool is not run on all commits -- score normalized to 8","details":["Warn: 6 commits out of 7 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-20T17:11:19.852Z","repository_id":643910,"created_at":"2025-08-20T17:11:19.852Z","updated_at":"2025-08-20T17:11:19.852Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36601171,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-13T02:00:06.325Z","response_time":111,"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":"kurtraschke","name":"Kurt Raschke","uuid":"118546","kind":"user","description":"","email":"","website":"https://kurtraschke.com","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/118546?v=4","repositories_count":69,"last_synced_at":"2024-04-16T01:04:54.989Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/kurtraschke","funding_links":[],"total_stars":156,"followers":55,"following":0,"created_at":"2022-11-02T18:58:51.327Z","updated_at":"2024-04-16T01:05:07.682Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke/repositories"},"tags":[{"name":"v2.1.0","sha":"ff6ec789381717903a84912ea7b6fa527b0d0deb","kind":"commit","published_at":"2025-08-23T16:22:25.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0/manifests"},{"name":"v2.0.1","sha":"a11f99fe020ee21076c90fc3d1ad5bf801742c57","kind":"commit","published_at":"2024-11-04T01:40:49.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1/manifests"},{"name":"v2.0","sha":"b326744f5556085b05db29a07e7c31de8459154c","kind":"commit","published_at":"2024-11-04T01:31:26.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0/manifests"},{"name":"v1.1","sha":"e30cc1555adce0ecc7bd65509a2249d47e5a41b4","kind":"commit","published_at":"2018-06-11T00:18:08.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1/manifests"},{"name":"v1.0","sha":"6ffad1620d6ece8bb8c4b93308aed8a312c96148","kind":"commit","published_at":"2015-11-09T03:58:46.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0/manifests"}]},"repo_metadata_updated_at":"2026-08-13T08:46:22.085Z","dependent_packages_count":4,"downloads":null,"downloads_period":null,"dependent_repos_count":1,"rankings":{"downloads":null,"dependent_repos_count":24.37746394530665,"dependent_packages_count":12.500623783621936,"stargazers_count":52.89685114027646,"forks_count":52.21817455960876,"docker_downloads_count":null,"average":35.49827835720345},"purl":"pkg:conda/pyrfc3339?repository_url=https://conda-forge.org","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/conda/pyrfc3339","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/conda/pyrfc3339","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/conda/pyrfc3339/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-10T05:31:44.139Z","issues_count":6,"pull_requests_count":60,"avg_time_to_close_issue":60821074.0,"avg_time_to_close_pull_request":9176624.5,"issues_closed_count":6,"pull_requests_closed_count":50,"pull_request_authors_count":10,"issue_authors_count":6,"avg_comments_per_issue":1.6666666666666667,"avg_comments_per_pull_request":0.21666666666666667,"merged_pull_requests_count":43,"bot_issues_count":1,"bot_pull_requests_count":47,"past_year_issues_count":0,"past_year_pull_requests_count":41,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":155155.75757575757,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":33,"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.07317073170731707,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":41,"past_year_merged_pull_requests_count":31,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/issues","maintainers":[{"login":"kurtraschke","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kurtraschke"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/pyrfc3339/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/pyrfc3339/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/pyrfc3339/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/pyrfc3339/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/pyrfc3339/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/pyrfc3339/codemeta","maintainers":[],"registry":{"name":"conda-forge.org","url":"https://conda-forge.org","ecosystem":"conda","default":false,"packages_count":20636,"maintainers_count":0,"namespaces_count":0,"keywords_count":13549,"github":"conda-forge","metadata":{"kind":"conda-forge","key":"CondaForge","api":"https://conda.anaconda.org","funded_packages_count":2348},"icon_url":"https://github.com/conda-forge.png","created_at":"2022-10-03T15:37:08.743Z","updated_at":"2026-08-23T05:06:09.364Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/namespaces"}},{"id":14540732,"name":"time/py-rfc3339","ecosystem":"pkgsrc","description":"Library for generating and parsing RFC 3339-compliant timestamps","homepage":"https://github.com/kurtraschke/pyRFC3339","licenses":"mit","normalized_licenses":["MIT"],"repository_url":"https://github.com/kurtraschke/pyRFC3339","keywords_array":["time","python"],"namespace":"time","versions_count":1,"first_release_published_at":"2026-03-19T05:46:23.000Z","latest_release_published_at":"2026-03-19T05:46:23.000Z","latest_release_number":"2.1.0","last_synced_at":"2026-05-27T10:30:25.653Z","created_at":"2026-05-27T10:30:25.205Z","updated_at":"2026-08-13T08:46:22.081Z","registry_url":"https://pkgsrc.se/time/py-rfc3339","install_command":"pkg_add py314-rfc3339","documentation_url":"https://pkgsrc.se/time/py-rfc3339","metadata":{"pkg_slug":"py-rfc3339","pkgbase":"py314-rfc3339","machine_arch":"x86_64","opsys":"NetBSD","pkgname_latest":"py314-rfc3339-2.1.0"},"repo_metadata":{"id":643910,"uuid":"285928","full_name":"kurtraschke/pyRFC3339","owner":"kurtraschke","description":"Python library for generating and parsing RFC 3339-compliant timestamps.","archived":false,"fork":false,"pushed_at":"2026-08-09T18:23:19.000Z","size":251,"stargazers_count":15,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-08-13T07:52:13.230Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pyrfc3339.readthedocs.io/","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/kurtraschke.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2009-08-23T20:36:54.000Z","updated_at":"2026-08-09T18:23:20.000Z","dependencies_parsed_at":"2026-08-06T02:35:38.564Z","dependency_job_id":null,"html_url":"https://github.com/kurtraschke/pyRFC3339","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/kurtraschke/pyRFC3339","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/sbom","scorecard":{"id":574093,"data":{"date":"2025-08-11","repo":{"name":"github.com/kurtraschke/pyRFC3339","commit":"2fb337c497daa31c7eeec8c0d38771acf3c04f45"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.1,"checks":[{"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":"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":"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":"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/pypi-publish.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:80: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:119: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-python.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-python.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/pypi-publish.yml:25","Info:   0 out of   7 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 third-party GitHubAction dependencies pinned","Info:   0 out of   1 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":"Code-Review","score":0,"reason":"Found 1/24 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/pypi-publish.yml:70","Warn: no topLevel permission defined: .github/workflows/pypi-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/test-python.yml:1"],"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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Signed-Releases","score":2,"reason":"1 out of the last 3 releases have a total of 1 signed artifacts.","details":["Info: signed release artifact: pyRFC3339-2.0.1-py3-none-any.whl.sigstore.json: https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","Warn: release artifact v1.1 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603","Warn: release artifact v2.0.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/183285619","Warn: release artifact v1.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603"],"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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/pypi-publish.yml:39"],"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":"SAST","score":8,"reason":"SAST tool is not run on all commits -- score normalized to 8","details":["Warn: 6 commits out of 7 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-20T17:11:19.852Z","repository_id":643910,"created_at":"2025-08-20T17:11:19.852Z","updated_at":"2025-08-20T17:11:19.852Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36601171,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-13T02:00:06.325Z","response_time":111,"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":"kurtraschke","name":"Kurt Raschke","uuid":"118546","kind":"user","description":"","email":"","website":"https://kurtraschke.com","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/118546?v=4","repositories_count":69,"last_synced_at":"2024-04-16T01:04:54.989Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/kurtraschke","funding_links":[],"total_stars":156,"followers":55,"following":0,"created_at":"2022-11-02T18:58:51.327Z","updated_at":"2024-04-16T01:05:07.682Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke/repositories"},"tags":[{"name":"v2.1.0","sha":"ff6ec789381717903a84912ea7b6fa527b0d0deb","kind":"commit","published_at":"2025-08-23T16:22:25.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0/manifests"},{"name":"v2.0.1","sha":"a11f99fe020ee21076c90fc3d1ad5bf801742c57","kind":"commit","published_at":"2024-11-04T01:40:49.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1/manifests"},{"name":"v2.0","sha":"b326744f5556085b05db29a07e7c31de8459154c","kind":"commit","published_at":"2024-11-04T01:31:26.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0/manifests"},{"name":"v1.1","sha":"e30cc1555adce0ecc7bd65509a2249d47e5a41b4","kind":"commit","published_at":"2018-06-11T00:18:08.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1/manifests"},{"name":"v1.0","sha":"6ffad1620d6ece8bb8c4b93308aed8a312c96148","kind":"commit","published_at":"2015-11-09T03:58:46.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0/manifests"}]},"repo_metadata_updated_at":"2026-08-13T08:46:22.081Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:pkgsrc/time/py-rfc3339?arch=x86_64\u0026os=NetBSD","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pkgsrc/time/py-rfc3339","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pkgsrc/time/py-rfc3339","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pkgsrc/time/py-rfc3339/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-10T05:31:44.139Z","issues_count":6,"pull_requests_count":60,"avg_time_to_close_issue":60821074.0,"avg_time_to_close_pull_request":9176624.5,"issues_closed_count":6,"pull_requests_closed_count":50,"pull_request_authors_count":10,"issue_authors_count":6,"avg_comments_per_issue":1.6666666666666667,"avg_comments_per_pull_request":0.21666666666666667,"merged_pull_requests_count":43,"bot_issues_count":1,"bot_pull_requests_count":47,"past_year_issues_count":0,"past_year_pull_requests_count":41,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":155155.75757575757,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":33,"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.07317073170731707,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":41,"past_year_merged_pull_requests_count":31,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/issues","maintainers":[{"login":"kurtraschke","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kurtraschke"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pkgsrc-netbsd-x86_64-10.1-all/packages/time%2Fpy-rfc3339/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pkgsrc-netbsd-x86_64-10.1-all/packages/time%2Fpy-rfc3339/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/pkgsrc-netbsd-x86_64-10.1-all/packages/time%2Fpy-rfc3339/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pkgsrc-netbsd-x86_64-10.1-all/packages/time%2Fpy-rfc3339/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pkgsrc-netbsd-x86_64-10.1-all/packages/time%2Fpy-rfc3339/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pkgsrc-netbsd-x86_64-10.1-all/packages/time%2Fpy-rfc3339/codemeta","maintainers":[],"registry":{"name":"pkgsrc-netbsd-x86_64-10.1-all","url":"https://cdn.netbsd.org/pub/pkgsrc/packages/NetBSD/x86_64/10.1/All","ecosystem":"pkgsrc","default":true,"packages_count":19690,"maintainers_count":0,"namespaces_count":43,"keywords_count":368,"github":"pkgsrc","metadata":{"funded_packages_count":479},"icon_url":"https://github.com/pkgsrc.png","created_at":"2026-05-26T08:59:24.518Z","updated_at":"2026-08-24T05:00:24.175Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pkgsrc-netbsd-x86_64-10.1-all/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pkgsrc-netbsd-x86_64-10.1-all/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pkgsrc-netbsd-x86_64-10.1-all/namespaces"}},{"id":12873891,"name":"python313Packages.pyrfc3339","ecosystem":"nixpkgs","description":"Generate and parse RFC 3339 timestamps","homepage":"https://github.com/kurtraschke/pyRFC3339","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/kurtraschke/pyRFC3339","keywords_array":["python"],"namespace":null,"versions_count":2,"first_release_published_at":"2026-01-27T04:13:11.613Z","latest_release_published_at":"2026-03-07T00:40:19.312Z","latest_release_number":"2.1.0","last_synced_at":"2026-03-07T00:40:20.991Z","created_at":"2026-01-27T04:13:11.385Z","updated_at":"2026-08-13T08:46:22.088Z","registry_url":"https://search.nixos.org/packages?channel=unstable\u0026query=python313Packages.pyrfc3339","install_command":"nix-env -iA nixpkgs.python313Packages.pyrfc3339","documentation_url":"https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/development/python-modules/pyrfc3339/default.nix#L46","metadata":{"nix_attribute":"python3.13-pyrfc3339-2.1.0","position":"pkgs/development/python-modules/pyrfc3339/default.nix:46","platforms":["aarch64-linux","armv5tel-linux","armv6l-linux","armv7a-linux","armv7l-linux","i686-linux","loongarch64-linux","m68k-linux","microblaze-linux","microblazeel-linux","mips-linux","mips64-linux","mips64el-linux","mipsel-linux","powerpc-linux","powerpc64-linux","powerpc64le-linux","riscv32-linux","riscv64-linux","s390-linux","s390x-linux","x86_64-linux","x86_64-darwin","aarch64-darwin","aarch64-windows","x86_64-windows","i686-windows","i686-freebsd","x86_64-freebsd","aarch64-freebsd"],"broken":false,"insecure":false,"unfree":false,"outputs":["dist","out"],"upstream_ecosystem":"pypi","upstream_name":"pyrfc3339","upstream_purl":"pkg:pypi/pyrfc3339"},"repo_metadata":{"id":643910,"uuid":"285928","full_name":"kurtraschke/pyRFC3339","owner":"kurtraschke","description":"Python library for generating and parsing RFC 3339-compliant timestamps.","archived":false,"fork":false,"pushed_at":"2026-08-09T18:23:19.000Z","size":251,"stargazers_count":15,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-08-13T07:52:13.230Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pyrfc3339.readthedocs.io/","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/kurtraschke.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2009-08-23T20:36:54.000Z","updated_at":"2026-08-09T18:23:20.000Z","dependencies_parsed_at":"2026-08-06T02:35:38.564Z","dependency_job_id":null,"html_url":"https://github.com/kurtraschke/pyRFC3339","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/kurtraschke/pyRFC3339","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/sbom","scorecard":{"id":574093,"data":{"date":"2025-08-11","repo":{"name":"github.com/kurtraschke/pyRFC3339","commit":"2fb337c497daa31c7eeec8c0d38771acf3c04f45"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.1,"checks":[{"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":"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":"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":"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/pypi-publish.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:80: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:119: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-python.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-python.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/pypi-publish.yml:25","Info:   0 out of   7 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 third-party GitHubAction dependencies pinned","Info:   0 out of   1 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":"Code-Review","score":0,"reason":"Found 1/24 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/pypi-publish.yml:70","Warn: no topLevel permission defined: .github/workflows/pypi-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/test-python.yml:1"],"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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Signed-Releases","score":2,"reason":"1 out of the last 3 releases have a total of 1 signed artifacts.","details":["Info: signed release artifact: pyRFC3339-2.0.1-py3-none-any.whl.sigstore.json: https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","Warn: release artifact v1.1 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603","Warn: release artifact v2.0.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/183285619","Warn: release artifact v1.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603"],"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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/pypi-publish.yml:39"],"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":"SAST","score":8,"reason":"SAST tool is not run on all commits -- score normalized to 8","details":["Warn: 6 commits out of 7 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-20T17:11:19.852Z","repository_id":643910,"created_at":"2025-08-20T17:11:19.852Z","updated_at":"2025-08-20T17:11:19.852Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36601171,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-13T02:00:06.325Z","response_time":111,"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":"kurtraschke","name":"Kurt Raschke","uuid":"118546","kind":"user","description":"","email":"","website":"https://kurtraschke.com","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/118546?v=4","repositories_count":69,"last_synced_at":"2024-04-16T01:04:54.989Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/kurtraschke","funding_links":[],"total_stars":156,"followers":55,"following":0,"created_at":"2022-11-02T18:58:51.327Z","updated_at":"2024-04-16T01:05:07.682Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke/repositories"},"tags":[{"name":"v2.1.0","sha":"ff6ec789381717903a84912ea7b6fa527b0d0deb","kind":"commit","published_at":"2025-08-23T16:22:25.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0/manifests"},{"name":"v2.0.1","sha":"a11f99fe020ee21076c90fc3d1ad5bf801742c57","kind":"commit","published_at":"2024-11-04T01:40:49.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1/manifests"},{"name":"v2.0","sha":"b326744f5556085b05db29a07e7c31de8459154c","kind":"commit","published_at":"2024-11-04T01:31:26.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0/manifests"},{"name":"v1.1","sha":"e30cc1555adce0ecc7bd65509a2249d47e5a41b4","kind":"commit","published_at":"2018-06-11T00:18:08.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1/manifests"},{"name":"v1.0","sha":"6ffad1620d6ece8bb8c4b93308aed8a312c96148","kind":"commit","published_at":"2015-11-09T03:58:46.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0/manifests"}]},"repo_metadata_updated_at":"2026-08-13T08:46:22.088Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{},"purl":"pkg:nix/python313Packages.pyrfc3339?channel=unstable","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/nixpkgs/python313Packages.pyrfc3339","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/nixpkgs/python313Packages.pyrfc3339","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/nixpkgs/python313Packages.pyrfc3339/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-10T05:31:44.139Z","issues_count":6,"pull_requests_count":60,"avg_time_to_close_issue":60821074.0,"avg_time_to_close_pull_request":9176624.5,"issues_closed_count":6,"pull_requests_closed_count":50,"pull_request_authors_count":10,"issue_authors_count":6,"avg_comments_per_issue":1.6666666666666667,"avg_comments_per_pull_request":0.21666666666666667,"merged_pull_requests_count":43,"bot_issues_count":1,"bot_pull_requests_count":47,"past_year_issues_count":0,"past_year_pull_requests_count":41,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":155155.75757575757,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":33,"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.07317073170731707,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":41,"past_year_merged_pull_requests_count":31,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/issues","maintainers":[{"login":"kurtraschke","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kurtraschke"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/packages/python313Packages.pyrfc3339/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/packages/python313Packages.pyrfc3339/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/packages/python313Packages.pyrfc3339/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/packages/python313Packages.pyrfc3339/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/packages/python313Packages.pyrfc3339/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/packages/python313Packages.pyrfc3339/codemeta","maintainers":[],"registry":{"name":"nixpkgs-unstable","url":"https://channels.nixos.org/nixos-unstable","ecosystem":"nixpkgs","default":true,"packages_count":153756,"maintainers_count":4901,"namespaces_count":0,"keywords_count":3257,"github":"NixOS","metadata":{"funded_packages_count":5996},"icon_url":"https://github.com/NixOS.png","created_at":"2026-01-25T22:30:52.762Z","updated_at":"2026-08-24T05:00:11.845Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/namespaces"}},{"id":13088355,"name":"python312Packages.pyrfc3339","ecosystem":"nixpkgs","description":"Generate and parse RFC 3339 timestamps","homepage":"https://github.com/kurtraschke/pyRFC3339","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/kurtraschke/pyRFC3339","keywords_array":["python"],"namespace":null,"versions_count":1,"first_release_published_at":"2026-02-01T18:11:06.315Z","latest_release_published_at":"2026-02-01T18:11:06.315Z","latest_release_number":"1.1","last_synced_at":"2026-04-10T02:01:55.016Z","created_at":"2026-02-01T18:09:19.098Z","updated_at":"2026-08-13T08:46:22.096Z","registry_url":"https://search.nixos.org/packages?channel=24.11\u0026query=python312Packages.pyrfc3339","install_command":"nix-env -iA nixpkgs.python312Packages.pyrfc3339","documentation_url":"https://github.com/NixOS/nixpkgs/blob/nixos-24.11/pkgs/development/python-modules/pyrfc3339/default.nix#L31","metadata":{"nix_attribute":"python3.12-pyrfc3339-1.1","position":"pkgs/development/python-modules/pyrfc3339/default.nix:31","platforms":["aarch64-linux","armv5tel-linux","armv6l-linux","armv7a-linux","armv7l-linux","i686-linux","loongarch64-linux","m68k-linux","microblaze-linux","microblazeel-linux","mips-linux","mips64-linux","mips64el-linux","mipsel-linux","powerpc64-linux","powerpc64le-linux","riscv32-linux","riscv64-linux","s390-linux","s390x-linux","x86_64-linux","x86_64-darwin","i686-darwin","aarch64-darwin","armv7a-darwin","i686-cygwin","x86_64-cygwin","aarch64-windows","x86_64-windows","i686-windows","i686-freebsd","x86_64-freebsd"],"broken":false,"insecure":false,"unfree":false,"outputs":["dist","out"],"upstream_ecosystem":"pypi","upstream_name":"pyrfc3339","upstream_purl":"pkg:pypi/pyrfc3339"},"repo_metadata":{"id":643910,"uuid":"285928","full_name":"kurtraschke/pyRFC3339","owner":"kurtraschke","description":"Python library for generating and parsing RFC 3339-compliant timestamps.","archived":false,"fork":false,"pushed_at":"2026-08-09T18:23:19.000Z","size":251,"stargazers_count":15,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-08-13T07:52:13.230Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pyrfc3339.readthedocs.io/","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/kurtraschke.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2009-08-23T20:36:54.000Z","updated_at":"2026-08-09T18:23:20.000Z","dependencies_parsed_at":"2026-08-06T02:35:38.564Z","dependency_job_id":null,"html_url":"https://github.com/kurtraschke/pyRFC3339","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/kurtraschke/pyRFC3339","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/sbom","scorecard":{"id":574093,"data":{"date":"2025-08-11","repo":{"name":"github.com/kurtraschke/pyRFC3339","commit":"2fb337c497daa31c7eeec8c0d38771acf3c04f45"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.1,"checks":[{"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":"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":"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":"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/pypi-publish.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:80: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:119: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-python.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-python.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/pypi-publish.yml:25","Info:   0 out of   7 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 third-party GitHubAction dependencies pinned","Info:   0 out of   1 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":"Code-Review","score":0,"reason":"Found 1/24 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/pypi-publish.yml:70","Warn: no topLevel permission defined: .github/workflows/pypi-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/test-python.yml:1"],"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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Signed-Releases","score":2,"reason":"1 out of the last 3 releases have a total of 1 signed artifacts.","details":["Info: signed release artifact: pyRFC3339-2.0.1-py3-none-any.whl.sigstore.json: https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","Warn: release artifact v1.1 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603","Warn: release artifact v2.0.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/183285619","Warn: release artifact v1.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603"],"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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/pypi-publish.yml:39"],"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":"SAST","score":8,"reason":"SAST tool is not run on all commits -- score normalized to 8","details":["Warn: 6 commits out of 7 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-20T17:11:19.852Z","repository_id":643910,"created_at":"2025-08-20T17:11:19.852Z","updated_at":"2025-08-20T17:11:19.852Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36601171,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-13T02:00:06.325Z","response_time":111,"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":"kurtraschke","name":"Kurt Raschke","uuid":"118546","kind":"user","description":"","email":"","website":"https://kurtraschke.com","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/118546?v=4","repositories_count":69,"last_synced_at":"2024-04-16T01:04:54.989Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/kurtraschke","funding_links":[],"total_stars":156,"followers":55,"following":0,"created_at":"2022-11-02T18:58:51.327Z","updated_at":"2024-04-16T01:05:07.682Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke/repositories"},"tags":[{"name":"v2.1.0","sha":"ff6ec789381717903a84912ea7b6fa527b0d0deb","kind":"commit","published_at":"2025-08-23T16:22:25.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0/manifests"},{"name":"v2.0.1","sha":"a11f99fe020ee21076c90fc3d1ad5bf801742c57","kind":"commit","published_at":"2024-11-04T01:40:49.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1/manifests"},{"name":"v2.0","sha":"b326744f5556085b05db29a07e7c31de8459154c","kind":"commit","published_at":"2024-11-04T01:31:26.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0/manifests"},{"name":"v1.1","sha":"e30cc1555adce0ecc7bd65509a2249d47e5a41b4","kind":"commit","published_at":"2018-06-11T00:18:08.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1/manifests"},{"name":"v1.0","sha":"6ffad1620d6ece8bb8c4b93308aed8a312c96148","kind":"commit","published_at":"2015-11-09T03:58:46.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0/manifests"}]},"repo_metadata_updated_at":"2026-08-13T08:46:22.095Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:nix/python312Packages.pyrfc3339?channel=24.11\u0026repository_url=https://channels.nixos.org/nixos-24.11","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/nixpkgs/python312Packages.pyrfc3339","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/nixpkgs/python312Packages.pyrfc3339","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/nixpkgs/python312Packages.pyrfc3339/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-10T05:31:44.139Z","issues_count":6,"pull_requests_count":60,"avg_time_to_close_issue":60821074.0,"avg_time_to_close_pull_request":9176624.5,"issues_closed_count":6,"pull_requests_closed_count":50,"pull_request_authors_count":10,"issue_authors_count":6,"avg_comments_per_issue":1.6666666666666667,"avg_comments_per_pull_request":0.21666666666666667,"merged_pull_requests_count":43,"bot_issues_count":1,"bot_pull_requests_count":47,"past_year_issues_count":0,"past_year_pull_requests_count":41,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":155155.75757575757,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":33,"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.07317073170731707,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":41,"past_year_merged_pull_requests_count":31,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/issues","maintainers":[{"login":"kurtraschke","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kurtraschke"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/packages/python312Packages.pyrfc3339/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/packages/python312Packages.pyrfc3339/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/packages/python312Packages.pyrfc3339/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/packages/python312Packages.pyrfc3339/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/packages/python312Packages.pyrfc3339/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/packages/python312Packages.pyrfc3339/codemeta","maintainers":[],"registry":{"name":"nixpkgs-24.11","url":"https://channels.nixos.org/nixos-24.11","ecosystem":"nixpkgs","default":false,"packages_count":121983,"maintainers_count":3777,"namespaces_count":0,"keywords_count":739,"github":"NixOS","metadata":{"funded_packages_count":3349},"icon_url":"https://github.com/NixOS.png","created_at":"2026-01-25T22:30:53.059Z","updated_at":"2026-08-24T05:04:31.033Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/namespaces"}},{"id":12818580,"name":"python310Packages.pyRFC3339","ecosystem":"nixpkgs","description":"Generate and parse RFC 3339 timestamps","homepage":"https://github.com/kurtraschke/pyRFC3339","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/kurtraschke/pyRFC3339","keywords_array":["python"],"namespace":null,"versions_count":1,"first_release_published_at":"2026-01-26T17:40:55.463Z","latest_release_published_at":"2026-01-26T17:40:55.463Z","latest_release_number":"1.1","last_synced_at":"2026-04-18T17:07:12.534Z","created_at":"2026-01-26T17:40:55.041Z","updated_at":"2026-08-13T08:46:22.107Z","registry_url":"https://search.nixos.org/packages?channel=23.05\u0026query=python310Packages.pyRFC3339","install_command":"nix-env -iA nixpkgs.python310Packages.pyRFC3339","documentation_url":"https://github.com/NixOS/nixpkgs/blob/nixos-23.05/pkgs/development/python-modules/pyrfc3339/default.nix#L21","metadata":{"nix_attribute":"python3.10-pyRFC3339-1.1","position":"pkgs/development/python-modules/pyrfc3339/default.nix:21","platforms":["aarch64-linux","armv5tel-linux","armv6l-linux","armv7a-linux","armv7l-linux","i686-linux","loongarch64-linux","m68k-linux","microblaze-linux","microblazeel-linux","mipsel-linux","mips64el-linux","powerpc64-linux","powerpc64le-linux","riscv32-linux","riscv64-linux","s390-linux","s390x-linux","x86_64-linux","x86_64-darwin","i686-darwin","aarch64-darwin","armv7a-darwin"],"broken":false,"insecure":false,"unfree":false,"outputs":["dist","out"],"upstream_ecosystem":"pypi","upstream_name":"pyRFC3339","upstream_purl":"pkg:pypi/pyRFC3339"},"repo_metadata":{"id":643910,"uuid":"285928","full_name":"kurtraschke/pyRFC3339","owner":"kurtraschke","description":"Python library for generating and parsing RFC 3339-compliant timestamps.","archived":false,"fork":false,"pushed_at":"2026-08-09T18:23:19.000Z","size":251,"stargazers_count":15,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-08-13T07:52:13.230Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pyrfc3339.readthedocs.io/","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/kurtraschke.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2009-08-23T20:36:54.000Z","updated_at":"2026-08-09T18:23:20.000Z","dependencies_parsed_at":"2026-08-06T02:35:38.564Z","dependency_job_id":null,"html_url":"https://github.com/kurtraschke/pyRFC3339","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/kurtraschke/pyRFC3339","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/sbom","scorecard":{"id":574093,"data":{"date":"2025-08-11","repo":{"name":"github.com/kurtraschke/pyRFC3339","commit":"2fb337c497daa31c7eeec8c0d38771acf3c04f45"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.1,"checks":[{"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":"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":"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":"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/pypi-publish.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:80: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:119: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-python.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-python.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/pypi-publish.yml:25","Info:   0 out of   7 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 third-party GitHubAction dependencies pinned","Info:   0 out of   1 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":"Code-Review","score":0,"reason":"Found 1/24 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/pypi-publish.yml:70","Warn: no topLevel permission defined: .github/workflows/pypi-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/test-python.yml:1"],"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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Signed-Releases","score":2,"reason":"1 out of the last 3 releases have a total of 1 signed artifacts.","details":["Info: signed release artifact: pyRFC3339-2.0.1-py3-none-any.whl.sigstore.json: https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","Warn: release artifact v1.1 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603","Warn: release artifact v2.0.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/183285619","Warn: release artifact v1.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603"],"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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/pypi-publish.yml:39"],"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":"SAST","score":8,"reason":"SAST tool is not run on all commits -- score normalized to 8","details":["Warn: 6 commits out of 7 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-20T17:11:19.852Z","repository_id":643910,"created_at":"2025-08-20T17:11:19.852Z","updated_at":"2025-08-20T17:11:19.852Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36601171,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-13T02:00:06.325Z","response_time":111,"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":"kurtraschke","name":"Kurt Raschke","uuid":"118546","kind":"user","description":"","email":"","website":"https://kurtraschke.com","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/118546?v=4","repositories_count":69,"last_synced_at":"2024-04-16T01:04:54.989Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/kurtraschke","funding_links":[],"total_stars":156,"followers":55,"following":0,"created_at":"2022-11-02T18:58:51.327Z","updated_at":"2024-04-16T01:05:07.682Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke/repositories"},"tags":[{"name":"v2.1.0","sha":"ff6ec789381717903a84912ea7b6fa527b0d0deb","kind":"commit","published_at":"2025-08-23T16:22:25.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0/manifests"},{"name":"v2.0.1","sha":"a11f99fe020ee21076c90fc3d1ad5bf801742c57","kind":"commit","published_at":"2024-11-04T01:40:49.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1/manifests"},{"name":"v2.0","sha":"b326744f5556085b05db29a07e7c31de8459154c","kind":"commit","published_at":"2024-11-04T01:31:26.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0/manifests"},{"name":"v1.1","sha":"e30cc1555adce0ecc7bd65509a2249d47e5a41b4","kind":"commit","published_at":"2018-06-11T00:18:08.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1/manifests"},{"name":"v1.0","sha":"6ffad1620d6ece8bb8c4b93308aed8a312c96148","kind":"commit","published_at":"2015-11-09T03:58:46.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0/manifests"}]},"repo_metadata_updated_at":"2026-08-13T08:46:22.106Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:nix/python310Packages.pyRFC3339?channel=23.05\u0026repository_url=https://channels.nixos.org/nixos-23.05","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/nixpkgs/python310Packages.pyRFC3339","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/nixpkgs/python310Packages.pyRFC3339","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/nixpkgs/python310Packages.pyRFC3339/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-10T05:31:44.139Z","issues_count":6,"pull_requests_count":60,"avg_time_to_close_issue":60821074.0,"avg_time_to_close_pull_request":9176624.5,"issues_closed_count":6,"pull_requests_closed_count":50,"pull_request_authors_count":10,"issue_authors_count":6,"avg_comments_per_issue":1.6666666666666667,"avg_comments_per_pull_request":0.21666666666666667,"merged_pull_requests_count":43,"bot_issues_count":1,"bot_pull_requests_count":47,"past_year_issues_count":0,"past_year_pull_requests_count":41,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":155155.75757575757,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":33,"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.07317073170731707,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":41,"past_year_merged_pull_requests_count":31,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/issues","maintainers":[{"login":"kurtraschke","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kurtraschke"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/packages/python310Packages.pyRFC3339/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/packages/python310Packages.pyRFC3339/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/packages/python310Packages.pyRFC3339/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/packages/python310Packages.pyRFC3339/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/packages/python310Packages.pyRFC3339/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/packages/python310Packages.pyRFC3339/codemeta","maintainers":[],"registry":{"name":"nixpkgs-23.05","url":"https://channels.nixos.org/nixos-23.05","ecosystem":"nixpkgs","default":false,"packages_count":101092,"maintainers_count":2622,"namespaces_count":0,"keywords_count":613,"github":"NixOS","metadata":{"funded_packages_count":2146},"icon_url":"https://github.com/NixOS.png","created_at":"2026-01-25T22:30:53.882Z","updated_at":"2026-08-24T05:04:28.515Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-23.05/namespaces"}},{"id":13663668,"name":"pyrfc3339","ecosystem":"debian","description":null,"homepage":"https://github.com/kurtraschke/pyRFC3339","licenses":"mit","normalized_licenses":[],"repository_url":"https://github.com/kurtraschke/pyRFC3339","keywords_array":["misc"],"namespace":"main","versions_count":1,"first_release_published_at":"2026-02-12T09:51:01.804Z","latest_release_published_at":"2026-02-12T09:51:01.804Z","latest_release_number":"2.0.1-1","last_synced_at":"2026-08-02T05:12:41.021Z","created_at":"2026-02-12T09:51:01.599Z","updated_at":"2026-08-13T08:46:22.138Z","registry_url":"https://tracker.debian.org/pkg/pyrfc3339","install_command":"apt-get install pyrfc3339","documentation_url":"https://packages.debian.org/trixie/pyrfc3339","metadata":{"component":"main","architecture":"all","priority":"optional","binary":"python3-rfc3339","standards_version":"4.6.1","maintainer":"Debian Python Team \u003cteam+python@tracker.debian.org\u003e","build_depends":"debhelper-compat (= 13), dh-sequence-python3, pybuild-plugin-pyproject, python3-all, python3-pytest, python3-setuptools, python3-tz, tzdata-legacy","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":643910,"uuid":"285928","full_name":"kurtraschke/pyRFC3339","owner":"kurtraschke","description":"Python library for generating and parsing RFC 3339-compliant timestamps.","archived":false,"fork":false,"pushed_at":"2026-08-09T18:23:19.000Z","size":251,"stargazers_count":15,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-08-13T07:52:13.230Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pyrfc3339.readthedocs.io/","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/kurtraschke.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2009-08-23T20:36:54.000Z","updated_at":"2026-08-09T18:23:20.000Z","dependencies_parsed_at":"2026-08-06T02:35:38.564Z","dependency_job_id":null,"html_url":"https://github.com/kurtraschke/pyRFC3339","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/kurtraschke/pyRFC3339","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/sbom","scorecard":{"id":574093,"data":{"date":"2025-08-11","repo":{"name":"github.com/kurtraschke/pyRFC3339","commit":"2fb337c497daa31c7eeec8c0d38771acf3c04f45"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.1,"checks":[{"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":"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":"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":"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/pypi-publish.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:80: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:119: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-python.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-python.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/pypi-publish.yml:25","Info:   0 out of   7 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 third-party GitHubAction dependencies pinned","Info:   0 out of   1 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":"Code-Review","score":0,"reason":"Found 1/24 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/pypi-publish.yml:70","Warn: no topLevel permission defined: .github/workflows/pypi-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/test-python.yml:1"],"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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Signed-Releases","score":2,"reason":"1 out of the last 3 releases have a total of 1 signed artifacts.","details":["Info: signed release artifact: pyRFC3339-2.0.1-py3-none-any.whl.sigstore.json: https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","Warn: release artifact v1.1 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603","Warn: release artifact v2.0.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/183285619","Warn: release artifact v1.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603"],"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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/pypi-publish.yml:39"],"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":"SAST","score":8,"reason":"SAST tool is not run on all commits -- score normalized to 8","details":["Warn: 6 commits out of 7 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-20T17:11:19.852Z","repository_id":643910,"created_at":"2025-08-20T17:11:19.852Z","updated_at":"2025-08-20T17:11:19.852Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36601171,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-13T02:00:06.325Z","response_time":111,"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":"kurtraschke","name":"Kurt Raschke","uuid":"118546","kind":"user","description":"","email":"","website":"https://kurtraschke.com","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/118546?v=4","repositories_count":69,"last_synced_at":"2024-04-16T01:04:54.989Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/kurtraschke","funding_links":[],"total_stars":156,"followers":55,"following":0,"created_at":"2022-11-02T18:58:51.327Z","updated_at":"2024-04-16T01:05:07.682Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke/repositories"},"tags":[{"name":"v2.1.0","sha":"ff6ec789381717903a84912ea7b6fa527b0d0deb","kind":"commit","published_at":"2025-08-23T16:22:25.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0/manifests"},{"name":"v2.0.1","sha":"a11f99fe020ee21076c90fc3d1ad5bf801742c57","kind":"commit","published_at":"2024-11-04T01:40:49.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1/manifests"},{"name":"v2.0","sha":"b326744f5556085b05db29a07e7c31de8459154c","kind":"commit","published_at":"2024-11-04T01:31:26.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0/manifests"},{"name":"v1.1","sha":"e30cc1555adce0ecc7bd65509a2249d47e5a41b4","kind":"commit","published_at":"2018-06-11T00:18:08.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1/manifests"},{"name":"v1.0","sha":"6ffad1620d6ece8bb8c4b93308aed8a312c96148","kind":"commit","published_at":"2015-11-09T03:58:46.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0/manifests"}]},"repo_metadata_updated_at":"2026-08-13T08:46:22.138Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:deb/debian/pyrfc3339?arch=source\u0026distro=debian-13\u0026repository_url=https://packages.debian.org/trixie","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/debian/pyrfc3339","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/debian/pyrfc3339","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/debian/pyrfc3339/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-10T05:31:44.139Z","issues_count":6,"pull_requests_count":60,"avg_time_to_close_issue":60821074.0,"avg_time_to_close_pull_request":9176624.5,"issues_closed_count":6,"pull_requests_closed_count":50,"pull_request_authors_count":10,"issue_authors_count":6,"avg_comments_per_issue":1.6666666666666667,"avg_comments_per_pull_request":0.21666666666666667,"merged_pull_requests_count":43,"bot_issues_count":1,"bot_pull_requests_count":47,"past_year_issues_count":0,"past_year_pull_requests_count":41,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":155155.75757575757,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":33,"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.07317073170731707,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":41,"past_year_merged_pull_requests_count":31,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/issues","maintainers":[{"login":"kurtraschke","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kurtraschke"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/pyrfc3339/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/pyrfc3339/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/pyrfc3339/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/pyrfc3339/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/pyrfc3339/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/pyrfc3339/codemeta","maintainers":[],"registry":{"name":"debian-13","url":"https://packages.debian.org/trixie","ecosystem":"debian","default":false,"packages_count":38024,"maintainers_count":0,"namespaces_count":4,"keywords_count":1985,"github":"debian","metadata":{"codename":"trixie","funded_packages_count":1681},"icon_url":"https://github.com/debian.png","created_at":"2026-02-04T11:01:50.448Z","updated_at":"2026-08-24T05:05:13.674Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/namespaces"}},{"id":11016836,"name":"github.com/kurtraschke/pyRFC3339","ecosystem":"go","description":null,"homepage":null,"licenses":"mit","normalized_licenses":["MIT"],"repository_url":"https://github.com/kurtraschke/pyRFC3339","keywords_array":[],"namespace":null,"versions_count":2,"first_release_published_at":"2024-11-04T01:40:49.000Z","latest_release_published_at":"2025-08-23T16:22:25.000Z","latest_release_number":"v2.1.0+incompatible","last_synced_at":"2026-08-23T12:17:36.668Z","created_at":"2024-11-04T06:48:19.257Z","updated_at":"2026-08-23T12:17:36.668Z","registry_url":"https://pkg.go.dev/github.com/kurtraschke/pyRFC3339","install_command":"go get github.com/kurtraschke/pyRFC3339","documentation_url":"https://pkg.go.dev/github.com/kurtraschke/pyRFC3339#section-documentation","metadata":{},"repo_metadata":{"id":643910,"uuid":"285928","full_name":"kurtraschke/pyRFC3339","owner":"kurtraschke","description":"Python library for generating and parsing RFC 3339-compliant timestamps.","archived":false,"fork":false,"pushed_at":"2026-08-09T18:23:19.000Z","size":251,"stargazers_count":15,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-08-13T07:52:13.230Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pyrfc3339.readthedocs.io/","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/kurtraschke.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2009-08-23T20:36:54.000Z","updated_at":"2026-08-09T18:23:20.000Z","dependencies_parsed_at":"2026-08-06T02:35:38.564Z","dependency_job_id":null,"html_url":"https://github.com/kurtraschke/pyRFC3339","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/kurtraschke/pyRFC3339","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/sbom","scorecard":{"id":574093,"data":{"date":"2025-08-11","repo":{"name":"github.com/kurtraschke/pyRFC3339","commit":"2fb337c497daa31c7eeec8c0d38771acf3c04f45"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.1,"checks":[{"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":"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":"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":"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/pypi-publish.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:80: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:119: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-python.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-python.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/pypi-publish.yml:25","Info:   0 out of   7 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 third-party GitHubAction dependencies pinned","Info:   0 out of   1 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":"Code-Review","score":0,"reason":"Found 1/24 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/pypi-publish.yml:70","Warn: no topLevel permission defined: .github/workflows/pypi-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/test-python.yml:1"],"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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Signed-Releases","score":2,"reason":"1 out of the last 3 releases have a total of 1 signed artifacts.","details":["Info: signed release artifact: pyRFC3339-2.0.1-py3-none-any.whl.sigstore.json: https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","Warn: release artifact v1.1 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603","Warn: release artifact v2.0.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/183285619","Warn: release artifact v1.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603"],"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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/pypi-publish.yml:39"],"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":"SAST","score":8,"reason":"SAST tool is not run on all commits -- score normalized to 8","details":["Warn: 6 commits out of 7 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-20T17:11:19.852Z","repository_id":643910,"created_at":"2025-08-20T17:11:19.852Z","updated_at":"2025-08-20T17:11:19.852Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36601171,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-13T02:00:06.325Z","response_time":111,"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":"kurtraschke","name":"Kurt Raschke","uuid":"118546","kind":"user","description":"","email":"","website":"https://kurtraschke.com","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/118546?v=4","repositories_count":69,"last_synced_at":"2024-04-16T01:04:54.989Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/kurtraschke","funding_links":[],"total_stars":156,"followers":55,"following":0,"created_at":"2022-11-02T18:58:51.327Z","updated_at":"2024-04-16T01:05:07.682Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke/repositories"},"tags":[{"name":"v2.1.0","sha":"ff6ec789381717903a84912ea7b6fa527b0d0deb","kind":"commit","published_at":"2025-08-23T16:22:25.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0/manifests"},{"name":"v2.0.1","sha":"a11f99fe020ee21076c90fc3d1ad5bf801742c57","kind":"commit","published_at":"2024-11-04T01:40:49.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1/manifests"},{"name":"v2.0","sha":"b326744f5556085b05db29a07e7c31de8459154c","kind":"commit","published_at":"2024-11-04T01:31:26.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0/manifests"},{"name":"v1.1","sha":"e30cc1555adce0ecc7bd65509a2249d47e5a41b4","kind":"commit","published_at":"2018-06-11T00:18:08.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1/manifests"},{"name":"v1.0","sha":"6ffad1620d6ece8bb8c4b93308aed8a312c96148","kind":"commit","published_at":"2015-11-09T03:58:46.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0/manifests"}]},"repo_metadata_updated_at":"2026-08-13T08:46:21.947Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":6.488960705421622,"dependent_packages_count":6.0812766827155045,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":6.285118694068563},"purl":"pkg:golang/github.com/kurtraschke/py%21r%21f%21c3339","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/kurtraschke/pyRFC3339","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/kurtraschke/pyRFC3339","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/kurtraschke/pyRFC3339/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-10T05:31:44.139Z","issues_count":6,"pull_requests_count":60,"avg_time_to_close_issue":60821074.0,"avg_time_to_close_pull_request":9176624.5,"issues_closed_count":6,"pull_requests_closed_count":50,"pull_request_authors_count":10,"issue_authors_count":6,"avg_comments_per_issue":1.6666666666666667,"avg_comments_per_pull_request":0.21666666666666667,"merged_pull_requests_count":43,"bot_issues_count":1,"bot_pull_requests_count":47,"past_year_issues_count":0,"past_year_pull_requests_count":41,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":155155.75757575757,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":33,"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.07317073170731707,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":41,"past_year_merged_pull_requests_count":31,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/issues","maintainers":[{"login":"kurtraschke","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kurtraschke"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fkurtraschke%2FpyRFC3339/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fkurtraschke%2FpyRFC3339/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fkurtraschke%2FpyRFC3339/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fkurtraschke%2FpyRFC3339/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fkurtraschke%2FpyRFC3339/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fkurtraschke%2FpyRFC3339/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":2281895,"maintainers_count":0,"namespaces_count":839487,"keywords_count":124977,"github":"golang","metadata":{"funded_packages_count":67925,"sync_missing_packages_cursor":{"timestamp":"2026-08-17T00:00:58.969562Z","path":"github.com/Tektoncd/operator","version":"v0.78.0"},"rate_limit":1},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2026-08-24T05:01:22.286Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/namespaces"}},{"id":2881761,"name":"pyrfc3339","ecosystem":"pypi","description":"Generate and parse RFC 3339 timestamps","homepage":"https://github.com/kurtraschke/pyrfc3339","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/kurtraschke/pyRFC3339","keywords_array":["rfc-3339","timestamp","iso-8601","datetime"],"namespace":null,"versions_count":6,"first_release_published_at":"2011-01-26T01:52:56.000Z","latest_release_published_at":"2025-08-23T16:40:30.000Z","latest_release_number":"2.1.0","last_synced_at":"2026-08-23T12:05:34.457Z","created_at":"2022-04-10T12:17:57.153Z","updated_at":"2026-08-23T12:44:04.963Z","registry_url":"https://pypi.org/project/pyrfc3339/","install_command":"pip install pyrfc3339 --index-url https://pypi.org/simple","documentation_url":"https://pyrfc3339.readthedocs.io/","metadata":{"funding":null,"documentation":"https://pyrfc3339.readthedocs.io/","classifiers":["Development Status :: 5 - Production/Stable","Intended Audience :: Developers","Programming Language :: Python","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.9","Topic :: Internet"],"normalized_name":"pyrfc3339","project_status":null},"repo_metadata":{"id":643910,"uuid":"285928","full_name":"kurtraschke/pyRFC3339","owner":"kurtraschke","description":"Python library for generating and parsing RFC 3339-compliant timestamps.","archived":false,"fork":false,"pushed_at":"2026-08-09T18:23:19.000Z","size":251,"stargazers_count":15,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-08-13T07:52:13.230Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pyrfc3339.readthedocs.io/","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/kurtraschke.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2009-08-23T20:36:54.000Z","updated_at":"2026-08-09T18:23:20.000Z","dependencies_parsed_at":"2026-08-06T02:35:38.564Z","dependency_job_id":null,"html_url":"https://github.com/kurtraschke/pyRFC3339","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/kurtraschke/pyRFC3339","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/sbom","scorecard":{"id":574093,"data":{"date":"2025-08-11","repo":{"name":"github.com/kurtraschke/pyRFC3339","commit":"2fb337c497daa31c7eeec8c0d38771acf3c04f45"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.1,"checks":[{"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":"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":"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":"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/pypi-publish.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:80: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:119: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-python.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-python.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/pypi-publish.yml:25","Info:   0 out of   7 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 third-party GitHubAction dependencies pinned","Info:   0 out of   1 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":"Code-Review","score":0,"reason":"Found 1/24 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/pypi-publish.yml:70","Warn: no topLevel permission defined: .github/workflows/pypi-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/test-python.yml:1"],"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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Signed-Releases","score":2,"reason":"1 out of the last 3 releases have a total of 1 signed artifacts.","details":["Info: signed release artifact: pyRFC3339-2.0.1-py3-none-any.whl.sigstore.json: https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","Warn: release artifact v1.1 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603","Warn: release artifact v2.0.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/183285619","Warn: release artifact v1.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603"],"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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/pypi-publish.yml:39"],"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":"SAST","score":8,"reason":"SAST tool is not run on all commits -- score normalized to 8","details":["Warn: 6 commits out of 7 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-20T17:11:19.852Z","repository_id":643910,"created_at":"2025-08-20T17:11:19.852Z","updated_at":"2025-08-20T17:11:19.852Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36601171,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-13T02:00:06.325Z","response_time":111,"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":"kurtraschke","name":"Kurt Raschke","uuid":"118546","kind":"user","description":"","email":"","website":"https://kurtraschke.com","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/118546?v=4","repositories_count":69,"last_synced_at":"2024-04-16T01:04:54.989Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/kurtraschke","funding_links":[],"total_stars":156,"followers":55,"following":0,"created_at":"2022-11-02T18:58:51.327Z","updated_at":"2024-04-16T01:05:07.682Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke/repositories"},"tags":[{"name":"v2.1.0","sha":"ff6ec789381717903a84912ea7b6fa527b0d0deb","kind":"commit","published_at":"2025-08-23T16:22:25.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0/manifests"},{"name":"v2.0.1","sha":"a11f99fe020ee21076c90fc3d1ad5bf801742c57","kind":"commit","published_at":"2024-11-04T01:40:49.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1/manifests"},{"name":"v2.0","sha":"b326744f5556085b05db29a07e7c31de8459154c","kind":"commit","published_at":"2024-11-04T01:31:26.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0/manifests"},{"name":"v1.1","sha":"e30cc1555adce0ecc7bd65509a2249d47e5a41b4","kind":"commit","published_at":"2018-06-11T00:18:08.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1/manifests"},{"name":"v1.0","sha":"6ffad1620d6ece8bb8c4b93308aed8a312c96148","kind":"commit","published_at":"2015-11-09T03:58:46.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0/manifests"}]},"repo_metadata_updated_at":"2026-08-23T12:44:04.962Z","dependent_packages_count":12,"downloads":15906526,"downloads_period":"last-month","dependent_repos_count":220,"rankings":{"downloads":0.2184718419370534,"dependent_repos_count":1.0336055390264336,"dependent_packages_count":0.9593383294497975,"stargazers_count":15.19695873799841,"forks_count":14.198250673221713,"docker_downloads_count":0.33772503076732274,"average":5.324058358733455},"purl":"pkg:pypi/pyrfc3339","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/pyrfc3339","docker_dependents_count":72,"docker_downloads_count":305543081,"usage_url":"https://repos.ecosyste.ms/usage/pypi/pyrfc3339","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/pyrfc3339/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-22T11:32:36.510Z","issues_count":6,"pull_requests_count":60,"avg_time_to_close_issue":60821074.0,"avg_time_to_close_pull_request":9176624.5,"issues_closed_count":6,"pull_requests_closed_count":50,"pull_request_authors_count":10,"issue_authors_count":6,"avg_comments_per_issue":1.6666666666666667,"avg_comments_per_pull_request":0.21666666666666667,"merged_pull_requests_count":43,"bot_issues_count":1,"bot_pull_requests_count":47,"past_year_issues_count":0,"past_year_pull_requests_count":39,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":147998.2258064516,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":31,"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.02564102564102564,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":39,"past_year_merged_pull_requests_count":30,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/issues","maintainers":[{"login":"kurtraschke","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kurtraschke"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pyrfc3339/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pyrfc3339/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pyrfc3339/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pyrfc3339/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pyrfc3339/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pyrfc3339/codemeta","maintainers":[{"uuid":"kurtraschke","login":"kurtraschke","name":null,"email":null,"url":null,"packages_count":2,"html_url":"https://pypi.org/user/kurtraschke/","role":null,"created_at":"2023-02-25T05:22:09.913Z","updated_at":"2023-02-25T05:22:09.913Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/kurtraschke/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":930432,"maintainers_count":399682,"namespaces_count":0,"keywords_count":311773,"github":"pypi","metadata":{"funded_packages_count":58574,"rate_limit":2},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2026-08-24T05:05:47.334Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}},{"id":11016837,"name":"github.com/kurtraschke/pyrfc3339","ecosystem":"go","description":null,"homepage":null,"licenses":"mit","normalized_licenses":["MIT"],"repository_url":"https://github.com/kurtraschke/pyrfc3339","keywords_array":[],"namespace":null,"versions_count":2,"first_release_published_at":"2024-11-04T01:40:49.000Z","latest_release_published_at":"2025-08-23T16:22:25.000Z","latest_release_number":"v2.1.0+incompatible","last_synced_at":"2026-08-22T12:36:17.570Z","created_at":"2024-11-04T06:48:19.741Z","updated_at":"2026-08-22T12:36:17.570Z","registry_url":"https://pkg.go.dev/github.com/kurtraschke/pyrfc3339","install_command":"go get github.com/kurtraschke/pyrfc3339","documentation_url":"https://pkg.go.dev/github.com/kurtraschke/pyrfc3339#section-documentation","metadata":{},"repo_metadata":{"id":643910,"uuid":"285928","full_name":"kurtraschke/pyRFC3339","owner":"kurtraschke","description":"Python library for generating and parsing RFC 3339-compliant timestamps.","archived":false,"fork":false,"pushed_at":"2026-08-09T18:23:19.000Z","size":251,"stargazers_count":15,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-08-13T07:52:13.230Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pyrfc3339.readthedocs.io/","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/kurtraschke.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2009-08-23T20:36:54.000Z","updated_at":"2026-08-09T18:23:20.000Z","dependencies_parsed_at":"2026-08-06T02:35:38.564Z","dependency_job_id":null,"html_url":"https://github.com/kurtraschke/pyRFC3339","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/kurtraschke/pyRFC3339","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/sbom","scorecard":{"id":574093,"data":{"date":"2025-08-11","repo":{"name":"github.com/kurtraschke/pyRFC3339","commit":"2fb337c497daa31c7eeec8c0d38771acf3c04f45"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.1,"checks":[{"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":"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":"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":"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/pypi-publish.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:80: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:119: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi-publish.yml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/pypi-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-python.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-python.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/kurtraschke/pyRFC3339/test-python.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/pypi-publish.yml:25","Info:   0 out of   7 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 third-party GitHubAction dependencies pinned","Info:   0 out of   1 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":"Code-Review","score":0,"reason":"Found 1/24 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/pypi-publish.yml:70","Warn: no topLevel permission defined: .github/workflows/pypi-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/test-python.yml:1"],"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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Signed-Releases","score":2,"reason":"1 out of the last 3 releases have a total of 1 signed artifacts.","details":["Info: signed release artifact: pyRFC3339-2.0.1-py3-none-any.whl.sigstore.json: https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","Warn: release artifact v1.1 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 not signed: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603","Warn: release artifact v2.0.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/183285619","Warn: release artifact v1.1 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/11412241","Warn: release artifact v1.0 does not have provenance: https://api.github.com/repos/kurtraschke/pyRFC3339/releases/2092603"],"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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/pypi-publish.yml:39"],"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":"SAST","score":8,"reason":"SAST tool is not run on all commits -- score normalized to 8","details":["Warn: 6 commits out of 7 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-20T17:11:19.852Z","repository_id":643910,"created_at":"2025-08-20T17:11:19.852Z","updated_at":"2025-08-20T17:11:19.852Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36601171,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-13T02:00:06.325Z","response_time":111,"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":"kurtraschke","name":"Kurt Raschke","uuid":"118546","kind":"user","description":"","email":"","website":"https://kurtraschke.com","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/118546?v=4","repositories_count":69,"last_synced_at":"2024-04-16T01:04:54.989Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/kurtraschke","funding_links":[],"total_stars":156,"followers":55,"following":0,"created_at":"2022-11-02T18:58:51.327Z","updated_at":"2024-04-16T01:05:07.682Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurtraschke/repositories"},"tags":[{"name":"v2.1.0","sha":"ff6ec789381717903a84912ea7b6fa527b0d0deb","kind":"commit","published_at":"2025-08-23T16:22:25.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.1.0/manifests"},{"name":"v2.0.1","sha":"a11f99fe020ee21076c90fc3d1ad5bf801742c57","kind":"commit","published_at":"2024-11-04T01:40:49.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0.1/manifests"},{"name":"v2.0","sha":"b326744f5556085b05db29a07e7c31de8459154c","kind":"commit","published_at":"2024-11-04T01:31:26.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v2.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v2.0/manifests"},{"name":"v1.1","sha":"e30cc1555adce0ecc7bd65509a2249d47e5a41b4","kind":"commit","published_at":"2018-06-11T00:18:08.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.1","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.1/manifests"},{"name":"v1.0","sha":"6ffad1620d6ece8bb8c4b93308aed8a312c96148","kind":"commit","published_at":"2015-11-09T03:58:46.000Z","download_url":"https://codeload.github.com/kurtraschke/pyRFC3339/tar.gz/v1.0","html_url":"https://github.com/kurtraschke/pyRFC3339/releases/tag/v1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kurtraschke/pyRFC3339@v1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/tags/v1.0/manifests"}]},"repo_metadata_updated_at":"2026-08-13T08:46:22.053Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":6.488960705421622,"dependent_packages_count":6.0812766827155045,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":6.285118694068563},"purl":"pkg:golang/github.com/kurtraschke/pyrfc3339","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/kurtraschke/pyrfc3339","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/kurtraschke/pyrfc3339","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/kurtraschke/pyrfc3339/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-10T05:31:44.139Z","issues_count":6,"pull_requests_count":60,"avg_time_to_close_issue":60821074.0,"avg_time_to_close_pull_request":9176624.5,"issues_closed_count":6,"pull_requests_closed_count":50,"pull_request_authors_count":10,"issue_authors_count":6,"avg_comments_per_issue":1.6666666666666667,"avg_comments_per_pull_request":0.21666666666666667,"merged_pull_requests_count":43,"bot_issues_count":1,"bot_pull_requests_count":47,"past_year_issues_count":0,"past_year_pull_requests_count":41,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":155155.75757575757,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":33,"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.07317073170731707,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":41,"past_year_merged_pull_requests_count":31,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/issues","maintainers":[{"login":"kurtraschke","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kurtraschke"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fkurtraschke%2Fpyrfc3339/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fkurtraschke%2Fpyrfc3339/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fkurtraschke%2Fpyrfc3339/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fkurtraschke%2Fpyrfc3339/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fkurtraschke%2Fpyrfc3339/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fkurtraschke%2Fpyrfc3339/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":2281895,"maintainers_count":0,"namespaces_count":839487,"keywords_count":124977,"github":"golang","metadata":{"funded_packages_count":67925,"sync_missing_packages_cursor":{"timestamp":"2026-08-17T00:00:58.969562Z","path":"github.com/Tektoncd/operator","version":"v0.78.0"},"rate_limit":1},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2026-08-24T05:01:22.286Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/namespaces"}}],"commits":{"id":33764,"full_name":"kurtraschke/pyRFC3339","default_branch":"master","total_commits":156,"total_committers":8,"total_bot_commits":63,"total_bot_committers":1,"mean_commits":19.5,"dds":0.46153846153846156,"past_year_total_commits":69,"past_year_total_committers":2,"past_year_total_bot_commits":56,"past_year_total_bot_committers":1,"past_year_mean_commits":34.5,"past_year_dds":0.18840579710144922,"last_synced_at":"2026-08-19T10:02:37.079Z","last_synced_commit":"46b90ab6c36cdab880e1fffec495b95b8d4552ef","created_at":"2023-03-07T16:53:43.737Z","updated_at":"2026-08-19T10:02:35.357Z","committers":[{"name":"Kurt Raschke","email":"kurt@kurtraschke.com","login":"kurtraschke","count":84},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":63},{"name":"Hugo","email":"hugovk","login":"hugovk","count":4},{"name":"Manuel Rüger","email":"mrueg@rueg.eu","login":"mrueg","count":1},{"name":"Kjell Ericson","email":"kjell@haxx.se","login":"kjellericson","count":1},{"name":"Ivan Kozik","email":"ivan@ludios.org","login":"ivan","count":1},{"name":"Felix Yan","email":"felixonmars@archlinux.org","login":"felixonmars","count":1},{"name":"Aliaksei Urbanski","email":"mim@mim.pw","login":"Jamim","count":1}],"past_year_committers":[{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":56},{"name":"Kurt Raschke","email":"kurt@kurtraschke.com","login":"kurtraschke","count":13}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-08-20T00:00:10.776Z","repositories_count":6751073,"commits_count":978184156,"contributors_count":41233082,"owners_count":1358755,"committers_count":3352663,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues":{"table":{"full_name":"kurtraschke/pyRFC3339","html_url":"https://github.com/kurtraschke/pyRFC3339","last_synced_at":"2026-08-23T12:05:19.474Z","status":null,"issues_count":6,"pull_requests_count":60,"avg_time_to_close_issue":60821074.0,"avg_time_to_close_pull_request":9176624.5,"issues_closed_count":6,"pull_requests_closed_count":50,"pull_request_authors_count":10,"issue_authors_count":6,"avg_comments_per_issue":1.6666666666666667,"avg_comments_per_pull_request":0.21666666666666667,"merged_pull_requests_count":43,"bot_issues_count":1,"bot_pull_requests_count":47,"past_year_issues_count":0,"past_year_pull_requests_count":39,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":147998.2258064516,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":31,"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.02564102564102564,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":39,"past_year_merged_pull_requests_count":30,"created_at":"2023-05-10T21:51:51.194Z","updated_at":"2026-08-23T12:05:19.474Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurtraschke%2FpyRFC3339/issues","issue_labels_count":{"table":{"dependencies":1}},"pull_request_labels_count":{"table":{"dependencies":47,"github_actions":39,"python":3}},"issue_author_associations_count":{"table":{"NONE":5,"CONTRIBUTOR":1}},"pull_request_author_associations_count":{"table":{"CONTRIBUTOR":54,"NONE":5,"OWNER":1}},"issue_authors":{"table":{"marianoguerra":1,"fmalchemist92":1,"rogpeppe":1,"hogarthj":1,"dependabot[bot]":1,"rmunn":1}},"pull_request_authors":{"table":{"dependabot[bot]":47,"hugovk":3,"ekohl":2,"matthewdva":2,"felixonmars":1,"mrueg":1,"kjellericson":1,"Jamim":1,"ivan":1,"kurtraschke":1}},"host":{"table":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-08-24T00:00:06.384Z","repositories_count":16301769,"issues_count":42335015,"pull_requests_count":134763975,"authors_count":11516393,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"}},"past_year_issue_labels_count":{"table":{}},"past_year_pull_request_labels_count":{"table":{"dependencies":39,"github_actions":37,"python":2}},"past_year_issue_author_associations_count":{"table":{}},"past_year_pull_request_author_associations_count":{"table":{"CONTRIBUTOR":39}},"past_year_issue_authors":{"table":{}},"past_year_pull_request_authors":{"table":{"dependabot[bot]":39}},"maintainers":[{"table":{"login":"kurtraschke","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kurtraschke"}}],"active_maintainers":[]}},"events":{"total":{"CreateEvent":29,"DeleteEvent":37,"IssueCommentEvent":16,"IssuesEvent":4,"PullRequestEvent":49,"PushEvent":49,"ReleaseEvent":1,"WatchEvent":1},"last_year":{"CreateEvent":20,"DeleteEvent":29,"IssueCommentEvent":5,"PullRequestEvent":34,"PushEvent":22}},"keywords":[],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/zizmor.yml","sha":null,"kind":"manifest","created_at":"2026-03-18T05:01:29.761Z","updated_at":"2026-03-18T05:01:29.761Z","repository_link":"https://github.com/kurtraschke/pyRFC3339/blob/main/.github/workflows/zizmor.yml","dependencies":[{"id":25841757888,"package_name":"actions/checkout","ecosystem":"actions","requirements":"8e8c483db84b4bee98b60c0593521ed34d9990e8","direct":true,"kind":"composite","optional":false},{"id":25841757937,"package_name":"zizmorcore/zizmor-action","ecosystem":"actions","requirements":"e639db99335bc9038abc0e066dfcd72e23d26fb4","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"pypi","filepath":"docs/requirements.txt","sha":null,"kind":"manifest","created_at":"2026-03-18T05:01:30.215Z","updated_at":"2026-03-18T05:01:30.215Z","repository_link":"https://github.com/kurtraschke/pyRFC3339/blob/main/docs/requirements.txt","dependencies":[{"id":25841757955,"package_name":"Sphinx","ecosystem":"pypi","requirements":"==8.2.3","direct":true,"kind":"runtime","optional":false},{"id":25841758054,"package_name":"sphinx-issues","ecosystem":"pypi","requirements":"==5.0.1","direct":true,"kind":"runtime","optional":false},{"id":25841758107,"package_name":"sphinx-rtd-theme","ecosystem":"pypi","requirements":"==3.0.2","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2026-03-18T05:01:31.766Z","updated_at":"2026-03-18T05:01:31.766Z","repository_link":"https://github.com/kurtraschke/pyRFC3339/blob/main/pyproject.toml","dependencies":[]},{"ecosystem":"actions","filepath":".github/workflows/python.yml","sha":null,"kind":"manifest","created_at":"2026-03-18T05:01:29.676Z","updated_at":"2026-03-18T05:01:29.676Z","repository_link":"https://github.com/kurtraschke/pyRFC3339/blob/main/.github/workflows/python.yml","dependencies":[{"id":25841757864,"package_name":"actions/checkout","ecosystem":"actions","requirements":"8e8c483db84b4bee98b60c0593521ed34d9990e8","direct":true,"kind":"composite","optional":false},{"id":25841757865,"package_name":"astral-sh/setup-uv","ecosystem":"actions","requirements":"681c641aba71e4a1c380be3ab5e12ad51f415867","direct":true,"kind":"composite","optional":false},{"id":25841757866,"package_name":"actions/upload-pages-artifact","ecosystem":"actions","requirements":"7b1f4a764d45c48632c6b24a0339c27f5614fb0b","direct":true,"kind":"composite","optional":false},{"id":25841757867,"package_name":"actions/deploy-pages","ecosystem":"actions","requirements":"d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e","direct":true,"kind":"composite","optional":false},{"id":25841757868,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"83679a892e2d95755f2dac6acb0bfd1e9ac5d548","direct":true,"kind":"composite","optional":false},{"id":25841757869,"package_name":"actions/upload-artifact","ecosystem":"actions","requirements":"b7c566a772e6b6bfb58ed0dc250532a479d7789f","direct":true,"kind":"composite","optional":false},{"id":25841757870,"package_name":"actions/download-artifact","ecosystem":"actions","requirements":"37930b1c2abaa49bbe596cd826c3c89aef350131","direct":true,"kind":"composite","optional":false},{"id":25841757871,"package_name":"pypa/gh-action-pypi-publish","ecosystem":"actions","requirements":"ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e","direct":true,"kind":"composite","optional":false},{"id":25841757872,"package_name":"sigstore/gh-action-sigstore-python","ecosystem":"actions","requirements":"a5caf349bc536fbef3668a10ed7f5cd309a4b53d","direct":true,"kind":"composite","optional":false}]}],"score":24.375844053128972,"created_at":"2025-11-11T15:17:01.694Z","updated_at":"2026-08-24T12:34:17.787Z","avatar_url":"https://github.com/kurtraschke.png","language":"Python","codemeta":null,"publiccode":null,"project_url":"https://summary.ecosyste.ms/api/v1/projects/369315","html_url":"https://summary.ecosyste.ms/projects/369315"}