{"id":150,"name":null,"description":"Ruby One Time Password library","url":"https://github.com/mdp/rotp","last_synced_at":"2026-07-26T11:00:55.325Z","repository":{"id":37934487,"uuid":"1362437","full_name":"mdp/rotp","owner":"mdp","description":"Ruby One Time Password library","archived":false,"fork":false,"pushed_at":"2025-11-24T21:17:25.000Z","size":297,"stargazers_count":1661,"open_issues_count":11,"forks_count":480,"subscribers_count":22,"default_branch":"main","last_synced_at":"2026-06-12T18:07:22.022Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://rubydoc.info/github/mdp/rotp/master/frames","language":"Ruby","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/mdp.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2011-02-13T18:20:59.000Z","updated_at":"2026-06-09T01:25:34.000Z","dependencies_parsed_at":"2024-06-18T10:57:30.381Z","dependency_job_id":"edbb1786-f1ba-42bb-8a28-672b0c13ceb5","html_url":"https://github.com/mdp/rotp","commit_stats":{"total_commits":227,"total_committers":46,"mean_commits":4.934782608695652,"dds":"0.42731277533039647","last_synced_commit":"1fbd30d94e5c986b0e252e3257b2f345735439ce"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/mdp/rotp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdp","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/sbom","scorecard":{"id":633378,"data":{"date":"2025-08-11","repo":{"name":"github.com/mdp/rotp","commit":"bad1a3564fdc030422c2fb009e9341413814e9cb"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.8,"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":7,"reason":"9 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 7","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":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":3,"reason":"Found 6/16 approved changesets -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/release.yaml:1","Warn: no topLevel permission defined: .github/workflows/test.yaml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yaml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/mdp/rotp/release.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yaml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/mdp/rotp/release.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yaml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/mdp/rotp/release.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yaml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/mdp/rotp/test.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yaml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/mdp/rotp/test.yaml/main?enable=pin","Warn: containerImage not pinned by hash: Dockerfile-2.3:1: pin your Docker image by updating ruby:2.3 to ruby:2.3@sha256:78cc821d95c48621e577b6b0d44c9d509f0f2a4e089b9fd0ca2ae86f274773a8","Warn: containerImage not pinned by hash: Dockerfile-2.7:1: pin your Docker image by updating ruby:2.7 to ruby:2.7@sha256:2347de892e419c7160fc21dec721d5952736909f8c3fbb7f84cb4a07aaf9ce7d","Warn: containerImage not pinned by hash: Dockerfile-3.0:1: pin your Docker image by updating ruby:3.0 to ruby:3.0@sha256:dcb8a8a6ee981f949da505cb9f4f15cde696e7bcb088955bc1f92f23a4cd7a72","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   3 third-party GitHubAction dependencies pinned","Info:   0 out of   3 containerImage 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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-21T08:28:14.973Z","repository_id":37934487,"created_at":"2025-08-21T08:28:14.973Z","updated_at":"2025-08-21T08:28:14.973Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34271500,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-13T02:00:06.617Z","response_time":62,"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":"mdp","name":"Mark Percival","uuid":"2868","kind":"user","description":"","email":"","website":"https://mdp.github.io","location":"Atlanta, GA","twitter":"mdp","company":null,"icon_url":"https://avatars.githubusercontent.com/u/2868?u=90e0995d4bdae3bfdb66b47b3864a423d72398d7\u0026v=4","repositories_count":188,"last_synced_at":"2024-04-14T08:26:15.914Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/mdp","funding_links":[],"total_stars":3878,"followers":323,"following":14,"created_at":"2022-11-02T16:45:21.114Z","updated_at":"2024-04-14T08:26:34.467Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdp","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdp/repositories"},"packages":[{"id":13407258,"name":"ruby-rotp","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/mdp/rotp","licenses":null,"normalized_licenses":[],"repository_url":"https://github.com/mdp/rotp","keywords_array":["universe/misc"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-06T15:56:21.305Z","latest_release_published_at":"2026-02-06T15:56:21.305Z","latest_release_number":"6.2.0-2","last_synced_at":"2026-03-06T16:41:30.730Z","created_at":"2026-02-06T15:56:20.420Z","updated_at":"2026-04-11T11:34:01.823Z","registry_url":"https://launchpad.net/ubuntu/+source/ruby-rotp","install_command":"apt-get install ruby-rotp","documentation_url":null,"metadata":{"component":"universe","architecture":"all","priority":"optional","binary":"ruby-rotp","standards_version":"4.6.0","maintainer":"Debian Ruby Team \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper-compat (= 13), gem2deb, libjs-jquery, rake, ruby-rspec (\u003e= 3.0.0), ruby-timecop, ruby-simplecov, yard","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{},"repo_metadata_updated_at":"2026-04-11T11:34:01.796Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{},"purl":"pkg:deb/ubuntu/ruby-rotp?arch=source\u0026distro=ubuntu-24.04","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/ruby-rotp","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/ruby-rotp","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/ruby-rotp/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/ruby-rotp/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/ruby-rotp/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/ruby-rotp/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/ruby-rotp/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/ruby-rotp/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/ruby-rotp/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":1701,"github":"ubuntu","metadata":{"codename":"noble","funded_packages_count":198},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:45.928Z","updated_at":"2026-06-10T05:17:44.581Z","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":12312930,"name":"rotp","ecosystem":"rubygems","description":"Works for both HOTP and TOTP, and includes QR Code provisioning","homepage":"https://github.com/mdp/rotp","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/mdp/rotp","keywords_array":[],"namespace":null,"versions_count":38,"first_release_published_at":"2011-02-12T23:44:23.538Z","latest_release_published_at":"2023-08-30T19:23:10.162Z","latest_release_number":"6.3.0","last_synced_at":"2026-07-02T15:29:05.536Z","created_at":"2025-10-07T05:32:41.003Z","updated_at":"2026-07-02T17:44:53.563Z","registry_url":"https://gem.coop/gems/rotp","install_command":"gem install rotp -s https://gem.coop","documentation_url":"http://www.rubydoc.info/gems/rotp/","metadata":{"funding":null},"repo_metadata":{"id":37934487,"uuid":"1362437","full_name":"mdp/rotp","owner":"mdp","description":"Ruby One Time Password library","archived":false,"fork":false,"pushed_at":"2025-11-24T21:17:25.000Z","size":297,"stargazers_count":1661,"open_issues_count":11,"forks_count":480,"subscribers_count":22,"default_branch":"main","last_synced_at":"2026-06-12T18:07:22.022Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://rubydoc.info/github/mdp/rotp/master/frames","language":"Ruby","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/mdp.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2011-02-13T18:20:59.000Z","updated_at":"2026-06-09T01:25:34.000Z","dependencies_parsed_at":"2024-06-18T10:57:30.381Z","dependency_job_id":"edbb1786-f1ba-42bb-8a28-672b0c13ceb5","html_url":"https://github.com/mdp/rotp","commit_stats":{"total_commits":227,"total_committers":46,"mean_commits":4.934782608695652,"dds":"0.42731277533039647","last_synced_commit":"1fbd30d94e5c986b0e252e3257b2f345735439ce"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/mdp/rotp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdp","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/sbom","scorecard":{"id":633378,"data":{"date":"2025-08-11","repo":{"name":"github.com/mdp/rotp","commit":"bad1a3564fdc030422c2fb009e9341413814e9cb"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.8,"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":7,"reason":"9 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 7","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":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":3,"reason":"Found 6/16 approved changesets -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/release.yaml:1","Warn: no topLevel permission defined: .github/workflows/test.yaml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yaml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/mdp/rotp/release.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yaml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/mdp/rotp/release.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yaml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/mdp/rotp/release.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yaml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/mdp/rotp/test.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yaml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/mdp/rotp/test.yaml/main?enable=pin","Warn: containerImage not pinned by hash: Dockerfile-2.3:1: pin your Docker image by updating ruby:2.3 to ruby:2.3@sha256:78cc821d95c48621e577b6b0d44c9d509f0f2a4e089b9fd0ca2ae86f274773a8","Warn: containerImage not pinned by hash: Dockerfile-2.7:1: pin your Docker image by updating ruby:2.7 to ruby:2.7@sha256:2347de892e419c7160fc21dec721d5952736909f8c3fbb7f84cb4a07aaf9ce7d","Warn: containerImage not pinned by hash: Dockerfile-3.0:1: pin your Docker image by updating ruby:3.0 to ruby:3.0@sha256:dcb8a8a6ee981f949da505cb9f4f15cde696e7bcb088955bc1f92f23a4cd7a72","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   3 third-party GitHubAction dependencies pinned","Info:   0 out of   3 containerImage 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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-21T08:28:14.973Z","repository_id":37934487,"created_at":"2025-08-21T08:28:14.973Z","updated_at":"2025-08-21T08:28:14.973Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34271500,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-13T02:00:06.617Z","response_time":62,"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":"mdp","name":"Mark Percival","uuid":"2868","kind":"user","description":"","email":"","website":"https://mdp.github.io","location":"Atlanta, GA","twitter":"mdp","company":null,"icon_url":"https://avatars.githubusercontent.com/u/2868?u=90e0995d4bdae3bfdb66b47b3864a423d72398d7\u0026v=4","repositories_count":188,"last_synced_at":"2024-04-14T08:26:15.914Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/mdp","funding_links":[],"total_stars":3878,"followers":323,"following":14,"created_at":"2022-11-02T16:45:21.114Z","updated_at":"2024-04-14T08:26:34.467Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdp","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdp/repositories"},"tags":[{"name":"v6.3.1","sha":"bad1a3564fdc030422c2fb009e9341413814e9cb","kind":"commit","published_at":"2025-06-03T23:49:27.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v6.3.1","html_url":"https://github.com/mdp/rotp/releases/tag/v6.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v6.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.3.1/manifests"},{"name":"v6.3.0","sha":"131d2c325ba5f94887b27eefe24a214bdbcd0a5c","kind":"commit","published_at":"2023-08-30T18:52:51.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v6.3.0","html_url":"https://github.com/mdp/rotp/releases/tag/v6.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v6.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.3.0/manifests"},{"name":"v6.2.2","sha":"f0624c0fc866f2f7db199925588965217aac3140","kind":"commit","published_at":"2022-12-13T21:50:08.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v6.2.2","html_url":"https://github.com/mdp/rotp/releases/tag/v6.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v6.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.2.2/manifests"},{"name":"v6.2.1","sha":"703bee153bb814f0b0046bad2e52343dea7384bb","kind":"commit","published_at":"2022-11-11T14:07:05.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v6.2.1","html_url":"https://github.com/mdp/rotp/releases/tag/v6.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v6.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.2.1/manifests"},{"name":"v6.2.0","sha":"62874be71d74380d252c73409dd81da08b021497","kind":"tag","published_at":"2021-01-14T16:52:44.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v6.2.0","html_url":"https://github.com/mdp/rotp/releases/tag/v6.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v6.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.2.0/manifests"},{"name":"v6.1.0","sha":"6b42d17781a55d4fbf992ea25e6f6e742a049cef","kind":"tag","published_at":"2020-08-03T18:00:53.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v6.1.0","html_url":"https://github.com/mdp/rotp/releases/tag/v6.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v6.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.1.0/manifests"},{"name":"v6.0.0","sha":"5cf31c2ca3c9802a8d4876b0cf6ea199f51057b8","kind":"commit","published_at":"2020-04-23T15:53:41.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v6.0.0","html_url":"https://github.com/mdp/rotp/releases/tag/v6.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v6.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.0.0/manifests"},{"name":"v5.1.0","sha":"15d5104e3cb99f97d36c772f8f09cf7e2e77de20","kind":"commit","published_at":"2019-06-27T18:41:18.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v5.1.0","html_url":"https://github.com/mdp/rotp/releases/tag/v5.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v5.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v5.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v5.1.0/manifests"},{"name":"v5.0.0","sha":"c38462855747b62607b8475d9b45c4cfd92ba66b","kind":"commit","published_at":"2019-05-28T13:51:18.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v5.0.0","html_url":"https://github.com/mdp/rotp/releases/tag/v5.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v5.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v5.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v5.0.0/manifests"},{"name":"v4.1.0","sha":"2698c91539cfb868790e8bb7d5d4d8cf78f0bbfc","kind":"commit","published_at":"2019-02-28T16:20:58.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v4.1.0","html_url":"https://github.com/mdp/rotp/releases/tag/v4.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v4.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.1.0/manifests"},{"name":"v4.0.2","sha":"fabd3cb113c709138cdb24c916514dd36dfce14d","kind":"commit","published_at":"2018-11-01T19:01:03.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v4.0.2","html_url":"https://github.com/mdp/rotp/releases/tag/v4.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v4.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.0.2/manifests"},{"name":"v4.0.1","sha":"04e8dc8094f874d9b89b45bc5e75b311423b2bdb","kind":"commit","published_at":"2018-11-01T18:56:49.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v4.0.1","html_url":"https://github.com/mdp/rotp/releases/tag/v4.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v4.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.0.1/manifests"},{"name":"v4.0.0","sha":"52834910b8a621dee14af7a1267aad38618b3031","kind":"commit","published_at":"2018-11-01T17:06:34.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v4.0.0","html_url":"https://github.com/mdp/rotp/releases/tag/v4.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v4.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.0.0/manifests"},{"name":"v3.3.1","sha":"c82113eee6c9e7d0a03df8cf65ea50a2653c3916","kind":"commit","published_at":"2018-03-02T17:23:59.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v3.3.1","html_url":"https://github.com/mdp/rotp/releases/tag/v3.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v3.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v3.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v3.3.1/manifests"},{"name":"v3.3.0","sha":"07c0a732d27471d13719eddda998bde2a300b917","kind":"commit","published_at":"2016-09-23T01:10:41.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v3.3.0","html_url":"https://github.com/mdp/rotp/releases/tag/v3.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v3.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v3.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v3.3.0/manifests"},{"name":"v2.1.2","sha":"ff5ebaf9db0e991b2a6d1e308a74562fa7fb3f7f","kind":"commit","published_at":"2016-04-12T19:38:22.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v2.1.2","html_url":"https://github.com/mdp/rotp/releases/tag/v2.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v2.1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v2.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v2.1.2/manifests"},{"name":"v2.1.1","sha":"a9a5446e0fa656126996f67577f6d0ee5eec0ccd","kind":"commit","published_at":"2015-06-03T00:17:05.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v2.1.1","html_url":"https://github.com/mdp/rotp/releases/tag/v2.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v2.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v2.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v2.1.1/manifests"},{"name":"v2.1.0","sha":"0e65918ce8695870c99fd04c35a7dae8d4335782","kind":"commit","published_at":"2015-01-26T01:17:57.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v2.1.0","html_url":"https://github.com/mdp/rotp/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v2.1.0/manifests"},{"name":"v1.3.1","sha":"941e66c278e5aa0aaacae688052d711de5c3a6dc","kind":"tag","published_at":"2011-09-23T17:46:41.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v1.3.1","html_url":"https://github.com/mdp/rotp/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v1.3.1/manifests"}]},"repo_metadata_updated_at":"2026-07-02T17:44:53.540Z","dependent_packages_count":0,"downloads":132916290,"downloads_period":"total","dependent_repos_count":0,"rankings":{"downloads":0.2113913443083827,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":0.13299813478225608,"average":0.0860973697726597},"purl":"pkg:gem/rotp?repository_url=https://gem.coop","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/rubygems/rotp","docker_dependents_count":287,"docker_downloads_count":695222824,"usage_url":"https://repos.ecosyste.ms/usage/rubygems/rotp","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/rubygems/rotp/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-06-13T04:02:23.507Z","issues_count":46,"pull_requests_count":94,"avg_time_to_close_issue":6630961.048780488,"avg_time_to_close_pull_request":9226129.839506174,"issues_closed_count":41,"pull_requests_closed_count":81,"pull_request_authors_count":46,"issue_authors_count":46,"avg_comments_per_issue":2.217391304347826,"avg_comments_per_pull_request":1.1063829787234043,"merged_pull_requests_count":60,"bot_issues_count":0,"bot_pull_requests_count":9,"past_year_issues_count":1,"past_year_pull_requests_count":9,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":3019859.6666666665,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":3,"past_year_pull_request_authors_count":3,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":0.0,"past_year_avg_comments_per_pull_request":1.222222222222222,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":3,"past_year_merged_pull_requests_count":2,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/issues","maintainers":[{"login":"mdp","count":25,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mdp"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/rotp/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/rotp/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/rotp/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/rotp/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/rotp/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/rotp/codemeta","maintainers":[{"uuid":"1075","login":"mdp","name":null,"email":null,"url":null,"packages_count":9,"html_url":"https://gem.coop/profiles/mdp","role":null,"created_at":"2025-10-08T04:54:59.466Z","updated_at":"2025-10-08T04:54:59.466Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/mdp/packages"}],"registry":{"name":"gem.coop","url":"https://gem.coop","ecosystem":"rubygems","default":false,"packages_count":193180,"maintainers_count":68098,"namespaces_count":0,"keywords_count":18400,"github":"gem-coop","metadata":{"funded_packages_count":6885},"icon_url":"https://github.com/gem-coop.png","created_at":"2025-10-06T17:24:20.932Z","updated_at":"2026-06-10T05:17:24.062Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/namespaces"}},{"id":13805196,"name":"ruby-rotp","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/mdp/rotp","licenses":null,"normalized_licenses":[],"repository_url":"https://github.com/mdp/rotp","keywords_array":["universe/misc"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-13T18:31:38.021Z","latest_release_published_at":"2026-02-13T18:31:38.021Z","latest_release_number":"6.2.0-2","last_synced_at":"2026-03-14T03:13:38.244Z","created_at":"2026-02-13T18:31:37.805Z","updated_at":"2026-04-11T11:34:01.836Z","registry_url":"https://launchpad.net/ubuntu/+source/ruby-rotp","install_command":"apt-get install ruby-rotp","documentation_url":null,"metadata":{"component":"universe","architecture":"all","priority":"optional","binary":"ruby-rotp","standards_version":"4.6.0","maintainer":"Debian Ruby Team \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper-compat (= 13), gem2deb, libjs-jquery, rake, ruby-rspec (\u003e= 3.0.0), ruby-timecop, ruby-simplecov, yard","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{},"repo_metadata_updated_at":"2026-04-11T11:34:01.816Z","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/ruby-rotp?arch=source\u0026distro=ubuntu-23.10\u0026repository_url=https://launchpad.net/ubuntu/mantic","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/ruby-rotp","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/ruby-rotp","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/ruby-rotp/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/ruby-rotp/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/ruby-rotp/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/ruby-rotp/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/ruby-rotp/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/ruby-rotp/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/ruby-rotp/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":2223,"github":"ubuntu","metadata":{"codename":"mantic","mirror":"http://old-releases.ubuntu.com/ubuntu","funded_packages_count":444},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:48.636Z","updated_at":"2026-06-10T05:17:48.008Z","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":13606047,"name":"ruby-rotp","ecosystem":"debian","description":null,"homepage":"http://github.com/mdp/rotp","licenses":null,"normalized_licenses":[],"repository_url":"https://github.com/mdp/rotp","keywords_array":["misc"],"namespace":"main","versions_count":1,"first_release_published_at":"2026-02-11T11:26:46.554Z","latest_release_published_at":"2026-02-11T11:26:46.554Z","latest_release_number":"2.1.1+dfsg-1","last_synced_at":"2026-03-14T03:02:00.764Z","created_at":"2026-02-11T11:26:46.207Z","updated_at":"2026-04-11T11:34:01.862Z","registry_url":"https://tracker.debian.org/pkg/ruby-rotp","install_command":"apt-get install ruby-rotp","documentation_url":"https://packages.debian.org/buster/ruby-rotp","metadata":{"component":"main","architecture":"all","priority":"optional","binary":"ruby-rotp","standards_version":"3.9.6","maintainer":"Debian Ruby Extras Maintainers \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper (\u003e= 7.0.50~), gem2deb, libjs-jquery, rake, ruby-rspec (\u003e= 3.0.0), ruby-timecop, yard","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{},"repo_metadata_updated_at":"2026-04-11T11:34:01.828Z","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/ruby-rotp?arch=source\u0026distro=debian-10\u0026repository_url=https://packages.debian.org/buster","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/debian/ruby-rotp","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/debian/ruby-rotp","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/debian/ruby-rotp/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/debian-10/packages/ruby-rotp/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-10/packages/ruby-rotp/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/debian-10/packages/ruby-rotp/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-10/packages/ruby-rotp/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-10/packages/ruby-rotp/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/debian-10/packages/ruby-rotp/codemeta","maintainers":[],"registry":{"name":"debian-10","url":"https://packages.debian.org/buster","ecosystem":"debian","default":false,"packages_count":28836,"maintainers_count":0,"namespaces_count":3,"keywords_count":915,"github":"debian","metadata":{"codename":"buster","mirror":"http://archive.debian.org/debian","funded_packages_count":99},"icon_url":"https://github.com/debian.png","created_at":"2026-02-04T11:01:50.156Z","updated_at":"2026-06-26T05:00:50.150Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-10/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-10/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/debian-10/namespaces"}},{"id":13530921,"name":"ruby-rotp","ecosystem":"debian","description":null,"homepage":"http://github.com/mdp/rotp","licenses":null,"normalized_licenses":[],"repository_url":"https://github.com/mdp/rotp","keywords_array":["misc"],"namespace":"main","versions_count":1,"first_release_published_at":"2026-02-10T23:37:57.999Z","latest_release_published_at":"2026-02-10T23:37:57.999Z","latest_release_number":"2.1.1+dfsg-1.1","last_synced_at":"2026-03-14T07:18:03.010Z","created_at":"2026-02-10T23:37:57.818Z","updated_at":"2026-04-11T11:34:01.826Z","registry_url":"https://tracker.debian.org/pkg/ruby-rotp","install_command":"apt-get install ruby-rotp","documentation_url":"https://packages.debian.org/bullseye/ruby-rotp","metadata":{"component":"main","architecture":"all","priority":"optional","binary":"ruby-rotp","standards_version":"3.9.6","maintainer":"Debian Ruby Extras Maintainers \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper (\u003e= 7.0.50~), gem2deb, libjs-jquery, rake, ruby-rspec (\u003e= 3.0.0), ruby-timecop, yard","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{},"repo_metadata_updated_at":"2026-04-11T11:34:01.800Z","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/ruby-rotp?arch=source\u0026distro=debian-11\u0026repository_url=https://packages.debian.org/bullseye","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/debian/ruby-rotp","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/debian/ruby-rotp","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/debian/ruby-rotp/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages/ruby-rotp/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages/ruby-rotp/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages/ruby-rotp/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages/ruby-rotp/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages/ruby-rotp/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages/ruby-rotp/codemeta","maintainers":[],"registry":{"name":"debian-11","url":"https://packages.debian.org/bullseye","ecosystem":"debian","default":false,"packages_count":31268,"maintainers_count":0,"namespaces_count":3,"keywords_count":764,"github":"debian","metadata":{"codename":"bullseye","funded_packages_count":100},"icon_url":"https://github.com/debian.png","created_at":"2026-02-04T11:01:49.702Z","updated_at":"2026-06-10T05:17:51.942Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/namespaces"}},{"id":14514048,"name":"dev-ruby/rotp","ecosystem":"gentoo","description":"The Ruby One Time Password Library","homepage":"https://github.com/mdp/rotp","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/mdp/rotp","keywords_array":["~amd64","~x86"],"namespace":"dev-ruby","versions_count":1,"first_release_published_at":"2026-04-22T07:13:25.000Z","latest_release_published_at":"2026-04-22T07:13:25.000Z","latest_release_number":"6.3.0","last_synced_at":"2026-05-27T02:49:44.030Z","created_at":"2026-05-27T02:49:43.659Z","updated_at":"2026-05-27T02:49:44.353Z","registry_url":"https://packages.gentoo.org/packages/dev-ruby/rotp","install_command":"emerge dev-ruby/rotp","documentation_url":"https://packages.gentoo.org/packages/dev-ruby/rotp","metadata":{"category":"dev-ruby","slot":"0","eapi":"8","inherit":"ruby-fakegem","iuse":"ruby_targets_ruby32 ruby_targets_ruby33 ruby_targets_ruby34 doc test test"},"repo_metadata":{},"repo_metadata_updated_at":"2026-05-27T02:49:44.326Z","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-ruby/rotp","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/gentoo/dev-ruby/rotp","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/gentoo/dev-ruby/rotp","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/gentoo/dev-ruby/rotp/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/gentoo-portage/packages/dev-ruby%2Frotp/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/gentoo-portage/packages/dev-ruby%2Frotp/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/gentoo-portage/packages/dev-ruby%2Frotp/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/gentoo-portage/packages/dev-ruby%2Frotp/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/gentoo-portage/packages/dev-ruby%2Frotp/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/gentoo-portage/packages/dev-ruby%2Frotp/codemeta","maintainers":[],"registry":{"name":"gentoo-portage","url":"https://packages.gentoo.org/","ecosystem":"gentoo","default":true,"packages_count":19456,"maintainers_count":0,"namespaces_count":174,"keywords_count":586,"github":"gentoo","metadata":{"snapshot_url":"https://distfiles.gentoo.org/snapshots/portage-latest.tar.xz","funded_packages_count":111},"icon_url":"https://github.com/gentoo.png","created_at":"2026-05-26T08:59:24.155Z","updated_at":"2026-07-02T05:01:12.111Z","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":13567091,"name":"ruby-rotp","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/mdp/rotp","licenses":null,"normalized_licenses":[],"repository_url":"https://github.com/mdp/rotp","keywords_array":["universe/misc"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-11T06:48:41.118Z","latest_release_published_at":"2026-02-11T06:48:41.118Z","latest_release_number":"6.2.0-2","last_synced_at":"2026-03-12T01:20:22.756Z","created_at":"2026-02-11T06:48:40.939Z","updated_at":"2026-04-11T11:34:01.849Z","registry_url":"https://launchpad.net/ubuntu/+source/ruby-rotp","install_command":"apt-get install ruby-rotp","documentation_url":null,"metadata":{"component":"universe","architecture":"all","priority":"optional","binary":"ruby-rotp","standards_version":"4.6.0","maintainer":"Debian Ruby Team \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper-compat (= 13), gem2deb, libjs-jquery, rake, ruby-rspec (\u003e= 3.0.0), ruby-timecop, ruby-simplecov, yard","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{},"repo_metadata_updated_at":"2026-04-11T11:34:01.823Z","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/ruby-rotp?arch=source\u0026distro=ubuntu-23.04\u0026repository_url=https://launchpad.net/ubuntu/lunar","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/ruby-rotp","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/ruby-rotp","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/ruby-rotp/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/ruby-rotp/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/ruby-rotp/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/ruby-rotp/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/ruby-rotp/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/ruby-rotp/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/ruby-rotp/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":1000,"github":"ubuntu","metadata":{"codename":"lunar","mirror":"http://old-releases.ubuntu.com/ubuntu","funded_packages_count":133},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:49.117Z","updated_at":"2026-06-10T05:17:49.008Z","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":13779703,"name":"ruby-rotp","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/mdp/rotp","licenses":null,"normalized_licenses":[],"repository_url":"https://github.com/mdp/rotp","keywords_array":["universe/misc"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-13T13:24:44.519Z","latest_release_published_at":"2026-02-13T13:24:44.519Z","latest_release_number":"6.2.0-2","last_synced_at":"2026-03-13T13:35:52.791Z","created_at":"2026-02-13T13:24:44.316Z","updated_at":"2026-04-11T11:34:02.392Z","registry_url":"https://launchpad.net/ubuntu/+source/ruby-rotp","install_command":"apt-get install ruby-rotp","documentation_url":null,"metadata":{"component":"universe","architecture":"all","priority":"optional","binary":"ruby-rotp","standards_version":"4.6.0","maintainer":"Debian Ruby Team \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper-compat (= 13), gem2deb, libjs-jquery, rake, ruby-rspec (\u003e= 3.0.0), ruby-timecop, ruby-simplecov, yard","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{},"repo_metadata_updated_at":"2026-04-11T11:34:02.364Z","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/ruby-rotp?arch=source\u0026distro=ubuntu-22.04\u0026repository_url=https://launchpad.net/ubuntu/jammy","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/ruby-rotp","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/ruby-rotp","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/ruby-rotp/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/ruby-rotp/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/ruby-rotp/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/ruby-rotp/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/ruby-rotp/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/ruby-rotp/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/ruby-rotp/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":1523,"github":"ubuntu","metadata":{"codename":"jammy","funded_packages_count":167},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:46.486Z","updated_at":"2026-06-10T05:17:45.610Z","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":13467196,"name":"ruby-rotp","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/mdp/rotp","licenses":null,"normalized_licenses":[],"repository_url":"https://github.com/mdp/rotp","keywords_array":["universe/misc"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-09T17:13:21.761Z","latest_release_published_at":"2026-02-09T17:13:21.761Z","latest_release_number":"6.2.0-2","last_synced_at":"2026-03-09T18:22:46.950Z","created_at":"2026-02-09T17:13:21.450Z","updated_at":"2026-04-11T11:34:01.821Z","registry_url":"https://launchpad.net/ubuntu/+source/ruby-rotp","install_command":"apt-get install ruby-rotp","documentation_url":null,"metadata":{"component":"universe","architecture":"all","priority":"optional","binary":"ruby-rotp","standards_version":"4.6.0","maintainer":"Debian Ruby Team \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper-compat (= 13), gem2deb, libjs-jquery, rake, ruby-rspec (\u003e= 3.0.0), ruby-timecop, ruby-simplecov, yard","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{},"repo_metadata_updated_at":"2026-04-11T11:34:01.802Z","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/ruby-rotp?arch=source\u0026distro=ubuntu-24.10\u0026repository_url=https://launchpad.net/ubuntu/oracular","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/ruby-rotp","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/ruby-rotp","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/ruby-rotp/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/ruby-rotp/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/ruby-rotp/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/ruby-rotp/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/ruby-rotp/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/ruby-rotp/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/ruby-rotp/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":1473,"github":"ubuntu","metadata":{"codename":"oracular","mirror":"http://old-releases.ubuntu.com/ubuntu","funded_packages_count":214},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:48.028Z","updated_at":"2026-06-10T05:17:05.787Z","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":13751665,"name":"ruby-rotp","ecosystem":"ubuntu","description":null,"homepage":"http://github.com/mdp/rotp","licenses":null,"normalized_licenses":[],"repository_url":"https://github.com/mdp/rotp","keywords_array":["universe/misc"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-13T07:21:56.841Z","latest_release_published_at":"2026-02-13T07:21:56.841Z","latest_release_number":"2.1.1+dfsg-1","last_synced_at":"2026-03-13T14:25:03.228Z","created_at":"2026-02-13T07:21:56.679Z","updated_at":"2026-04-11T11:34:02.390Z","registry_url":"https://launchpad.net/ubuntu/+source/ruby-rotp","install_command":"apt-get install ruby-rotp","documentation_url":null,"metadata":{"component":"universe","architecture":"all","priority":"optional","binary":"ruby-rotp","standards_version":"3.9.6","maintainer":"Debian Ruby Extras Maintainers \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper (\u003e= 7.0.50~), gem2deb, libjs-jquery, rake, ruby-rspec (\u003e= 3.0.0), ruby-timecop, yard","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{},"repo_metadata_updated_at":"2026-04-11T11:34:02.358Z","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/ruby-rotp?arch=source\u0026distro=ubuntu-20.04\u0026repository_url=https://launchpad.net/ubuntu/focal","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/ruby-rotp","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/ruby-rotp","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/ruby-rotp/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/packages/ruby-rotp/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/packages/ruby-rotp/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/packages/ruby-rotp/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/packages/ruby-rotp/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/packages/ruby-rotp/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/packages/ruby-rotp/codemeta","maintainers":[],"registry":{"name":"ubuntu-20.04","url":"https://launchpad.net/ubuntu/focal","ecosystem":"ubuntu","default":false,"packages_count":30789,"maintainers_count":0,"namespaces_count":4,"keywords_count":1430,"github":"ubuntu","metadata":{"codename":"focal","funded_packages_count":165},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:47.233Z","updated_at":"2026-06-10T05:17:46.717Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/namespaces"}},{"id":8614141,"name":"github.com/mdp/rotp","ecosystem":"go","description":null,"homepage":null,"licenses":"mit","normalized_licenses":["MIT"],"repository_url":"https://github.com/mdp/rotp","keywords_array":[],"namespace":null,"versions_count":19,"first_release_published_at":"2011-09-23T17:46:30.000Z","latest_release_published_at":"2025-06-03T23:49:27.000Z","latest_release_number":"v6.3.1+incompatible","last_synced_at":"2026-06-30T23:05:08.025Z","created_at":"2023-12-02T02:11:59.540Z","updated_at":"2026-06-30T23:05:08.025Z","registry_url":"https://pkg.go.dev/github.com/mdp/rotp","install_command":"go get github.com/mdp/rotp","documentation_url":"https://pkg.go.dev/github.com/mdp/rotp#section-documentation","metadata":{},"repo_metadata":{"id":37934487,"uuid":"1362437","full_name":"mdp/rotp","owner":"mdp","description":"Ruby One Time Password library","archived":false,"fork":false,"pushed_at":"2025-08-12T06:41:47.000Z","size":297,"stargazers_count":1642,"open_issues_count":10,"forks_count":469,"subscribers_count":24,"default_branch":"main","last_synced_at":"2025-10-06T13:43:01.825Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://rubydoc.info/github/mdp/rotp/master/frames","language":"Ruby","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/mdp.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2011-02-13T18:20:59.000Z","updated_at":"2025-10-04T17:34:06.000Z","dependencies_parsed_at":"2024-06-18T10:57:30.381Z","dependency_job_id":"edbb1786-f1ba-42bb-8a28-672b0c13ceb5","html_url":"https://github.com/mdp/rotp","commit_stats":{"total_commits":227,"total_committers":46,"mean_commits":4.934782608695652,"dds":"0.42731277533039647","last_synced_commit":"1fbd30d94e5c986b0e252e3257b2f345735439ce"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/mdp/rotp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdp","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/sbom","scorecard":{"id":633378,"data":{"date":"2025-08-11","repo":{"name":"github.com/mdp/rotp","commit":"bad1a3564fdc030422c2fb009e9341413814e9cb"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.8,"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":7,"reason":"9 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 7","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":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":3,"reason":"Found 6/16 approved changesets -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/release.yaml:1","Warn: no topLevel permission defined: .github/workflows/test.yaml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yaml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/mdp/rotp/release.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yaml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/mdp/rotp/release.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yaml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/mdp/rotp/release.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yaml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/mdp/rotp/test.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yaml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/mdp/rotp/test.yaml/main?enable=pin","Warn: containerImage not pinned by hash: Dockerfile-2.3:1: pin your Docker image by updating ruby:2.3 to ruby:2.3@sha256:78cc821d95c48621e577b6b0d44c9d509f0f2a4e089b9fd0ca2ae86f274773a8","Warn: containerImage not pinned by hash: Dockerfile-2.7:1: pin your Docker image by updating ruby:2.7 to ruby:2.7@sha256:2347de892e419c7160fc21dec721d5952736909f8c3fbb7f84cb4a07aaf9ce7d","Warn: containerImage not pinned by hash: Dockerfile-3.0:1: pin your Docker image by updating ruby:3.0 to ruby:3.0@sha256:dcb8a8a6ee981f949da505cb9f4f15cde696e7bcb088955bc1f92f23a4cd7a72","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   3 third-party GitHubAction dependencies pinned","Info:   0 out of   3 containerImage 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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-21T08:28:14.973Z","repository_id":37934487,"created_at":"2025-08-21T08:28:14.973Z","updated_at":"2025-08-21T08:28:14.973Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278646774,"owners_count":26021511,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"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":"mdp","name":"Mark Percival","uuid":"2868","kind":"user","description":"","email":"","website":"https://mdp.github.io","location":"Atlanta, GA","twitter":"mdp","company":null,"icon_url":"https://avatars.githubusercontent.com/u/2868?u=90e0995d4bdae3bfdb66b47b3864a423d72398d7\u0026v=4","repositories_count":188,"last_synced_at":"2024-04-14T08:26:15.914Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/mdp","funding_links":[],"total_stars":3878,"followers":323,"following":14,"created_at":"2022-11-02T16:45:21.114Z","updated_at":"2024-04-14T08:26:34.467Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdp","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdp/repositories"},"tags":[{"name":"v6.3.1","sha":"bad1a3564fdc030422c2fb009e9341413814e9cb","kind":"commit","published_at":"2025-06-03T23:49:27.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v6.3.1","html_url":"https://github.com/mdp/rotp/releases/tag/v6.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v6.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.3.1/manifests"},{"name":"v6.3.0","sha":"131d2c325ba5f94887b27eefe24a214bdbcd0a5c","kind":"commit","published_at":"2023-08-30T18:52:51.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v6.3.0","html_url":"https://github.com/mdp/rotp/releases/tag/v6.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v6.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.3.0/manifests"},{"name":"v6.2.2","sha":"f0624c0fc866f2f7db199925588965217aac3140","kind":"commit","published_at":"2022-12-13T21:50:08.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v6.2.2","html_url":"https://github.com/mdp/rotp/releases/tag/v6.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v6.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.2.2/manifests"},{"name":"v6.2.1","sha":"703bee153bb814f0b0046bad2e52343dea7384bb","kind":"commit","published_at":"2022-11-11T14:07:05.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v6.2.1","html_url":"https://github.com/mdp/rotp/releases/tag/v6.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v6.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.2.1/manifests"},{"name":"v6.2.0","sha":"62874be71d74380d252c73409dd81da08b021497","kind":"tag","published_at":"2021-01-14T16:52:44.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v6.2.0","html_url":"https://github.com/mdp/rotp/releases/tag/v6.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v6.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.2.0/manifests"},{"name":"v6.1.0","sha":"6b42d17781a55d4fbf992ea25e6f6e742a049cef","kind":"tag","published_at":"2020-08-03T18:00:53.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v6.1.0","html_url":"https://github.com/mdp/rotp/releases/tag/v6.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v6.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.1.0/manifests"},{"name":"v6.0.0","sha":"5cf31c2ca3c9802a8d4876b0cf6ea199f51057b8","kind":"commit","published_at":"2020-04-23T15:53:41.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v6.0.0","html_url":"https://github.com/mdp/rotp/releases/tag/v6.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v6.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.0.0/manifests"},{"name":"v5.1.0","sha":"15d5104e3cb99f97d36c772f8f09cf7e2e77de20","kind":"commit","published_at":"2019-06-27T18:41:18.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v5.1.0","html_url":"https://github.com/mdp/rotp/releases/tag/v5.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v5.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v5.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v5.1.0/manifests"},{"name":"v5.0.0","sha":"c38462855747b62607b8475d9b45c4cfd92ba66b","kind":"commit","published_at":"2019-05-28T13:51:18.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v5.0.0","html_url":"https://github.com/mdp/rotp/releases/tag/v5.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v5.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v5.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v5.0.0/manifests"},{"name":"v4.1.0","sha":"2698c91539cfb868790e8bb7d5d4d8cf78f0bbfc","kind":"commit","published_at":"2019-02-28T16:20:58.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v4.1.0","html_url":"https://github.com/mdp/rotp/releases/tag/v4.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v4.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.1.0/manifests"},{"name":"v4.0.2","sha":"fabd3cb113c709138cdb24c916514dd36dfce14d","kind":"commit","published_at":"2018-11-01T19:01:03.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v4.0.2","html_url":"https://github.com/mdp/rotp/releases/tag/v4.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v4.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.0.2/manifests"},{"name":"v4.0.1","sha":"04e8dc8094f874d9b89b45bc5e75b311423b2bdb","kind":"commit","published_at":"2018-11-01T18:56:49.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v4.0.1","html_url":"https://github.com/mdp/rotp/releases/tag/v4.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v4.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.0.1/manifests"},{"name":"v4.0.0","sha":"52834910b8a621dee14af7a1267aad38618b3031","kind":"commit","published_at":"2018-11-01T17:06:34.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v4.0.0","html_url":"https://github.com/mdp/rotp/releases/tag/v4.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v4.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.0.0/manifests"},{"name":"v3.3.1","sha":"c82113eee6c9e7d0a03df8cf65ea50a2653c3916","kind":"commit","published_at":"2018-03-02T17:23:59.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v3.3.1","html_url":"https://github.com/mdp/rotp/releases/tag/v3.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v3.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v3.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v3.3.1/manifests"},{"name":"v3.3.0","sha":"07c0a732d27471d13719eddda998bde2a300b917","kind":"commit","published_at":"2016-09-23T01:10:41.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v3.3.0","html_url":"https://github.com/mdp/rotp/releases/tag/v3.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v3.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v3.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v3.3.0/manifests"},{"name":"v2.1.2","sha":"ff5ebaf9db0e991b2a6d1e308a74562fa7fb3f7f","kind":"commit","published_at":"2016-04-12T19:38:22.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v2.1.2","html_url":"https://github.com/mdp/rotp/releases/tag/v2.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v2.1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v2.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v2.1.2/manifests"},{"name":"v2.1.1","sha":"a9a5446e0fa656126996f67577f6d0ee5eec0ccd","kind":"commit","published_at":"2015-06-03T00:17:05.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v2.1.1","html_url":"https://github.com/mdp/rotp/releases/tag/v2.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v2.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v2.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v2.1.1/manifests"},{"name":"v2.1.0","sha":"0e65918ce8695870c99fd04c35a7dae8d4335782","kind":"commit","published_at":"2015-01-26T01:17:57.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v2.1.0","html_url":"https://github.com/mdp/rotp/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v2.1.0/manifests"},{"name":"v1.3.1","sha":"941e66c278e5aa0aaacae688052d711de5c3a6dc","kind":"tag","published_at":"2011-09-23T17:46:41.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v1.3.1","html_url":"https://github.com/mdp/rotp/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v1.3.1/manifests"}]},"repo_metadata_updated_at":"2026-04-11T11:34:01.845Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":10.801592556016239,"dependent_packages_count":9.575730298247606,"stargazers_count":1.7016039972662096,"forks_count":1.3993638526398913,"docker_downloads_count":null,"average":5.869572676042487},"purl":"pkg:golang/github.com/mdp/rotp","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/mdp/rotp","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/mdp/rotp","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/mdp/rotp/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-10-02T11:06:45.148Z","issues_count":46,"pull_requests_count":91,"avg_time_to_close_issue":6630961.048780488,"avg_time_to_close_pull_request":9228479.775,"issues_closed_count":41,"pull_requests_closed_count":80,"pull_request_authors_count":45,"issue_authors_count":46,"avg_comments_per_issue":2.217391304347826,"avg_comments_per_pull_request":1.10989010989011,"merged_pull_requests_count":60,"bot_issues_count":0,"bot_pull_requests_count":7,"past_year_issues_count":1,"past_year_pull_requests_count":17,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":1144916.7142857143,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":7,"past_year_pull_request_authors_count":7,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":0.0,"past_year_avg_comments_per_pull_request":0.9411764705882353,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":3,"past_year_merged_pull_requests_count":5,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/issues","maintainers":[{"login":"mdp","count":25,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mdp"}],"active_maintainers":[{"login":"mdp","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mdp"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fmdp%2Frotp/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fmdp%2Frotp/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fmdp%2Frotp/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fmdp%2Frotp/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fmdp%2Frotp/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fmdp%2Frotp/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":2197912,"maintainers_count":0,"namespaces_count":792747,"keywords_count":113213,"github":"golang","metadata":{"funded_packages_count":53976},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2026-06-10T05:03:23.672Z","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":303726,"name":"sjcl","ecosystem":"rubygems","description":"A Ruby library for interopping with SJCL's AES crypto","homepage":"http://github.com/mdp/rotp","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/mdp/rotp","keywords_array":[],"namespace":null,"versions_count":3,"first_release_published_at":"2014-03-17T01:24:53.951Z","latest_release_published_at":"2015-01-08T11:15:44.527Z","latest_release_number":"1.0.1","last_synced_at":"2026-06-30T23:05:06.342Z","created_at":"2022-04-06T11:00:54.223Z","updated_at":"2026-06-30T23:05:06.342Z","registry_url":"https://rubygems.org/gems/sjcl","install_command":"gem install sjcl -s https://rubygems.org","documentation_url":"http://www.rubydoc.info/gems/sjcl/","metadata":{"funding":null},"repo_metadata":{"id":37934487,"uuid":"1362437","full_name":"mdp/rotp","owner":"mdp","description":"Ruby One Time Password library","archived":false,"fork":false,"pushed_at":"2024-08-14T02:22:29.000Z","size":272,"stargazers_count":1597,"open_issues_count":6,"forks_count":443,"subscribers_count":27,"default_branch":"main","last_synced_at":"2024-08-22T18:07:08.075Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://rubydoc.info/github/mdp/rotp/master/frames","language":"Ruby","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/mdp.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2011-02-13T18:20:59.000Z","updated_at":"2024-08-22T14:10:13.000Z","dependencies_parsed_at":"2024-06-18T10:57:30.381Z","dependency_job_id":"edbb1786-f1ba-42bb-8a28-672b0c13ceb5","html_url":"https://github.com/mdp/rotp","commit_stats":{"total_commits":227,"total_committers":46,"mean_commits":4.934782608695652,"dds":"0.42731277533039647","last_synced_commit":"1fbd30d94e5c986b0e252e3257b2f345735439ce"},"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdp","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":216690347,"owners_count":16065199,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":"mdp","name":"Mark Percival","uuid":"2868","kind":"user","description":"","email":"","website":"https://mdp.github.io","location":"Atlanta, GA","twitter":"mdp","company":null,"icon_url":"https://avatars.githubusercontent.com/u/2868?u=90e0995d4bdae3bfdb66b47b3864a423d72398d7\u0026v=4","repositories_count":188,"last_synced_at":"2024-04-14T08:26:15.914Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/mdp","funding_links":[],"total_stars":3878,"followers":323,"following":14,"created_at":"2022-11-02T16:45:21.114Z","updated_at":"2024-04-14T08:26:34.467Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdp","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdp/repositories"},"tags":[{"name":"v6.3.0","sha":"131d2c325ba5f94887b27eefe24a214bdbcd0a5c","kind":"commit","published_at":"2023-08-30T18:52:51.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v6.3.0","html_url":"https://github.com/mdp/rotp/releases/tag/v6.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.3.0/manifests"},{"name":"v6.2.2","sha":"f0624c0fc866f2f7db199925588965217aac3140","kind":"commit","published_at":"2022-12-13T21:50:08.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v6.2.2","html_url":"https://github.com/mdp/rotp/releases/tag/v6.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.2.2/manifests"},{"name":"v6.2.1","sha":"703bee153bb814f0b0046bad2e52343dea7384bb","kind":"commit","published_at":"2022-11-11T14:07:05.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v6.2.1","html_url":"https://github.com/mdp/rotp/releases/tag/v6.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.2.1/manifests"},{"name":"v6.2.0","sha":"62874be71d74380d252c73409dd81da08b021497","kind":"tag","published_at":"2021-01-14T16:52:44.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v6.2.0","html_url":"https://github.com/mdp/rotp/releases/tag/v6.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.2.0/manifests"},{"name":"v6.1.0","sha":"6b42d17781a55d4fbf992ea25e6f6e742a049cef","kind":"tag","published_at":"2020-08-03T18:00:53.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v6.1.0","html_url":"https://github.com/mdp/rotp/releases/tag/v6.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.1.0/manifests"},{"name":"v6.0.0","sha":"5cf31c2ca3c9802a8d4876b0cf6ea199f51057b8","kind":"commit","published_at":"2020-04-23T15:53:41.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v6.0.0","html_url":"https://github.com/mdp/rotp/releases/tag/v6.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.0.0/manifests"},{"name":"v5.1.0","sha":"15d5104e3cb99f97d36c772f8f09cf7e2e77de20","kind":"commit","published_at":"2019-06-27T18:41:18.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v5.1.0","html_url":"https://github.com/mdp/rotp/releases/tag/v5.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v5.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v5.1.0/manifests"},{"name":"v5.0.0","sha":"c38462855747b62607b8475d9b45c4cfd92ba66b","kind":"commit","published_at":"2019-05-28T13:51:18.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v5.0.0","html_url":"https://github.com/mdp/rotp/releases/tag/v5.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v5.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v5.0.0/manifests"},{"name":"v4.1.0","sha":"2698c91539cfb868790e8bb7d5d4d8cf78f0bbfc","kind":"commit","published_at":"2019-02-28T16:20:58.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v4.1.0","html_url":"https://github.com/mdp/rotp/releases/tag/v4.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.1.0/manifests"},{"name":"v4.0.2","sha":"fabd3cb113c709138cdb24c916514dd36dfce14d","kind":"commit","published_at":"2018-11-01T19:01:03.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v4.0.2","html_url":"https://github.com/mdp/rotp/releases/tag/v4.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.0.2/manifests"},{"name":"v4.0.1","sha":"04e8dc8094f874d9b89b45bc5e75b311423b2bdb","kind":"commit","published_at":"2018-11-01T18:56:49.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v4.0.1","html_url":"https://github.com/mdp/rotp/releases/tag/v4.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.0.1/manifests"},{"name":"v4.0.0","sha":"52834910b8a621dee14af7a1267aad38618b3031","kind":"commit","published_at":"2018-11-01T17:06:34.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v4.0.0","html_url":"https://github.com/mdp/rotp/releases/tag/v4.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.0.0/manifests"},{"name":"v3.3.1","sha":"c82113eee6c9e7d0a03df8cf65ea50a2653c3916","kind":"commit","published_at":"2018-03-02T17:23:59.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v3.3.1","html_url":"https://github.com/mdp/rotp/releases/tag/v3.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v3.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v3.3.1/manifests"},{"name":"v3.3.0","sha":"07c0a732d27471d13719eddda998bde2a300b917","kind":"commit","published_at":"2016-09-23T01:10:41.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v3.3.0","html_url":"https://github.com/mdp/rotp/releases/tag/v3.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v3.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v3.3.0/manifests"},{"name":"v2.1.2","sha":"ff5ebaf9db0e991b2a6d1e308a74562fa7fb3f7f","kind":"commit","published_at":"2016-04-12T19:38:22.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v2.1.2","html_url":"https://github.com/mdp/rotp/releases/tag/v2.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v2.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v2.1.2/manifests"},{"name":"v2.1.1","sha":"a9a5446e0fa656126996f67577f6d0ee5eec0ccd","kind":"commit","published_at":"2015-06-03T00:17:05.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v2.1.1","html_url":"https://github.com/mdp/rotp/releases/tag/v2.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v2.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v2.1.1/manifests"},{"name":"v2.1.0","sha":"0e65918ce8695870c99fd04c35a7dae8d4335782","kind":"commit","published_at":"2015-01-26T01:17:57.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v2.1.0","html_url":"https://github.com/mdp/rotp/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v2.1.0/manifests"},{"name":"v1.3.1","sha":"941e66c278e5aa0aaacae688052d711de5c3a6dc","kind":"tag","published_at":"2011-09-23T17:46:41.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v1.3.1","html_url":"https://github.com/mdp/rotp/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v1.3.1/manifests"}]},"repo_metadata_updated_at":"2024-08-31T23:05:39.096Z","dependent_packages_count":0,"downloads":11904,"downloads_period":"total","dependent_repos_count":1,"rankings":{"downloads":48.38246591935041,"dependent_repos_count":21.70572631885911,"dependent_packages_count":15.782006202437232,"stargazers_count":1.287522360607199,"forks_count":1.2735031711406573,"docker_downloads_count":null,"average":17.68624479447892},"purl":"pkg:gem/sjcl","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/rubygems/sjcl","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/rubygems/sjcl","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/rubygems/sjcl/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2024-08-30T17:04:58.925Z","issues_count":44,"pull_requests_count":77,"avg_time_to_close_issue":5902439.25,"avg_time_to_close_pull_request":8521348.175675675,"issues_closed_count":40,"pull_requests_closed_count":74,"pull_request_authors_count":41,"issue_authors_count":44,"avg_comments_per_issue":2.340909090909091,"avg_comments_per_pull_request":1.038961038961039,"merged_pull_requests_count":58,"bot_issues_count":0,"bot_pull_requests_count":4,"past_year_issues_count":3,"past_year_pull_requests_count":9,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":1703964.2857142857,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":7,"past_year_pull_request_authors_count":5,"past_year_issue_authors_count":3,"past_year_avg_comments_per_issue":0.3333333333333333,"past_year_avg_comments_per_pull_request":0.2222222222222222,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":4,"past_year_merged_pull_requests_count":7,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/issues","maintainers":[{"login":"mdp","count":23,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mdp"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/sjcl/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/sjcl/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/sjcl/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/sjcl/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/sjcl/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/sjcl/codemeta","maintainers":[{"uuid":"1075","login":"mdp","name":null,"email":null,"url":null,"packages_count":9,"html_url":"https://rubygems.org/profiles/mdp","role":null,"created_at":"2022-11-09T09:51:33.251Z","updated_at":"2022-11-09T09:51:33.251Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/mdp/packages"}],"registry":{"name":"rubygems.org","url":"https://rubygems.org","ecosystem":"rubygems","default":true,"packages_count":208344,"maintainers_count":69086,"namespaces_count":0,"keywords_count":18771,"github":"rubygems","metadata":{"funded_packages_count":7455},"icon_url":"https://github.com/rubygems.png","created_at":"2022-04-04T15:19:23.446Z","updated_at":"2026-06-10T05:04:00.514Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/namespaces"}},{"id":12327853,"name":"sjcl","ecosystem":"rubygems","description":"A Ruby library for interopping with SJCL's AES crypto","homepage":"http://github.com/mdp/rotp","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/mdp/rotp","keywords_array":[],"namespace":null,"versions_count":3,"first_release_published_at":"2014-03-17T01:24:53.951Z","latest_release_published_at":"2015-01-08T11:15:44.527Z","latest_release_number":"1.0.1","last_synced_at":"2026-06-30T23:05:07.167Z","created_at":"2025-10-07T06:03:08.674Z","updated_at":"2026-06-30T23:10:57.299Z","registry_url":"https://gem.coop/gems/sjcl","install_command":"gem install sjcl -s https://gem.coop","documentation_url":"http://www.rubydoc.info/gems/sjcl/","metadata":{"funding":null},"repo_metadata":{"id":37934487,"uuid":"1362437","full_name":"mdp/rotp","owner":"mdp","description":"Ruby One Time Password library","archived":false,"fork":false,"pushed_at":"2025-11-24T21:17:25.000Z","size":297,"stargazers_count":1661,"open_issues_count":11,"forks_count":480,"subscribers_count":22,"default_branch":"main","last_synced_at":"2026-06-12T18:07:22.022Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://rubydoc.info/github/mdp/rotp/master/frames","language":"Ruby","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/mdp.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2011-02-13T18:20:59.000Z","updated_at":"2026-06-09T01:25:34.000Z","dependencies_parsed_at":"2024-06-18T10:57:30.381Z","dependency_job_id":"edbb1786-f1ba-42bb-8a28-672b0c13ceb5","html_url":"https://github.com/mdp/rotp","commit_stats":{"total_commits":227,"total_committers":46,"mean_commits":4.934782608695652,"dds":"0.42731277533039647","last_synced_commit":"1fbd30d94e5c986b0e252e3257b2f345735439ce"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/mdp/rotp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdp","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/sbom","scorecard":{"id":633378,"data":{"date":"2025-08-11","repo":{"name":"github.com/mdp/rotp","commit":"bad1a3564fdc030422c2fb009e9341413814e9cb"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.8,"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":7,"reason":"9 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 7","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":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":3,"reason":"Found 6/16 approved changesets -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/release.yaml:1","Warn: no topLevel permission defined: .github/workflows/test.yaml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yaml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/mdp/rotp/release.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yaml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/mdp/rotp/release.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yaml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/mdp/rotp/release.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yaml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/mdp/rotp/test.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yaml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/mdp/rotp/test.yaml/main?enable=pin","Warn: containerImage not pinned by hash: Dockerfile-2.3:1: pin your Docker image by updating ruby:2.3 to ruby:2.3@sha256:78cc821d95c48621e577b6b0d44c9d509f0f2a4e089b9fd0ca2ae86f274773a8","Warn: containerImage not pinned by hash: Dockerfile-2.7:1: pin your Docker image by updating ruby:2.7 to ruby:2.7@sha256:2347de892e419c7160fc21dec721d5952736909f8c3fbb7f84cb4a07aaf9ce7d","Warn: containerImage not pinned by hash: Dockerfile-3.0:1: pin your Docker image by updating ruby:3.0 to ruby:3.0@sha256:dcb8a8a6ee981f949da505cb9f4f15cde696e7bcb088955bc1f92f23a4cd7a72","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   3 third-party GitHubAction dependencies pinned","Info:   0 out of   3 containerImage 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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-21T08:28:14.973Z","repository_id":37934487,"created_at":"2025-08-21T08:28:14.973Z","updated_at":"2025-08-21T08:28:14.973Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34271500,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-13T02:00:06.617Z","response_time":62,"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":"mdp","name":"Mark Percival","uuid":"2868","kind":"user","description":"","email":"","website":"https://mdp.github.io","location":"Atlanta, GA","twitter":"mdp","company":null,"icon_url":"https://avatars.githubusercontent.com/u/2868?u=90e0995d4bdae3bfdb66b47b3864a423d72398d7\u0026v=4","repositories_count":188,"last_synced_at":"2024-04-14T08:26:15.914Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/mdp","funding_links":[],"total_stars":3878,"followers":323,"following":14,"created_at":"2022-11-02T16:45:21.114Z","updated_at":"2024-04-14T08:26:34.467Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdp","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdp/repositories"},"tags":[{"name":"v6.3.1","sha":"bad1a3564fdc030422c2fb009e9341413814e9cb","kind":"commit","published_at":"2025-06-03T23:49:27.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v6.3.1","html_url":"https://github.com/mdp/rotp/releases/tag/v6.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v6.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.3.1/manifests"},{"name":"v6.3.0","sha":"131d2c325ba5f94887b27eefe24a214bdbcd0a5c","kind":"commit","published_at":"2023-08-30T18:52:51.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v6.3.0","html_url":"https://github.com/mdp/rotp/releases/tag/v6.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v6.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.3.0/manifests"},{"name":"v6.2.2","sha":"f0624c0fc866f2f7db199925588965217aac3140","kind":"commit","published_at":"2022-12-13T21:50:08.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v6.2.2","html_url":"https://github.com/mdp/rotp/releases/tag/v6.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v6.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.2.2/manifests"},{"name":"v6.2.1","sha":"703bee153bb814f0b0046bad2e52343dea7384bb","kind":"commit","published_at":"2022-11-11T14:07:05.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v6.2.1","html_url":"https://github.com/mdp/rotp/releases/tag/v6.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v6.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.2.1/manifests"},{"name":"v6.2.0","sha":"62874be71d74380d252c73409dd81da08b021497","kind":"tag","published_at":"2021-01-14T16:52:44.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v6.2.0","html_url":"https://github.com/mdp/rotp/releases/tag/v6.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v6.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.2.0/manifests"},{"name":"v6.1.0","sha":"6b42d17781a55d4fbf992ea25e6f6e742a049cef","kind":"tag","published_at":"2020-08-03T18:00:53.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v6.1.0","html_url":"https://github.com/mdp/rotp/releases/tag/v6.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v6.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.1.0/manifests"},{"name":"v6.0.0","sha":"5cf31c2ca3c9802a8d4876b0cf6ea199f51057b8","kind":"commit","published_at":"2020-04-23T15:53:41.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v6.0.0","html_url":"https://github.com/mdp/rotp/releases/tag/v6.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v6.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.0.0/manifests"},{"name":"v5.1.0","sha":"15d5104e3cb99f97d36c772f8f09cf7e2e77de20","kind":"commit","published_at":"2019-06-27T18:41:18.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v5.1.0","html_url":"https://github.com/mdp/rotp/releases/tag/v5.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v5.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v5.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v5.1.0/manifests"},{"name":"v5.0.0","sha":"c38462855747b62607b8475d9b45c4cfd92ba66b","kind":"commit","published_at":"2019-05-28T13:51:18.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v5.0.0","html_url":"https://github.com/mdp/rotp/releases/tag/v5.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v5.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v5.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v5.0.0/manifests"},{"name":"v4.1.0","sha":"2698c91539cfb868790e8bb7d5d4d8cf78f0bbfc","kind":"commit","published_at":"2019-02-28T16:20:58.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v4.1.0","html_url":"https://github.com/mdp/rotp/releases/tag/v4.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v4.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.1.0/manifests"},{"name":"v4.0.2","sha":"fabd3cb113c709138cdb24c916514dd36dfce14d","kind":"commit","published_at":"2018-11-01T19:01:03.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v4.0.2","html_url":"https://github.com/mdp/rotp/releases/tag/v4.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v4.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.0.2/manifests"},{"name":"v4.0.1","sha":"04e8dc8094f874d9b89b45bc5e75b311423b2bdb","kind":"commit","published_at":"2018-11-01T18:56:49.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v4.0.1","html_url":"https://github.com/mdp/rotp/releases/tag/v4.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v4.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.0.1/manifests"},{"name":"v4.0.0","sha":"52834910b8a621dee14af7a1267aad38618b3031","kind":"commit","published_at":"2018-11-01T17:06:34.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v4.0.0","html_url":"https://github.com/mdp/rotp/releases/tag/v4.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v4.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.0.0/manifests"},{"name":"v3.3.1","sha":"c82113eee6c9e7d0a03df8cf65ea50a2653c3916","kind":"commit","published_at":"2018-03-02T17:23:59.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v3.3.1","html_url":"https://github.com/mdp/rotp/releases/tag/v3.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v3.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v3.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v3.3.1/manifests"},{"name":"v3.3.0","sha":"07c0a732d27471d13719eddda998bde2a300b917","kind":"commit","published_at":"2016-09-23T01:10:41.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v3.3.0","html_url":"https://github.com/mdp/rotp/releases/tag/v3.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v3.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v3.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v3.3.0/manifests"},{"name":"v2.1.2","sha":"ff5ebaf9db0e991b2a6d1e308a74562fa7fb3f7f","kind":"commit","published_at":"2016-04-12T19:38:22.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v2.1.2","html_url":"https://github.com/mdp/rotp/releases/tag/v2.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v2.1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v2.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v2.1.2/manifests"},{"name":"v2.1.1","sha":"a9a5446e0fa656126996f67577f6d0ee5eec0ccd","kind":"commit","published_at":"2015-06-03T00:17:05.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v2.1.1","html_url":"https://github.com/mdp/rotp/releases/tag/v2.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v2.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v2.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v2.1.1/manifests"},{"name":"v2.1.0","sha":"0e65918ce8695870c99fd04c35a7dae8d4335782","kind":"commit","published_at":"2015-01-26T01:17:57.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v2.1.0","html_url":"https://github.com/mdp/rotp/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v2.1.0/manifests"},{"name":"v1.3.1","sha":"941e66c278e5aa0aaacae688052d711de5c3a6dc","kind":"tag","published_at":"2011-09-23T17:46:41.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v1.3.1","html_url":"https://github.com/mdp/rotp/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v1.3.1/manifests"}]},"repo_metadata_updated_at":"2026-06-30T23:10:57.298Z","dependent_packages_count":0,"downloads":11904,"downloads_period":"total","dependent_repos_count":0,"rankings":{"downloads":47.88076713039811,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":15.960255710132705},"purl":"pkg:gem/sjcl?repository_url=https://gem.coop","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/rubygems/sjcl","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/rubygems/sjcl","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/rubygems/sjcl/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-06-13T04:02:23.507Z","issues_count":46,"pull_requests_count":94,"avg_time_to_close_issue":6630961.048780488,"avg_time_to_close_pull_request":9226129.839506174,"issues_closed_count":41,"pull_requests_closed_count":81,"pull_request_authors_count":46,"issue_authors_count":46,"avg_comments_per_issue":2.217391304347826,"avg_comments_per_pull_request":1.1063829787234043,"merged_pull_requests_count":60,"bot_issues_count":0,"bot_pull_requests_count":9,"past_year_issues_count":1,"past_year_pull_requests_count":9,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":3019859.6666666665,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":3,"past_year_pull_request_authors_count":3,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":0.0,"past_year_avg_comments_per_pull_request":1.222222222222222,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":3,"past_year_merged_pull_requests_count":2,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/issues","maintainers":[{"login":"mdp","count":25,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mdp"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/sjcl/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/sjcl/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/sjcl/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/sjcl/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/sjcl/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/sjcl/codemeta","maintainers":[{"uuid":"1075","login":"mdp","name":null,"email":null,"url":null,"packages_count":9,"html_url":"https://gem.coop/profiles/mdp","role":null,"created_at":"2025-10-09T22:22:37.711Z","updated_at":"2025-10-09T22:22:37.711Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/mdp/packages"}],"registry":{"name":"gem.coop","url":"https://gem.coop","ecosystem":"rubygems","default":false,"packages_count":193180,"maintainers_count":68098,"namespaces_count":0,"keywords_count":18400,"github":"gem-coop","metadata":{"funded_packages_count":6885},"icon_url":"https://github.com/gem-coop.png","created_at":"2025-10-06T17:24:20.932Z","updated_at":"2026-06-10T05:17:24.062Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/namespaces"}},{"id":14537885,"name":"security/ruby-rotp","ecosystem":"pkgsrc","description":"Library for generating and verifying one time passwords","homepage":"https://github.com/mdp/rotp","licenses":"mit","normalized_licenses":["MIT"],"repository_url":"https://github.com/mdp/rotp","keywords_array":["security","ruby"],"namespace":"security","versions_count":1,"first_release_published_at":"2026-04-06T10:51:44.000Z","latest_release_published_at":"2026-04-06T10:51:44.000Z","latest_release_number":"6.3.0","last_synced_at":"2026-05-27T09:40:07.082Z","created_at":"2026-05-27T09:40:06.640Z","updated_at":"2026-05-27T09:40:07.485Z","registry_url":"https://pkgsrc.se/security/ruby-rotp","install_command":"pkg_add ruby40-rotp","documentation_url":"https://pkgsrc.se/security/ruby-rotp","metadata":{"pkg_slug":"ruby-rotp","pkgbase":"ruby40-rotp","machine_arch":"x86_64","opsys":"NetBSD","pkgname_latest":"ruby40-rotp-6.3.0"},"repo_metadata":{},"repo_metadata_updated_at":"2026-05-27T09:40:07.456Z","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/security/ruby-rotp?arch=x86_64\u0026os=NetBSD","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pkgsrc/security/ruby-rotp","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pkgsrc/security/ruby-rotp","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pkgsrc/security/ruby-rotp/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pkgsrc-netbsd-x86_64-10.1-all/packages/security%2Fruby-rotp/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pkgsrc-netbsd-x86_64-10.1-all/packages/security%2Fruby-rotp/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/pkgsrc-netbsd-x86_64-10.1-all/packages/security%2Fruby-rotp/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pkgsrc-netbsd-x86_64-10.1-all/packages/security%2Fruby-rotp/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pkgsrc-netbsd-x86_64-10.1-all/packages/security%2Fruby-rotp/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pkgsrc-netbsd-x86_64-10.1-all/packages/security%2Fruby-rotp/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":19499,"maintainers_count":0,"namespaces_count":42,"keywords_count":313,"github":"pkgsrc","metadata":{"funded_packages_count":51},"icon_url":"https://github.com/pkgsrc.png","created_at":"2026-05-26T08:59:24.518Z","updated_at":"2026-06-21T05:00:19.078Z","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":13713220,"name":"ruby-rotp","ecosystem":"debian","description":null,"homepage":"https://github.com/mdp/rotp","licenses":null,"normalized_licenses":[],"repository_url":"https://github.com/mdp/rotp","keywords_array":["misc"],"namespace":"main","versions_count":1,"first_release_published_at":"2026-02-12T23:39:52.698Z","latest_release_published_at":"2026-02-12T23:39:52.698Z","latest_release_number":"6.2.0-2","last_synced_at":"2026-03-13T23:46:13.256Z","created_at":"2026-02-12T23:39:52.470Z","updated_at":"2026-04-11T11:34:01.852Z","registry_url":"https://tracker.debian.org/pkg/ruby-rotp","install_command":"apt-get install ruby-rotp","documentation_url":"https://packages.debian.org/bookworm/ruby-rotp","metadata":{"component":"main","architecture":"all","priority":"optional","binary":"ruby-rotp","standards_version":"4.6.0","maintainer":"Debian Ruby Team \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper-compat (= 13), gem2deb, libjs-jquery, rake, ruby-rspec (\u003e= 3.0.0), ruby-timecop, ruby-simplecov, yard","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{},"repo_metadata_updated_at":"2026-04-11T11:34:01.831Z","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/ruby-rotp?arch=source\u0026distro=debian-12","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/debian/ruby-rotp","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/debian/ruby-rotp","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/debian/ruby-rotp/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/ruby-rotp/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/ruby-rotp/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/ruby-rotp/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/ruby-rotp/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/ruby-rotp/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/ruby-rotp/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":2667,"github":"debian","metadata":{"codename":"bookworm","funded_packages_count":395},"icon_url":"https://github.com/debian.png","created_at":"2026-02-04T11:01:49.459Z","updated_at":"2026-06-10T05:17:51.014Z","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":14554572,"name":"security/ruby-rotp","ecosystem":"openbsd","description":"Ruby library for generating and verifying one time passwords","homepage":"https://github.com/mdp/rotp","licenses":null,"normalized_licenses":[],"repository_url":"https://github.com/mdp/rotp","keywords_array":[],"namespace":"security","versions_count":1,"first_release_published_at":"2026-04-25T13:29:50.000Z","latest_release_published_at":"2026-04-25T13:29:50.000Z","latest_release_number":"6.2.2","last_synced_at":"2026-05-28T02:55:55.635Z","created_at":"2026-05-28T02:55:55.352Z","updated_at":"2026-05-28T04:44:32.377Z","registry_url":"https://cvsweb.openbsd.org/cgi-bin/cvsweb/ports/security/ruby-rotp/","install_command":"pkg_add ruby34-rotp-6.2.2","documentation_url":null,"metadata":{"pkgstem":"ruby34-rotp","fullpkgname":"ruby34-rotp-6.2.2","subpackage":"-"},"repo_metadata":{},"repo_metadata_updated_at":"2026-05-28T04:44:32.350Z","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:openbsd/security/ruby-rotp?arch=amd64","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/openbsd/security/ruby-rotp","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/openbsd/security/ruby-rotp","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/openbsd/security/ruby-rotp/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/openbsd-7.9-amd64/packages/security%2Fruby-rotp/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/openbsd-7.9-amd64/packages/security%2Fruby-rotp/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/openbsd-7.9-amd64/packages/security%2Fruby-rotp/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/openbsd-7.9-amd64/packages/security%2Fruby-rotp/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/openbsd-7.9-amd64/packages/security%2Fruby-rotp/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/openbsd-7.9-amd64/packages/security%2Fruby-rotp/codemeta","maintainers":[{"uuid":"kmos@openbsd.org","login":null,"name":"Kurt Mosiejczuk","email":"kmos@openbsd.org","url":null,"packages_count":47,"html_url":null,"role":null,"created_at":"2026-05-28T02:55:55.847Z","updated_at":"2026-05-28T02:55:55.847Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/openbsd-7.9-amd64/maintainers/kmos@openbsd.org/packages"}],"registry":{"name":"openbsd-7.9-amd64","url":"https://cdn.openbsd.org/pub/OpenBSD/7.9/packages/amd64","ecosystem":"openbsd","default":true,"packages_count":11808,"maintainers_count":274,"namespaces_count":42,"keywords_count":0,"github":"openbsd","metadata":{"arch":"amd64","sqlports_version":"7.54","funded_packages_count":3},"icon_url":"https://github.com/openbsd.png","created_at":"2026-05-26T11:21:10.750Z","updated_at":"2026-06-01T05:03:54.622Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/openbsd-7.9-amd64/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/openbsd-7.9-amd64/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/openbsd-7.9-amd64/namespaces"}},{"id":13669457,"name":"ruby-rotp","ecosystem":"debian","description":null,"homepage":"https://github.com/mdp/rotp","licenses":null,"normalized_licenses":[],"repository_url":"https://github.com/mdp/rotp","keywords_array":["misc"],"namespace":"main","versions_count":1,"first_release_published_at":"2026-02-12T12:41:47.592Z","latest_release_published_at":"2026-02-12T12:41:47.592Z","latest_release_number":"6.2.0-2","last_synced_at":"2026-03-14T18:08:16.297Z","created_at":"2026-02-12T12:41:47.396Z","updated_at":"2026-04-11T11:34:01.870Z","registry_url":"https://tracker.debian.org/pkg/ruby-rotp","install_command":"apt-get install ruby-rotp","documentation_url":"https://packages.debian.org/trixie/ruby-rotp","metadata":{"component":"main","architecture":"all","priority":"optional","binary":"ruby-rotp","standards_version":"4.6.0","maintainer":"Debian Ruby Team \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper-compat (= 13), gem2deb, libjs-jquery, rake, ruby-rspec (\u003e= 3.0.0), ruby-timecop, ruby-simplecov, yard","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{},"repo_metadata_updated_at":"2026-04-11T11:34:01.850Z","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/ruby-rotp?arch=source\u0026distro=debian-13\u0026repository_url=https://packages.debian.org/trixie","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/debian/ruby-rotp","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/debian/ruby-rotp","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/debian/ruby-rotp/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/ruby-rotp/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/ruby-rotp/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/ruby-rotp/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/ruby-rotp/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/ruby-rotp/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/ruby-rotp/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":1987,"github":"debian","metadata":{"codename":"trixie","funded_packages_count":316},"icon_url":"https://github.com/debian.png","created_at":"2026-02-04T11:01:50.448Z","updated_at":"2026-06-10T05:17:04.542Z","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":290048,"name":"rotp","ecosystem":"rubygems","description":"Works for both HOTP and TOTP, and includes QR Code provisioning","homepage":"https://github.com/mdp/rotp","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/mdp/rotp","keywords_array":[],"namespace":null,"versions_count":38,"first_release_published_at":"2011-02-12T23:44:23.538Z","latest_release_published_at":"2023-08-30T19:23:10.162Z","latest_release_number":"6.3.0","last_synced_at":"2026-07-02T03:36:13.745Z","created_at":"2022-04-06T09:35:55.293Z","updated_at":"2026-07-02T03:40:24.388Z","registry_url":"https://rubygems.org/gems/rotp","install_command":"gem install rotp -s https://rubygems.org","documentation_url":"http://www.rubydoc.info/gems/rotp/","metadata":{"funding":null},"repo_metadata":{"id":37934487,"uuid":"1362437","full_name":"mdp/rotp","owner":"mdp","description":"Ruby One Time Password library","archived":false,"fork":false,"pushed_at":"2025-11-24T21:17:25.000Z","size":297,"stargazers_count":1661,"open_issues_count":11,"forks_count":480,"subscribers_count":22,"default_branch":"main","last_synced_at":"2026-06-12T18:07:22.022Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://rubydoc.info/github/mdp/rotp/master/frames","language":"Ruby","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/mdp.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2011-02-13T18:20:59.000Z","updated_at":"2026-06-09T01:25:34.000Z","dependencies_parsed_at":"2024-06-18T10:57:30.381Z","dependency_job_id":"edbb1786-f1ba-42bb-8a28-672b0c13ceb5","html_url":"https://github.com/mdp/rotp","commit_stats":{"total_commits":227,"total_committers":46,"mean_commits":4.934782608695652,"dds":"0.42731277533039647","last_synced_commit":"1fbd30d94e5c986b0e252e3257b2f345735439ce"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/mdp/rotp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdp","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/sbom","scorecard":{"id":633378,"data":{"date":"2025-08-11","repo":{"name":"github.com/mdp/rotp","commit":"bad1a3564fdc030422c2fb009e9341413814e9cb"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.8,"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":7,"reason":"9 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 7","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":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":3,"reason":"Found 6/16 approved changesets -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/release.yaml:1","Warn: no topLevel permission defined: .github/workflows/test.yaml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yaml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/mdp/rotp/release.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yaml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/mdp/rotp/release.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yaml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/mdp/rotp/release.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yaml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/mdp/rotp/test.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yaml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/mdp/rotp/test.yaml/main?enable=pin","Warn: containerImage not pinned by hash: Dockerfile-2.3:1: pin your Docker image by updating ruby:2.3 to ruby:2.3@sha256:78cc821d95c48621e577b6b0d44c9d509f0f2a4e089b9fd0ca2ae86f274773a8","Warn: containerImage not pinned by hash: Dockerfile-2.7:1: pin your Docker image by updating ruby:2.7 to ruby:2.7@sha256:2347de892e419c7160fc21dec721d5952736909f8c3fbb7f84cb4a07aaf9ce7d","Warn: containerImage not pinned by hash: Dockerfile-3.0:1: pin your Docker image by updating ruby:3.0 to ruby:3.0@sha256:dcb8a8a6ee981f949da505cb9f4f15cde696e7bcb088955bc1f92f23a4cd7a72","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   3 third-party GitHubAction dependencies pinned","Info:   0 out of   3 containerImage 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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-21T08:28:14.973Z","repository_id":37934487,"created_at":"2025-08-21T08:28:14.973Z","updated_at":"2025-08-21T08:28:14.973Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34271500,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-13T02:00:06.617Z","response_time":62,"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":"mdp","name":"Mark Percival","uuid":"2868","kind":"user","description":"","email":"","website":"https://mdp.github.io","location":"Atlanta, GA","twitter":"mdp","company":null,"icon_url":"https://avatars.githubusercontent.com/u/2868?u=90e0995d4bdae3bfdb66b47b3864a423d72398d7\u0026v=4","repositories_count":188,"last_synced_at":"2024-04-14T08:26:15.914Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/mdp","funding_links":[],"total_stars":3878,"followers":323,"following":14,"created_at":"2022-11-02T16:45:21.114Z","updated_at":"2024-04-14T08:26:34.467Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdp","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdp/repositories"},"tags":[{"name":"v6.3.1","sha":"bad1a3564fdc030422c2fb009e9341413814e9cb","kind":"commit","published_at":"2025-06-03T23:49:27.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v6.3.1","html_url":"https://github.com/mdp/rotp/releases/tag/v6.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v6.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.3.1/manifests"},{"name":"v6.3.0","sha":"131d2c325ba5f94887b27eefe24a214bdbcd0a5c","kind":"commit","published_at":"2023-08-30T18:52:51.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v6.3.0","html_url":"https://github.com/mdp/rotp/releases/tag/v6.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v6.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.3.0/manifests"},{"name":"v6.2.2","sha":"f0624c0fc866f2f7db199925588965217aac3140","kind":"commit","published_at":"2022-12-13T21:50:08.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v6.2.2","html_url":"https://github.com/mdp/rotp/releases/tag/v6.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v6.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.2.2/manifests"},{"name":"v6.2.1","sha":"703bee153bb814f0b0046bad2e52343dea7384bb","kind":"commit","published_at":"2022-11-11T14:07:05.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v6.2.1","html_url":"https://github.com/mdp/rotp/releases/tag/v6.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v6.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.2.1/manifests"},{"name":"v6.2.0","sha":"62874be71d74380d252c73409dd81da08b021497","kind":"tag","published_at":"2021-01-14T16:52:44.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v6.2.0","html_url":"https://github.com/mdp/rotp/releases/tag/v6.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v6.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.2.0/manifests"},{"name":"v6.1.0","sha":"6b42d17781a55d4fbf992ea25e6f6e742a049cef","kind":"tag","published_at":"2020-08-03T18:00:53.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v6.1.0","html_url":"https://github.com/mdp/rotp/releases/tag/v6.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v6.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.1.0/manifests"},{"name":"v6.0.0","sha":"5cf31c2ca3c9802a8d4876b0cf6ea199f51057b8","kind":"commit","published_at":"2020-04-23T15:53:41.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v6.0.0","html_url":"https://github.com/mdp/rotp/releases/tag/v6.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v6.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v6.0.0/manifests"},{"name":"v5.1.0","sha":"15d5104e3cb99f97d36c772f8f09cf7e2e77de20","kind":"commit","published_at":"2019-06-27T18:41:18.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v5.1.0","html_url":"https://github.com/mdp/rotp/releases/tag/v5.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v5.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v5.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v5.1.0/manifests"},{"name":"v5.0.0","sha":"c38462855747b62607b8475d9b45c4cfd92ba66b","kind":"commit","published_at":"2019-05-28T13:51:18.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v5.0.0","html_url":"https://github.com/mdp/rotp/releases/tag/v5.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v5.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v5.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v5.0.0/manifests"},{"name":"v4.1.0","sha":"2698c91539cfb868790e8bb7d5d4d8cf78f0bbfc","kind":"commit","published_at":"2019-02-28T16:20:58.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v4.1.0","html_url":"https://github.com/mdp/rotp/releases/tag/v4.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v4.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.1.0/manifests"},{"name":"v4.0.2","sha":"fabd3cb113c709138cdb24c916514dd36dfce14d","kind":"commit","published_at":"2018-11-01T19:01:03.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v4.0.2","html_url":"https://github.com/mdp/rotp/releases/tag/v4.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v4.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.0.2/manifests"},{"name":"v4.0.1","sha":"04e8dc8094f874d9b89b45bc5e75b311423b2bdb","kind":"commit","published_at":"2018-11-01T18:56:49.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v4.0.1","html_url":"https://github.com/mdp/rotp/releases/tag/v4.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v4.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.0.1/manifests"},{"name":"v4.0.0","sha":"52834910b8a621dee14af7a1267aad38618b3031","kind":"commit","published_at":"2018-11-01T17:06:34.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v4.0.0","html_url":"https://github.com/mdp/rotp/releases/tag/v4.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v4.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v4.0.0/manifests"},{"name":"v3.3.1","sha":"c82113eee6c9e7d0a03df8cf65ea50a2653c3916","kind":"commit","published_at":"2018-03-02T17:23:59.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v3.3.1","html_url":"https://github.com/mdp/rotp/releases/tag/v3.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v3.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v3.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v3.3.1/manifests"},{"name":"v3.3.0","sha":"07c0a732d27471d13719eddda998bde2a300b917","kind":"commit","published_at":"2016-09-23T01:10:41.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v3.3.0","html_url":"https://github.com/mdp/rotp/releases/tag/v3.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v3.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v3.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v3.3.0/manifests"},{"name":"v2.1.2","sha":"ff5ebaf9db0e991b2a6d1e308a74562fa7fb3f7f","kind":"commit","published_at":"2016-04-12T19:38:22.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v2.1.2","html_url":"https://github.com/mdp/rotp/releases/tag/v2.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v2.1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v2.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v2.1.2/manifests"},{"name":"v2.1.1","sha":"a9a5446e0fa656126996f67577f6d0ee5eec0ccd","kind":"commit","published_at":"2015-06-03T00:17:05.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v2.1.1","html_url":"https://github.com/mdp/rotp/releases/tag/v2.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v2.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v2.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v2.1.1/manifests"},{"name":"v2.1.0","sha":"0e65918ce8695870c99fd04c35a7dae8d4335782","kind":"commit","published_at":"2015-01-26T01:17:57.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v2.1.0","html_url":"https://github.com/mdp/rotp/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v2.1.0/manifests"},{"name":"v1.3.1","sha":"941e66c278e5aa0aaacae688052d711de5c3a6dc","kind":"tag","published_at":"2011-09-23T17:46:41.000Z","download_url":"https://codeload.github.com/mdp/rotp/tar.gz/v1.3.1","html_url":"https://github.com/mdp/rotp/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/mdp/rotp@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/tags/v1.3.1/manifests"}]},"repo_metadata_updated_at":"2026-07-02T03:40:24.360Z","dependent_packages_count":64,"downloads":132861978,"downloads_period":"total","dependent_repos_count":3073,"rankings":{"downloads":0.2665001505335578,"dependent_repos_count":0.5625494809379913,"dependent_packages_count":0.4660964975858877,"stargazers_count":1.2878982170136373,"forks_count":1.283437963448222,"docker_downloads_count":0.18565805466040747,"average":0.675356727363284},"purl":"pkg:gem/rotp","advisories":[{"uuid":"GSA_kwCzR0hTQS14Mmg4LXFtajQtZzYyZs4AA6Fh","url":"https://github.com/advisories/GHSA-x2h8-qmj4-g62f","title":"ROTP 6.2.2 and 6.2.1 has 0666 permissions for the .rb files.","description":"The Ruby One Time Password library (ROTP) is an open source library for generating and validating one time passwords. Affected versions had overly permissive default permissions. Users should patch to version 6.3.0. Users unable to patch may correct file permissions after installation.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2024-03-18T17:21:46.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":5.3,"cvss_vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L","references":["https://github.com/mdp/rotp/security/advisories/GHSA-x2h8-qmj4-g62f","https://nvd.nist.gov/vuln/detail/CVE-2024-28862","https://github.com/rubysec/ruby-advisory-db/blob/master/gems/rotp/CVE-2024-28862.yml","https://github.com/advisories/GHSA-x2h8-qmj4-g62f"],"source_kind":"github","identifiers":["GHSA-x2h8-qmj4-g62f","CVE-2024-28862"],"repository_url":"https://github.com/mdp/rotp","blast_radius":0.0,"created_at":"2024-03-21T20:04:42.474Z","updated_at":"2026-06-22T11:07:16.526Z","epss_percentage":0.00176,"epss_percentile":0.07288,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS14Mmg4LXFtajQtZzYyZs4AA6Fh","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS14Mmg4LXFtajQtZzYyZs4AA6Fh","packages":[{"ecosystem":"rubygems","package_name":"rotp","versions":[{"first_patched_version":"6.3.0","vulnerable_version_range":"\u003e= 6.2.1, \u003c 6.3.0"}],"purl":"pkg:gem/rotp","statistics":{"dependent_packages_count":64,"dependent_repos_count":3073,"downloads":131889918,"downloads_period":"total"},"affected_versions":["6.2.1","6.2.2"],"unaffected_versions":["1.0.0","1.1.0","1.2.0","1.3.0","1.3.1","1.3.2","1.3.3","1.4.0","1.4.1","1.4.2","1.4.3","1.4.4","1.4.5","1.4.6","1.5.0","1.6.0","1.6.1","2.0.0","2.1.0","2.1.1","2.1.2","3.0.0","3.0.1","3.1.0","3.2.0","3.3.0","3.3.1","4.0.0","4.0.2","4.1.0","5.0.0","5.1.0","6.0.0","6.1.0","6.2.0","6.3.0"]}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS14Mmg4LXFtajQtZzYyZs4AA6Fh/related_packages","related_advisories":[]}],"docker_usage_url":"https://docker.ecosyste.ms/usage/rubygems/rotp","docker_dependents_count":287,"docker_downloads_count":695222824,"usage_url":"https://repos.ecosyste.ms/usage/rubygems/rotp","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/rubygems/rotp/dependencies","status":null,"funding_links":[],"critical":true,"issue_metadata":{"last_synced_at":"2026-06-13T04:02:23.507Z","issues_count":46,"pull_requests_count":94,"avg_time_to_close_issue":6630961.048780488,"avg_time_to_close_pull_request":9226129.839506174,"issues_closed_count":41,"pull_requests_closed_count":81,"pull_request_authors_count":46,"issue_authors_count":46,"avg_comments_per_issue":2.217391304347826,"avg_comments_per_pull_request":1.1063829787234043,"merged_pull_requests_count":60,"bot_issues_count":0,"bot_pull_requests_count":9,"past_year_issues_count":1,"past_year_pull_requests_count":9,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":3019859.6666666665,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":3,"past_year_pull_request_authors_count":3,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":0.0,"past_year_avg_comments_per_pull_request":1.222222222222222,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":3,"past_year_merged_pull_requests_count":2,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/issues","maintainers":[{"login":"mdp","count":25,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mdp"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/rotp/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/rotp/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/rotp/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/rotp/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/rotp/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/rotp/codemeta","maintainers":[{"uuid":"1075","login":"mdp","name":null,"email":null,"url":null,"packages_count":9,"html_url":"https://rubygems.org/profiles/mdp","role":null,"created_at":"2022-11-09T09:48:46.495Z","updated_at":"2022-11-09T09:48:46.495Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/mdp/packages"}],"registry":{"name":"rubygems.org","url":"https://rubygems.org","ecosystem":"rubygems","default":true,"packages_count":208344,"maintainers_count":69086,"namespaces_count":0,"keywords_count":18771,"github":"rubygems","metadata":{"funded_packages_count":7455},"icon_url":"https://github.com/rubygems.png","created_at":"2022-04-04T15:19:23.446Z","updated_at":"2026-06-10T05:04:00.514Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/namespaces"}}],"commits":{"id":3367,"full_name":"mdp/rotp","default_branch":"main","total_commits":234,"total_committers":46,"total_bot_commits":3,"total_bot_committers":2,"mean_commits":5.086956521739131,"dds":0.41880341880341876,"past_year_total_commits":0,"past_year_total_committers":0,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":0.0,"past_year_dds":0.0,"last_synced_at":"2026-07-03T00:05:02.161Z","last_synced_commit":"bad1a3564fdc030422c2fb009e9341413814e9cb","created_at":"2023-03-07T09:17:24.885Z","updated_at":"2026-07-03T00:01:47.095Z","committers":[{"name":"Mark Percival","email":"m@mdp.im","login":"mdp","count":136},{"name":"Mark Percival","email":"mark@mpercival.com","login":null,"count":15},{"name":"halo","email":"github@posteo.org","login":"halo","count":14},{"name":"Alex Cruice","email":"alex.cruice@gmail.com","login":"atcruice","count":7},{"name":"David Vrensk","email":"david@vrensk.com","login":"dvrensk","count":6},{"name":"Mark Percival","email":"mark@markpercival.us","login":null,"count":4},{"name":"Asmod4n","email":"Asmod4n","login":"Asmod4n","count":3},{"name":"Sam Clegg","email":"sclegg@omb.eop.gov","login":"sbc100","count":3},{"name":"Gus Bonfant","email":"gbonfant@me.com","login":null,"count":2},{"name":"Keeyan Nejad","email":"keeyan@knejad.co.uk","login":null,"count":2},{"name":"Ilya Sabanin","email":"ilya.sabanin@gmail.com","login":"isabanin","count":2},{"name":"Ivan Povalyukhin","email":"ivanpoval@gmail.com","login":"ipoval","count":2},{"name":"Jeremy Evans","email":"code@jeremyevans.net","login":"jeremyevans","count":2},{"name":"Olle Jonsson","email":"olle.jonsson@gmail.com","login":"olleolleolle","count":2},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":2},{"name":"Shai Rosenfeld \u0026 Michael Brodhead","email":"srosenfeld@engineyard.com","login":"shaiguitar","count":2},{"name":"github-actions[bot]","email":"41898282+github-actions[bot]","login":"github-actions[bot]","count":1},{"name":"amanda","email":"mengfanling825@163.com","login":"amandameng","count":1},{"name":"Tristan Morgan","email":"tristanmorgan","login":"tristanmorgan","count":1},{"name":"Surendra Singhi","email":"ssinghi@kreeti.com","login":"ssinghi","count":1},{"name":"Bruno Oliveira","email":"bruno@abstractj.org","login":null,"count":1},{"name":"Fup Duck","email":"github@duckdalbe.org","login":null,"count":1},{"name":"Guillaume Rose","email":"rose@netxp.fr","login":null,"count":1},{"name":"Joe Faber","email":"jfaber@secureauth.com","login":null,"count":1},{"name":"Micah Gates","email":"github@mgates.com","login":null,"count":1},{"name":"Michael Brodhead \u0026 Shai Rosenfeld","email":"mbrodhead@engineyard.com","login":null,"count":1},{"name":"Nathan Reynolds","email":"github@nreynolds.me.uk","login":null,"count":1},{"name":"Sergey Petrenko","email":"sergey.petrenko@onelogin.com","login":null,"count":1},{"name":"Ylan Segal","email":"ylan.segal@mellmo.com","login":null,"count":1},{"name":"mdp","email":"mdp@yahoo-inc.com","login":null,"count":1},{"name":"Sarah Ridge","email":"sarah@cobalt.io","login":"smridge","count":1},{"name":"Peter Goldstein","email":"peter.m.goldstein@gmail.com","login":"petergoldstein","count":1},{"name":"Masato Ohba","email":"over.rye@gmail.com","login":"ohbarye","count":1},{"name":"Masataka Pocke Kuwabara","email":"kuwabara@pocke.me","login":"pocke","count":1},{"name":"Mark Dodwell","email":"mkdynamic","login":"mkdynamic","count":1},{"name":"Marcel Asio","email":"marcel@asio.se","login":"asio","count":1},{"name":"KANG ONE SUH","email":"kang@neat.hk","login":"ksuh90","count":1},{"name":"Josef Šimánek","email":"josef.simanek@gmail.com","login":"simi","count":1},{"name":"Johnny Shields","email":"johnny.shields@gmail.com","login":"johnnyshields","count":1},{"name":"Igor Victor","email":"gogainda@yandex.ru","login":"gogainda","count":1},{"name":"Akira Matsuda","email":"ronnie@dio.jp","login":"amatsuda","count":1},{"name":"André Luis Leal Cardoso Junior","email":"andrehjr@gmail.com","login":"andrehjr","count":1},{"name":"Bryan Talbot","email":"bryan.talbot@ijji.com","login":"btalbot","count":1},{"name":"Douwe Maan","email":"me@douwe.me","login":"DouweM","count":1},{"name":"Earlopain","email":"14981592+Earlopain","login":"Earlopain","count":1},{"name":"Finnian Anderson","email":"get@finnian.io","login":"developius","count":1}],"past_year_committers":[],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-07-05T00:00:09.687Z","repositories_count":6283215,"commits_count":874731582,"contributors_count":35249202,"owners_count":1179034,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"mdp/rotp","html_url":"https://github.com/mdp/rotp","last_synced_at":"2026-06-13T04:02:23.507Z","status":"error","issues_count":46,"pull_requests_count":94,"avg_time_to_close_issue":6630961.048780488,"avg_time_to_close_pull_request":9226129.839506174,"issues_closed_count":41,"pull_requests_closed_count":81,"pull_request_authors_count":46,"issue_authors_count":46,"avg_comments_per_issue":2.217391304347826,"avg_comments_per_pull_request":1.1063829787234043,"merged_pull_requests_count":60,"bot_issues_count":0,"bot_pull_requests_count":9,"past_year_issues_count":1,"past_year_pull_requests_count":9,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":3019859.6666666665,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":3,"past_year_pull_request_authors_count":3,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":0.0,"past_year_avg_comments_per_pull_request":1.222222222222222,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":3,"past_year_merged_pull_requests_count":2,"created_at":"2023-05-12T16:25:41.804Z","updated_at":"2026-06-13T04:02:23.507Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdp%2Frotp/issues","issue_labels_count":{},"pull_request_labels_count":{"dependencies":7,"github_actions":3,"autorelease: pending":2},"issue_author_associations_count":{"NONE":40,"CONTRIBUTOR":5,"OWNER":1},"pull_request_author_associations_count":{"CONTRIBUTOR":44,"NONE":26,"OWNER":24},"issue_authors":{"olleolleolle":1,"kapitolinakuznetsova":1,"evolve2k":1,"samueltangz":1,"fydelio":1,"thomasdziedzic":1,"prvinuch":1,"artmotion":1,"kesha-antonov":1,"btalbot":1,"HParker":1,"ZempTime":1,"braindev":1,"jDessicVaZ92":1,"amitiitm":1,"fltiago":1,"shivanibhanwal":1,"kossy0701":1,"monfresh":1,"zainonrails":1,"mkdynamic":1,"tristanmorgan":1,"hosamaly":1,"askprod":1,"ghost":1,"murphyryan1":1,"jerimiahmilton":1,"Earlopain":1,"mdp":1,"f3ndot":1,"cthungIT":1,"caryfitzhugh":1,"clarkewd":1,"moloch--":1,"codeundercoverdev":1,"Linuus":1,"sahilchopra":1,"omarluq":1,"wdperson":1,"nazarhussain":1,"Nandez89":1,"danlaffan":1,"nvh0412":1,"featheredtoast":1,"awais4123":1,"generationloss":1},"pull_request_authors":{"mdp":24,"dependabot[bot]":7,"olleolleolle":4,"jeremyevans":3,"ssinghi":3,"sbc100":3,"halo":3,"tsogbadrakh-qp":2,"dvrensk":2,"KNejad":2,"wdalzalat":2,"luong-komorebi":2,"Earlopain":2,"github-actions[bot]":2,"hieuk09":2,"developius":1,"amatsuda":1,"DouweM":1,"ohbarye":1,"asio":1,"etehtsea":1,"brunoocasali":1,"duritong":1,"amandameng":1,"duckdalbe":1,"pocke":1,"I-Iugo":1,"btalbot":1,"rodrimaia":1,"abstractj":1,"atcruice":1,"ipoval":1,"petergoldstein":1,"andrehjr":1,"jlfaber":1,"psergus":1,"willnet":1,"pstengel":1,"tristanmorgan":1,"levriero":1,"smridge":1,"f3ndot":1,"ksuh90":1,"gogainda":1,"saleh-alhaddad":1,"simi":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-06-18T00:00:09.580Z","repositories_count":14815561,"issues_count":33097770,"pull_requests_count":109231057,"authors_count":11310650,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{"dependencies":3,"github_actions":3},"past_year_issue_author_associations_count":{"NONE":1},"past_year_pull_request_author_associations_count":{"CONTRIBUTOR":3,"NONE":1},"past_year_issue_authors":{"nvh0412":1},"past_year_pull_request_authors":{"dependabot[bot]":3,"willnet":1},"maintainers":[{"login":"mdp","count":25,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mdp"}],"active_maintainers":[]},"events":{"total":{"PullRequestEvent":15,"ForkEvent":5,"IssuesEvent":2,"WatchEvent":58,"IssueCommentEvent":15,"PushEvent":14,"PullRequestReviewEvent":2,"PullRequestReviewCommentEvent":1,"CreateEvent":7},"last_year":{"PullRequestEvent":3,"ForkEvent":2,"IssuesEvent":1,"WatchEvent":20,"IssueCommentEvent":2,"CreateEvent":1}},"keywords":[],"dependencies":[{"ecosystem":"rubygems","filepath":"rotp.gemspec","sha":null,"kind":"manifest","created_at":"2022-08-26T01:02:08.852Z","updated_at":"2022-08-26T01:02:08.852Z","repository_link":"https://github.com/mdp/rotp/blob/main/rotp.gemspec","dependencies":[{"id":2758981051,"package_name":"rake","ecosystem":"rubygems","requirements":"~\u003e 13.0","direct":true,"kind":"development","optional":false},{"id":2758981052,"package_name":"rspec","ecosystem":"rubygems","requirements":"~\u003e 3.5","direct":true,"kind":"development","optional":false},{"id":2758981053,"package_name":"simplecov","ecosystem":"rubygems","requirements":"~\u003e 0.12","direct":true,"kind":"development","optional":false},{"id":2758981054,"package_name":"timecop","ecosystem":"rubygems","requirements":"~\u003e 0.8","direct":true,"kind":"development","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/test.yaml","sha":null,"kind":"manifest","created_at":"2023-01-28T15:17:31.723Z","updated_at":"2023-01-28T15:17:31.723Z","repository_link":"https://github.com/mdp/rotp/blob/main/.github/workflows/test.yaml","dependencies":[{"id":7209918810,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":7209918811,"package_name":"ruby/setup-ruby","ecosystem":"actions","requirements":"359bebbc29cbe6c87da6bc9ea3bc930432750108","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"docker","filepath":".devcontainer/Dockerfile","sha":null,"kind":"manifest","created_at":"2023-01-28T15:17:31.728Z","updated_at":"2023-01-28T15:17:31.728Z","repository_link":"https://github.com/mdp/rotp/blob/main/.devcontainer/Dockerfile","dependencies":[{"id":7209918812,"package_name":"mcr.microsoft.com/vscode/devcontainers/ruby","ecosystem":"docker","requirements":"0-${VARIANT}","direct":true,"kind":"build","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/release.yaml","sha":null,"kind":"manifest","created_at":"2024-06-18T10:57:30.325Z","updated_at":"2024-06-18T10:57:30.325Z","repository_link":"https://github.com/mdp/rotp/blob/main/.github/workflows/release.yaml","dependencies":[{"id":18674579906,"package_name":"google-github-actions/release-please-action","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":18674579907,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":18674579908,"package_name":"ruby/setup-ruby","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"docker","filepath":"docker-compose.yml","sha":null,"kind":"manifest","created_at":"2024-06-18T10:57:30.340Z","updated_at":"2024-06-18T10:57:30.340Z","repository_link":"https://github.com/mdp/rotp/blob/main/docker-compose.yml","dependencies":[]},{"ecosystem":"rubygems","filepath":"Gemfile","sha":null,"kind":"manifest","created_at":"2024-06-18T10:57:30.345Z","updated_at":"2024-06-18T10:57:30.345Z","repository_link":"https://github.com/mdp/rotp/blob/main/Gemfile","dependencies":[]}],"score":32.47823990605859,"created_at":"2024-12-15T21:38:07.126Z","updated_at":"2026-07-26T11:00:55.326Z","avatar_url":"https://github.com/mdp.png","language":"Ruby","monthly_downloads":0,"readme":"## Webauthn and the future of 2FA\n\nAlthough this library will continue to be maintained, if you're implementing a 2FA solution today, you should take a look at [Webauthn](https://webauthn.guide/). It doesn't involve shared secrets and it's supported by most modern browsers and operating systems.\n\n### Ruby resources for Webauthn\n\n- [Multi-Factor Authentication for Rails With WebAuthn and Devise](https://www.honeybadger.io/blog/multi-factor-2fa-authentication-rails-webauthn-devise/)\n- [Webauthn Ruby Gem](https://github.com/cedarcode/webauthn-ruby)\n- [Rails demo app with Webauthn](https://github.com/cedarcode/webauthn-rails-demo-app)\n\n----\n\n# The Ruby One Time Password Library\n\n[![Build Status](https://github.com/mdp/rotp/actions/workflows/test.yaml/badge.svg)](https://github.com/mdp/rotp/actions/workflows/test.yaml)\n[![Gem Version](https://badge.fury.io/rb/rotp.svg)](https://rubygems.org/gems/rotp)\n[![Documentation](http://img.shields.io/badge/docs-rdoc.info-blue.svg)](https://www.rubydoc.info/github/mdp/rotp/master)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat)](https://github.com/mdp/rotp/blob/master/LICENSE)\n\n\nA ruby library for generating and validating one time passwords (HOTP \u0026 TOTP) according to [RFC 4226](https://datatracker.ietf.org/doc/html/rfc4226) and [RFC 6238](https://datatracker.ietf.org/doc/html/rfc6238).\n\nROTP is compatible with [Google Authenticator](https://github.com/google/google-authenticator) available for [Android](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2) and [iPhone](https://itunes.apple.com/en/app/google-authenticator/id388497605) and any other TOTP based implementations.\n\nMany websites use this for [multi-factor authentication](https://www.youtube.com/watch?v=17rykTIX_HY), such as GMail, Facebook, Amazon EC2, WordPress, and Salesforce. You can find a more complete [list here](https://en.wikipedia.org/wiki/Google_Authenticator#Usage).\n\n## Dependencies\n\n* OpenSSL\n* Ruby 2.3 or higher\n\n## Breaking changes\n\n### Breaking changes in \u003e= 6.0\n\n- Dropping support for Ruby \u003c2.3\n\n### Breaking changes in \u003e= 5.0\n\n- `ROTP::Base32.random_base32` is now `ROTP::Base32.random` and the argument\n  has changed from secret string length to byte length to allow for more\n  precision. There is an alias to allow for `random_base32` for the time being.\n- Cleaned up the Base32 implementation to match Google Authenticator's version.\n\n### Breaking changes in \u003e= 4.0\n\n- Simplified API\n  - `verify` now takes options for `drift` and `after`,`padding` is no longer an option\n  - `verify` returns a timestamp if true, nil if false\n- Dropping support for Ruby \u003c 2.0\n- Docs for 3.x can be found [here](https://github.com/mdp/rotp/tree/v3.x)\n\n## Installation\n\n```bash\ngem install rotp\n```\n\n## Library Usage\n\n### Time based OTP's\n\n```ruby\ntotp = ROTP::TOTP.new(\"base32secret3232\", issuer: \"My Service\")\ntotp.now # =\u003e \"492039\"\n\n# OTP verified for current time - returns timestamp of the current interval\n# period.\ntotp.verify(\"492039\") # =\u003e 1474590700\n\nsleep 30\n\n# OTP fails to verify - returns nil\ntotp.verify(\"492039\") # =\u003e nil\n```\n\n### Counter based OTP's\n\n```ruby\nhotp = ROTP::HOTP.new(\"base32secretkey3232\")\nhotp.at(0) # =\u003e \"786922\"\nhotp.at(1) # =\u003e \"595254\"\nhotp.at(1401) # =\u003e \"259769\"\n\n# OTP verified with a counter\nhotp.verify(\"259769\", 1401) # =\u003e 1401\nhotp.verify(\"259769\", 1402) # =\u003e nil\n```\n\n### Preventing reuse of Time based OTP's\n\nBy keeping track of the last time a user's OTP was verified, we can prevent token reuse during\nthe interval window (default 30 seconds)\n\nThe following is an example of this in action:\n\n```ruby\nuser = User.find(someUserID)\ntotp = ROTP::TOTP.new(user.otp_secret)\ntotp.now # =\u003e \"492039\"\n\n# Let's take a look at the last time the user authenticated with an OTP\nuser.last_otp_at # =\u003e 1432703530\n\n# Verify the OTP\nlast_otp_at = totp.verify(\"492039\", after: user.last_otp_at) #=\u003e 1472145760\n# ROTP returns the timestamp(int) of the current period\n\n# Store this on the user's account\nuser.update(last_otp_at: last_otp_at)\n\n# Someone attempts to reuse the OTP inside the 30s window\nlast_otp_at = totp.verify(\"492039\", after: user.last_otp_at) #=\u003e nil\n# It fails to verify because we are still in the same 30s interval window\n```\n\n### Verifying a Time based OTP with drift\n\nSome users may enter a code just after it has expired. By adding 'drift' you can allow\nfor a recently expired token to remain valid.\n\n```ruby\ntotp = ROTP::TOTP.new(\"base32secret3232\")\nnow = Time.at(1474590600) #2016-09-23 00:30:00 UTC\ntotp.at(now) # =\u003e \"250939\"\n\n# OTP verified for current time along with 15 seconds earlier\n# ie. User enters a code just after it expired\ntotp.verify(\"250939\", drift_behind: 15, at: now + 35) # =\u003e 1474590600\n# User waits too long. Fails to validate previous OTP\ntotp.verify(\"250939\", drift_behind: 15, at: now + 45) # =\u003e nil\n```\n\n### Generating a Base32 Secret key\n\n```ruby\nROTP::Base32.random  # returns a 160 bit (32 character) base32 secret. Compatible with Google Authenticator\n```\n\nNote: The Base32 format conforms to [RFC 4648 Base32](http://en.wikipedia.org/wiki/Base32#RFC_4648_Base32_alphabet)\n\n### Generating QR Codes for provisioning mobile apps\n\nProvisioning URI's generated by ROTP are compatible with most One Time Password applications, including\nGoogle Authenticator.\n\n```ruby\ntotp = ROTP::TOTP.new(\"base32secret3232\", issuer: \"My Service\")\ntotp.provisioning_uri(\"alice@google.com\") # =\u003e 'otpauth://totp/My%20Service:alice%40google.com?secret=base32secret3232\u0026issuer=My%20Service'\n\nhotp = ROTP::HOTP.new(\"base32secret3232\", issuer: \"My Service\")\nhotp.provisioning_uri(\"alice@google.com\", 0) # =\u003e 'otpauth://hotp/My%20Service:alice%40google.com?secret=base32secret3232\u0026issuer=My%20Service\u0026counter=0'\n```\n\nThis can then be rendered as a QR Code which the user can scan using their mobile phone and the appropriate application.\n\n#### Working example\n\nScan the following barcode with your phone, using Google Authenticator\n\n![QR Code for OTP](https://cloud.githubusercontent.com/assets/2868/18771262/54f109dc-80f2-11e6-863f-d2be62ee587a.png)\n\nNow run the following and compare the output\n\n```ruby\nrequire 'rubygems'\nrequire 'rotp'\ntotp = ROTP::TOTP.new(\"JBSWY3DPEHPK3PXP\")\np \"Current OTP: #{totp.now}\"\n```\n\n### Testing\n\n```bash\nbundle install\nbundle exec rspec\n```\n\n### Testing with Docker\n\nIn order to make it easier to test against different ruby version, ROTP comes\nwith a set of Dockerfiles for each version that we test against in Travis\n\n```bash\ndocker build -f Dockerfile-2.6 -t rotp_2.6 .\ndocker run --rm -v $(pwd):/usr/src/app rotp_2.6\n```\n\nAlternately, you may use docker-compose to run all the tests:\n\n```\ndocker-compose up\n```\n\n## Executable Usage\n\nThe rotp rubygem includes CLI version to help with testing and debugging\n\n```bash\n# Try this to get an overview of the commands\nrotp --help\n\n# Examples\nrotp --secret p4ssword                       # Generates a time-based one-time password\nrotp --hmac --secret p4ssword --counter 42   # Generates a counter-based one-time password\n```\n\n## Contributors\n\nHave a look at the [contributors graph](https://github.com/mdp/rotp/graphs/contributors) on Github.\n\n## License\n\nMIT Copyright (C) 2019 by Mark Percival, see [LICENSE](https://github.com/mdp/rotp/blob/master/LICENSE) for details.\n\n## Other implementations\n\nA list can be found at [Wikipedia](https://en.wikipedia.org/wiki/Google_Authenticator#Implementations).\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["rubygem","activerecord","crash-reporting","rack","rspec","gem","activejob","mvc","feature-flag","sinatra"],"project_url":"https://ruby.ecosyste.ms/api/v1/projects/150","html_url":"https://ruby.ecosyste.ms/projects/150"}