{"id":194,"name":null,"description":"Font Metrics Parser for Prawn","url":"https://github.com/prawnpdf/ttfunk","last_synced_at":"2026-04-30T16:30:29.449Z","repository":{"id":447226,"uuid":"69899","full_name":"prawnpdf/ttfunk","owner":"prawnpdf","description":"Font Metrics Parser for Prawn","archived":false,"fork":false,"pushed_at":"2026-04-18T13:36:11.000Z","size":13553,"stargazers_count":132,"open_issues_count":14,"forks_count":92,"subscribers_count":33,"default_branch":"master","last_synced_at":"2026-04-22T20:09:32.707Z","etag":null,"topics":["afm","dfont","fonts","ruby","ttc","ttf"],"latest_commit_sha":null,"homepage":"http://prawnpdf.org","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"aschelch/cakephp-notification-plugin","license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/prawnpdf.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"COPYING","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":"2008-10-30T22:41:01.000Z","updated_at":"2026-04-18T13:36:17.000Z","dependencies_parsed_at":"2024-06-18T12:30:56.172Z","dependency_job_id":"477d3c93-7607-4ac9-b579-cfba0c1bab3b","html_url":"https://github.com/prawnpdf/ttfunk","commit_stats":{"total_commits":268,"total_committers":32,"mean_commits":8.375,"dds":0.7350746268656716,"last_synced_commit":"885061ed7fd0d1397ff40b3c67fb9d93dc30dcd0"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/prawnpdf/ttfunk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prawnpdf","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/sbom","scorecard":{"id":744180,"data":{"date":"2025-08-11","repo":{"name":"github.com/prawnpdf/ttfunk","commit":"885061ed7fd0d1397ff40b3c67fb9d93dc30dcd0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Code-Review","score":0,"reason":"Found 1/29 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"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":"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":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Info:   0 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"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":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 2 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-22T18:17:04.717Z","repository_id":447226,"created_at":"2025-08-22T18:17:04.717Z","updated_at":"2025-08-22T18:17:04.717Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32296259,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T09:34:17.070Z","status":"ssl_error","status_checked_at":"2026-04-26T09:34:00.993Z","response_time":129,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":"prawnpdf","name":"PrawnPDF","uuid":"1440292","kind":"organization","description":"","email":null,"website":"https://prawnpdf.org/","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/1440292?v=4","repositories_count":12,"last_synced_at":"2024-04-21T09:19:04.937Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/prawnpdf","funding_links":[],"total_stars":5176,"followers":5,"following":0,"created_at":"2022-11-02T16:21:44.666Z","updated_at":"2024-04-21T09:19:08.509Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prawnpdf","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prawnpdf/repositories"},"packages":[{"id":13779970,"name":"ruby-ttfunk","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/prawnpdf/ttfunk","licenses":"other","normalized_licenses":["Other"],"repository_url":"https://github.com/prawnpdf/ttfunk","keywords_array":["universe/ruby"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-13T13:27:46.502Z","latest_release_published_at":"2026-02-13T13:27:46.502Z","latest_release_number":"1.7.0-1","last_synced_at":"2026-03-13T17:37:11.017Z","created_at":"2026-02-13T13:27:46.298Z","updated_at":"2026-03-13T17:37:11.202Z","registry_url":"https://launchpad.net/ubuntu/+source/ruby-ttfunk","install_command":"apt-get install ruby-ttfunk","documentation_url":null,"metadata":{"component":"universe","architecture":"all","priority":"optional","binary":"ruby-ttfunk","standards_version":"4.6.0","maintainer":"Debian Ruby Team \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper-compat (= 13), gem2deb (\u003e= 1), rake, ruby-rspec","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":447226,"uuid":"69899","full_name":"prawnpdf/ttfunk","owner":"prawnpdf","description":"Font Metrics Parser for Prawn","archived":false,"fork":false,"pushed_at":"2026-02-04T13:31:56.000Z","size":13536,"stargazers_count":132,"open_issues_count":14,"forks_count":86,"subscribers_count":34,"default_branch":"master","last_synced_at":"2026-02-10T04:39:55.354Z","etag":null,"topics":["afm","dfont","fonts","ruby","ttc","ttf"],"latest_commit_sha":null,"homepage":"http://prawnpdf.org","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"aschelch/cakephp-notification-plugin","license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/prawnpdf.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"COPYING","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":"2008-10-30T22:41:01.000Z","updated_at":"2026-02-06T11:53:05.000Z","dependencies_parsed_at":"2024-06-18T12:30:56.172Z","dependency_job_id":"c37327b5-9b9a-463b-957c-b8cec69ea3f1","html_url":"https://github.com/prawnpdf/ttfunk","commit_stats":{"total_commits":268,"total_committers":32,"mean_commits":8.375,"dds":0.7350746268656716,"last_synced_commit":"885061ed7fd0d1397ff40b3c67fb9d93dc30dcd0"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/prawnpdf/ttfunk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prawnpdf","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/sbom","scorecard":{"id":744180,"data":{"date":"2025-08-11","repo":{"name":"github.com/prawnpdf/ttfunk","commit":"885061ed7fd0d1397ff40b3c67fb9d93dc30dcd0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Code-Review","score":0,"reason":"Found 1/29 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"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":"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":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Info:   0 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"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":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 2 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-22T18:17:04.717Z","repository_id":447226,"created_at":"2025-08-22T18:17:04.717Z","updated_at":"2025-08-22T18:17:04.717Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29355822,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T01:03:07.613Z","status":"online","status_checked_at":"2026-02-12T02:00:06.911Z","response_time":55,"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"}},"repo_metadata_updated_at":"2026-03-05T15:00:20.142Z","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-ttfunk?arch=source\u0026distro=ubuntu-22.04\u0026repository_url=https://launchpad.net/ubuntu/jammy","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/ruby-ttfunk","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/ruby-ttfunk","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/ruby-ttfunk/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-02-28T11:01:12.186Z","issues_count":36,"pull_requests_count":79,"avg_time_to_close_issue":38127021.666666664,"avg_time_to_close_pull_request":19742730.714285713,"issues_closed_count":27,"pull_requests_closed_count":70,"pull_request_authors_count":40,"issue_authors_count":32,"avg_comments_per_issue":5.305555555555555,"avg_comments_per_pull_request":3.5569620253164556,"merged_pull_requests_count":49,"bot_issues_count":0,"bot_pull_requests_count":0,"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":1320613.75,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":4,"past_year_pull_request_authors_count":6,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":2.0,"past_year_avg_comments_per_pull_request":2.2222222222222223,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":1,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/issues","maintainers":[{"login":"camertron","count":14,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/camertron"},{"login":"pointlessone","count":9,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pointlessone"},{"login":"mtyaka","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mtyaka"},{"login":"practicingruby","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/practicingruby"},{"login":"gettalong","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/gettalong"},{"login":"yob","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/yob"}],"active_maintainers":[{"login":"pointlessone","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pointlessone"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/ruby-ttfunk/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/ruby-ttfunk/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/ruby-ttfunk/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/ruby-ttfunk/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/ruby-ttfunk/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":0,"github":"ubuntu","metadata":{"codename":"jammy","funded_packages_count":142},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:46.486Z","updated_at":"2026-04-01T06:53:21.644Z","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":13751847,"name":"ruby-ttfunk","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/prawnpdf/ttfunk","licenses":"other","normalized_licenses":["Other"],"repository_url":"https://github.com/prawnpdf/ttfunk","keywords_array":["universe/ruby"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-13T07:24:27.049Z","latest_release_published_at":"2026-02-13T07:24:27.049Z","latest_release_number":"1.5.1-1","last_synced_at":"2026-03-13T21:33:27.494Z","created_at":"2026-02-13T07:24:26.859Z","updated_at":"2026-03-13T21:33:27.707Z","registry_url":"https://launchpad.net/ubuntu/+source/ruby-ttfunk","install_command":"apt-get install ruby-ttfunk","documentation_url":null,"metadata":{"component":"universe","architecture":"all","priority":"optional","binary":"ruby-ttfunk","standards_version":"4.2.1","maintainer":"Debian Ruby Extras Maintainers \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper (\u003e= 11~), gem2deb","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":447226,"uuid":"69899","full_name":"prawnpdf/ttfunk","owner":"prawnpdf","description":"Font Metrics Parser for Prawn","archived":false,"fork":false,"pushed_at":"2026-02-04T13:31:56.000Z","size":13536,"stargazers_count":132,"open_issues_count":14,"forks_count":86,"subscribers_count":34,"default_branch":"master","last_synced_at":"2026-02-10T04:39:55.354Z","etag":null,"topics":["afm","dfont","fonts","ruby","ttc","ttf"],"latest_commit_sha":null,"homepage":"http://prawnpdf.org","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"aschelch/cakephp-notification-plugin","license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/prawnpdf.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"COPYING","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":"2008-10-30T22:41:01.000Z","updated_at":"2026-02-06T11:53:05.000Z","dependencies_parsed_at":"2024-06-18T12:30:56.172Z","dependency_job_id":"c37327b5-9b9a-463b-957c-b8cec69ea3f1","html_url":"https://github.com/prawnpdf/ttfunk","commit_stats":{"total_commits":268,"total_committers":32,"mean_commits":8.375,"dds":0.7350746268656716,"last_synced_commit":"885061ed7fd0d1397ff40b3c67fb9d93dc30dcd0"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/prawnpdf/ttfunk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prawnpdf","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/sbom","scorecard":{"id":744180,"data":{"date":"2025-08-11","repo":{"name":"github.com/prawnpdf/ttfunk","commit":"885061ed7fd0d1397ff40b3c67fb9d93dc30dcd0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Code-Review","score":0,"reason":"Found 1/29 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"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":"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":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Info:   0 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"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":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 2 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-22T18:17:04.717Z","repository_id":447226,"created_at":"2025-08-22T18:17:04.717Z","updated_at":"2025-08-22T18:17:04.717Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29355822,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T01:03:07.613Z","status":"online","status_checked_at":"2026-02-12T02:00:06.911Z","response_time":55,"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"}},"repo_metadata_updated_at":"2026-03-05T15:00:19.363Z","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-ttfunk?arch=source\u0026distro=ubuntu-20.04\u0026repository_url=https://launchpad.net/ubuntu/focal","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/ruby-ttfunk","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/ruby-ttfunk","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/ruby-ttfunk/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-02-28T11:01:12.186Z","issues_count":36,"pull_requests_count":79,"avg_time_to_close_issue":38127021.666666664,"avg_time_to_close_pull_request":19742730.714285713,"issues_closed_count":27,"pull_requests_closed_count":70,"pull_request_authors_count":40,"issue_authors_count":32,"avg_comments_per_issue":5.305555555555555,"avg_comments_per_pull_request":3.5569620253164556,"merged_pull_requests_count":49,"bot_issues_count":0,"bot_pull_requests_count":0,"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":1320613.75,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":4,"past_year_pull_request_authors_count":6,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":2.0,"past_year_avg_comments_per_pull_request":2.2222222222222223,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":1,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/issues","maintainers":[{"login":"camertron","count":14,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/camertron"},{"login":"pointlessone","count":9,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pointlessone"},{"login":"mtyaka","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mtyaka"},{"login":"practicingruby","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/practicingruby"},{"login":"gettalong","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/gettalong"},{"login":"yob","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/yob"}],"active_maintainers":[{"login":"pointlessone","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pointlessone"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/packages/ruby-ttfunk/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/packages/ruby-ttfunk/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/packages/ruby-ttfunk/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/packages/ruby-ttfunk/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/packages/ruby-ttfunk/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":0,"github":"ubuntu","metadata":{"codename":"focal","funded_packages_count":142},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:47.233Z","updated_at":"2026-04-01T06:53:15.590Z","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":12346106,"name":"ttfunk","ecosystem":"rubygems","description":"Font Metrics Parser for the Prawn PDF generator","homepage":"http://prawnpdf.org/","licenses":"Nonstandard,GPL-2.0-only,GPL-3.0-only","normalized_licenses":["GPL-2.0-only","GPL-3.0-only"],"repository_url":"https://github.com/prawnpdf/ttfunk","keywords_array":[],"namespace":null,"versions_count":18,"first_release_published_at":"2011-04-02T18:23:47.386Z","latest_release_published_at":"2024-03-05T10:08:07.612Z","latest_release_number":"1.8.0","last_synced_at":"2026-04-13T19:30:25.217Z","created_at":"2025-10-07T06:37:51.261Z","updated_at":"2026-04-13T19:31:05.355Z","registry_url":"https://gem.coop/gems/ttfunk","install_command":"gem install ttfunk -s https://gem.coop","documentation_url":"http://www.rubydoc.info/gems/ttfunk/","metadata":{"funding":null},"repo_metadata":{"id":447226,"uuid":"69899","full_name":"prawnpdf/ttfunk","owner":"prawnpdf","description":"Font Metrics Parser for Prawn","archived":false,"fork":false,"pushed_at":"2026-03-06T11:53:32.000Z","size":13539,"stargazers_count":132,"open_issues_count":11,"forks_count":88,"subscribers_count":34,"default_branch":"master","last_synced_at":"2026-03-12T21:03:18.758Z","etag":null,"topics":["afm","dfont","fonts","ruby","ttc","ttf"],"latest_commit_sha":null,"homepage":"http://prawnpdf.org","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"aschelch/cakephp-notification-plugin","license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/prawnpdf.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"COPYING","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":"2008-10-30T22:41:01.000Z","updated_at":"2026-03-06T11:53:36.000Z","dependencies_parsed_at":"2024-06-18T12:30:56.172Z","dependency_job_id":"84d9614e-526c-45ef-af3f-31d5989ba1a7","html_url":"https://github.com/prawnpdf/ttfunk","commit_stats":{"total_commits":268,"total_committers":32,"mean_commits":8.375,"dds":0.7350746268656716,"last_synced_commit":"885061ed7fd0d1397ff40b3c67fb9d93dc30dcd0"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/prawnpdf/ttfunk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prawnpdf","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/sbom","scorecard":{"id":744180,"data":{"date":"2025-08-11","repo":{"name":"github.com/prawnpdf/ttfunk","commit":"885061ed7fd0d1397ff40b3c67fb9d93dc30dcd0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Code-Review","score":0,"reason":"Found 1/29 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"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":"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":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Info:   0 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"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":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 2 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-22T18:17:04.717Z","repository_id":447226,"created_at":"2025-08-22T18:17:04.717Z","updated_at":"2025-08-22T18:17:04.717Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30567081,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-16T04:42:47.996Z","status":"ssl_error","status_checked_at":"2026-03-16T04:42:44.668Z","response_time":96,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":"prawnpdf","name":"PrawnPDF","uuid":"1440292","kind":"organization","description":"","email":null,"website":"https://prawnpdf.org/","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/1440292?v=4","repositories_count":12,"last_synced_at":"2024-04-21T09:19:04.937Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/prawnpdf","funding_links":[],"total_stars":5176,"followers":5,"following":0,"created_at":"2022-11-02T16:21:44.666Z","updated_at":"2024-04-21T09:19:08.509Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prawnpdf","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prawnpdf/repositories"},"tags":[{"name":"1.8.0","sha":"885061ed7fd0d1397ff40b3c67fb9d93dc30dcd0","kind":"commit","published_at":"2024-03-05T10:37:13.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.8.0","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.8.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.8.0/manifests"},{"name":"1.7.0","sha":"9082af18eae98654123dd89cacb4d20f7dc0f6ee","kind":"commit","published_at":"2020-12-29T19:52:27.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.7.0","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.7.0/manifests"},{"name":"1.6.2.1","sha":"8ccf63eec5fe1994c60f402fc615684d764efb7e","kind":"commit","published_at":"2020-02-14T18:48:47.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.6.2.1","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.6.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.6.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.6.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.6.2.1/manifests"},{"name":"1.6.2","sha":"5763b9be5deff18d26949e6167d1687707a022a7","kind":"commit","published_at":"2020-02-14T09:20:38.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.6.2","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.6.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.6.2/manifests"},{"name":"1.6.1","sha":"3fcabcacbdeac847f9adfc6026094c11a72fa43e","kind":"commit","published_at":"2020-01-07T09:30:49.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.6.1","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.6.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.6.1/manifests"},{"name":"1.6.0","sha":"d309269c74adef38106ee582ba24454447deafdb","kind":"commit","published_at":"2020-01-04T11:59:39.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.6.0","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.6.0/manifests"},{"name":"1.5.1","sha":"ef3eacc1f468ce9be3136603ec662fb86facfedf","kind":"commit","published_at":"2017-04-11T12:02:39.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.5.1","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.5.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.5.1/manifests"},{"name":"1.5.0","sha":"4d4abb6f5c28a3db462322a87d3e31b712d0ce13","kind":"commit","published_at":"2017-02-13T13:05:09.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.5.0","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.5.0/manifests"},{"name":"1.4.0","sha":"70e3688b9a5d411aba59db5d3e6676af7e861068","kind":"commit","published_at":"2014-09-21T11:29:06.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.4.0","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.4.0/manifests"},{"name":"1.3.0","sha":"302c3426120ec24f1536a7aba66c7f6aecef8e0f","kind":"commit","published_at":"2014-09-10T11:05:23.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.3.0","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.3.0/manifests"},{"name":"1.2.2","sha":"23af5c89c23ed7c5da8cc1984662a9a1459a0bb0","kind":"commit","published_at":"2014-08-29T11:03:02.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.2.2","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.2.2/manifests"},{"name":"1.2.1","sha":"a5a1280db7f86651d9a5f3f474580a0945a3fb6f","kind":"commit","published_at":"2014-08-28T14:35:37.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.2.1","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.2.1/manifests"},{"name":"1.2.0","sha":"681f294367bfbb02ec5bf8be2f63021213e630f4","kind":"commit","published_at":"2014-06-23T14:25:46.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.2.0","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.2.0/manifests"},{"name":"1.1.1","sha":"cdde2940b0d841122a53759350d7a99ecade3b1f","kind":"commit","published_at":"2014-02-24T16:13:36.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.1.1","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.1.1/manifests"},{"name":"1.1.0","sha":"310a87e77450694a923190bb921d1f75e821a75a","kind":"commit","published_at":"2014-01-21T04:58:19.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.1.0","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.1.0/manifests"},{"name":"1.0.1","sha":"ad189671d86fb3f5799464f17f5b8b411ce384ea","kind":"tag","published_at":"2013-01-01T16:18:45.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.0.1","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.0.1/manifests"},{"name":"1.0.3","sha":"b18af37a401b453e447ca135ba28b5f34dc96576","kind":"tag","published_at":"2013-01-01T16:18:20.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.0.3","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.0.3/manifests"},{"name":"1.0.2","sha":"545b1e5df3d46bb370138c193f63505a9cc72fa1","kind":"tag","published_at":"2013-01-01T16:17:43.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.0.2","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.0.2/manifests"},{"name":"0.7.1","sha":"900032abee9272485e77f6b68e87c9ad6346f69b","kind":"commit","published_at":"2009-01-23T17:57:58.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/0.7.1","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/0.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@0.7.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/0.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/0.7.1/manifests"},{"name":"0.8.4","sha":"158a82ab543f319cd8ed4870e0735c353b747e3b","kind":"commit","published_at":"2009-01-06T11:39:04.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/0.8.4","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/0.8.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@0.8.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/0.8.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/0.8.4/manifests"}]},"repo_metadata_updated_at":"2026-04-13T19:31:05.335Z","dependent_packages_count":0,"downloads":147428615,"downloads_period":"total","dependent_repos_count":0,"rankings":{"downloads":0.17570701800861777,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":0.5752377451112901,"average":0.18773619077997697},"purl":"pkg:gem/ttfunk?repository_url=https://gem.coop","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/rubygems/ttfunk","docker_dependents_count":220,"docker_downloads_count":64333625,"usage_url":"https://repos.ecosyste.ms/usage/rubygems/ttfunk","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/rubygems/ttfunk/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-03-25T16:07:11.438Z","issues_count":36,"pull_requests_count":81,"avg_time_to_close_issue":38952900.64285714,"avg_time_to_close_pull_request":20426832.555555556,"issues_closed_count":28,"pull_requests_closed_count":72,"pull_request_authors_count":42,"issue_authors_count":32,"avg_comments_per_issue":5.361111111111111,"avg_comments_per_pull_request":3.5308641975308643,"merged_pull_requests_count":50,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":11,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":7019535.8,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":5,"past_year_pull_request_authors_count":8,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":3.0,"past_year_avg_comments_per_pull_request":2.1818181818181817,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":2,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/issues","maintainers":[{"login":"camertron","count":14,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/camertron"},{"login":"pointlessone","count":9,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pointlessone"},{"login":"mtyaka","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mtyaka"},{"login":"practicingruby","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/practicingruby"},{"login":"gettalong","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/gettalong"},{"login":"yob","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/yob"}],"active_maintainers":[{"login":"pointlessone","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pointlessone"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/ttfunk/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/ttfunk/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/ttfunk/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/ttfunk/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/ttfunk/codemeta","maintainers":[{"uuid":"157","login":"jhealy","name":null,"email":null,"url":null,"packages_count":65,"html_url":"https://gem.coop/profiles/jhealy","role":null,"created_at":"2025-10-09T23:56:58.236Z","updated_at":"2025-10-09T23:56:58.236Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/jhealy/packages"},{"uuid":"2873","login":"binarywaterfall","name":null,"email":null,"url":null,"packages_count":35,"html_url":"https://gem.coop/profiles/binarywaterfall","role":null,"created_at":"2025-10-09T23:56:58.103Z","updated_at":"2025-10-09T23:56:58.103Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/binarywaterfall/packages"},{"uuid":"1038","login":"packetmonkey","name":null,"email":null,"url":null,"packages_count":9,"html_url":"https://gem.coop/profiles/packetmonkey","role":null,"created_at":"2025-10-09T23:56:58.296Z","updated_at":"2025-10-09T23:56:58.296Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/packetmonkey/packages"},{"uuid":"2452","login":"bradediger","name":null,"email":null,"url":null,"packages_count":8,"html_url":"https://gem.coop/profiles/bradediger","role":null,"created_at":"2025-10-09T23:56:58.146Z","updated_at":"2025-10-09T23:56:58.146Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/bradediger/packages"},{"uuid":"2547","login":"pointlessone","name":null,"email":null,"url":null,"packages_count":10,"html_url":"https://gem.coop/profiles/pointlessone","role":null,"created_at":"2025-10-09T23:56:58.337Z","updated_at":"2025-10-09T23:56:58.337Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/pointlessone/packages"},{"uuid":"49577","login":"bluejade","name":null,"email":null,"url":null,"packages_count":8,"html_url":"https://gem.coop/profiles/bluejade","role":null,"created_at":"2025-10-09T23:56:58.059Z","updated_at":"2025-10-09T23:56:58.059Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/bluejade/packages"},{"uuid":"11707","login":"jonsgreen","name":null,"email":null,"url":null,"packages_count":3,"html_url":"https://gem.coop/profiles/jonsgreen","role":null,"created_at":"2025-10-09T23:56:58.192Z","updated_at":"2025-10-09T23:56:58.192Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/jonsgreen/packages"}],"registry":{"name":"gem.coop","url":"https://gem.coop","ecosystem":"rubygems","default":false,"packages_count":189955,"maintainers_count":67341,"namespaces_count":0,"keywords_count":0,"github":"gem-coop","metadata":{"funded_packages_count":6507},"icon_url":"https://github.com/gem-coop.png","created_at":"2025-10-06T17:24:20.932Z","updated_at":"2026-04-03T06:45:05.763Z","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":13606197,"name":"ruby-ttfunk","ecosystem":"debian","description":null,"homepage":"https://github.com/prawnpdf/ttfunk","licenses":"other","normalized_licenses":["Other"],"repository_url":"https://github.com/prawnpdf/ttfunk","keywords_array":["ruby"],"namespace":"main","versions_count":1,"first_release_published_at":"2026-02-11T11:28:54.727Z","latest_release_published_at":"2026-02-11T11:28:54.727Z","latest_release_number":"1.5.1-1","last_synced_at":"2026-03-14T04:04:43.164Z","created_at":"2026-02-11T11:28:54.524Z","updated_at":"2026-03-14T04:04:43.355Z","registry_url":"https://tracker.debian.org/pkg/ruby-ttfunk","install_command":"apt-get install ruby-ttfunk","documentation_url":"https://packages.debian.org/buster/ruby-ttfunk","metadata":{"component":"main","architecture":"all","priority":"source","binary":"ruby-ttfunk","standards_version":"4.2.1","maintainer":"Debian Ruby Extras Maintainers \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper (\u003e= 11~), gem2deb","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":447226,"uuid":"69899","full_name":"prawnpdf/ttfunk","owner":"prawnpdf","description":"Font Metrics Parser for Prawn","archived":false,"fork":false,"pushed_at":"2026-02-04T13:31:56.000Z","size":13536,"stargazers_count":132,"open_issues_count":14,"forks_count":86,"subscribers_count":34,"default_branch":"master","last_synced_at":"2026-02-10T04:39:55.354Z","etag":null,"topics":["afm","dfont","fonts","ruby","ttc","ttf"],"latest_commit_sha":null,"homepage":"http://prawnpdf.org","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"aschelch/cakephp-notification-plugin","license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/prawnpdf.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"COPYING","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":"2008-10-30T22:41:01.000Z","updated_at":"2026-02-06T11:53:05.000Z","dependencies_parsed_at":"2024-06-18T12:30:56.172Z","dependency_job_id":"c37327b5-9b9a-463b-957c-b8cec69ea3f1","html_url":"https://github.com/prawnpdf/ttfunk","commit_stats":{"total_commits":268,"total_committers":32,"mean_commits":8.375,"dds":0.7350746268656716,"last_synced_commit":"885061ed7fd0d1397ff40b3c67fb9d93dc30dcd0"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/prawnpdf/ttfunk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prawnpdf","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/sbom","scorecard":{"id":744180,"data":{"date":"2025-08-11","repo":{"name":"github.com/prawnpdf/ttfunk","commit":"885061ed7fd0d1397ff40b3c67fb9d93dc30dcd0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Code-Review","score":0,"reason":"Found 1/29 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"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":"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":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Info:   0 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"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":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 2 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-22T18:17:04.717Z","repository_id":447226,"created_at":"2025-08-22T18:17:04.717Z","updated_at":"2025-08-22T18:17:04.717Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29355822,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T01:03:07.613Z","status":"online","status_checked_at":"2026-02-12T02:00:06.911Z","response_time":55,"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"}},"repo_metadata_updated_at":"2026-03-05T15:00:19.711Z","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-ttfunk?arch=source\u0026distro=debian-10\u0026repository_url=https://packages.debian.org/buster","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/debian/ruby-ttfunk","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/debian/ruby-ttfunk","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/debian/ruby-ttfunk/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-02-28T11:01:12.186Z","issues_count":36,"pull_requests_count":79,"avg_time_to_close_issue":38127021.666666664,"avg_time_to_close_pull_request":19742730.714285713,"issues_closed_count":27,"pull_requests_closed_count":70,"pull_request_authors_count":40,"issue_authors_count":32,"avg_comments_per_issue":5.305555555555555,"avg_comments_per_pull_request":3.5569620253164556,"merged_pull_requests_count":49,"bot_issues_count":0,"bot_pull_requests_count":0,"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":1320613.75,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":4,"past_year_pull_request_authors_count":6,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":2.0,"past_year_avg_comments_per_pull_request":2.2222222222222223,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":1,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/issues","maintainers":[{"login":"camertron","count":14,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/camertron"},{"login":"pointlessone","count":9,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pointlessone"},{"login":"mtyaka","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mtyaka"},{"login":"practicingruby","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/practicingruby"},{"login":"gettalong","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/gettalong"},{"login":"yob","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/yob"}],"active_maintainers":[{"login":"pointlessone","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pointlessone"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/debian-10/packages/ruby-ttfunk/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-10/packages/ruby-ttfunk/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-10/packages/ruby-ttfunk/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-10/packages/ruby-ttfunk/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/debian-10/packages/ruby-ttfunk/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":80},"icon_url":"https://github.com/debian.png","created_at":"2026-02-04T11:01:50.156Z","updated_at":"2026-04-14T05:07:28.009Z","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":320320,"name":"ttfunk","ecosystem":"rubygems","description":"Font Metrics Parser for the Prawn PDF generator","homepage":"http://prawnpdf.org/","licenses":"Nonstandard,GPL-2.0-only,GPL-3.0-only","normalized_licenses":["GPL-2.0-only","GPL-3.0-only"],"repository_url":"https://github.com/prawnpdf/ttfunk","keywords_array":[],"namespace":null,"versions_count":18,"first_release_published_at":"2011-04-02T18:23:47.386Z","latest_release_published_at":"2024-03-05T10:08:07.612Z","latest_release_number":"1.8.0","last_synced_at":"2026-04-14T00:00:57.319Z","created_at":"2022-04-06T11:58:08.855Z","updated_at":"2026-04-14T00:02:38.046Z","registry_url":"https://rubygems.org/gems/ttfunk","install_command":"gem install ttfunk -s https://rubygems.org","documentation_url":"http://www.rubydoc.info/gems/ttfunk/","metadata":{"funding":null},"repo_metadata":{"id":447226,"uuid":"69899","full_name":"prawnpdf/ttfunk","owner":"prawnpdf","description":"Font Metrics Parser for Prawn","archived":false,"fork":false,"pushed_at":"2026-03-06T11:53:32.000Z","size":13539,"stargazers_count":132,"open_issues_count":13,"forks_count":90,"subscribers_count":33,"default_branch":"master","last_synced_at":"2026-04-06T05:02:44.271Z","etag":null,"topics":["afm","dfont","fonts","ruby","ttc","ttf"],"latest_commit_sha":null,"homepage":"http://prawnpdf.org","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"aschelch/cakephp-notification-plugin","license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/prawnpdf.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"COPYING","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":"2008-10-30T22:41:01.000Z","updated_at":"2026-03-06T11:53:36.000Z","dependencies_parsed_at":"2024-06-18T12:30:56.172Z","dependency_job_id":"477d3c93-7607-4ac9-b579-cfba0c1bab3b","html_url":"https://github.com/prawnpdf/ttfunk","commit_stats":{"total_commits":268,"total_committers":32,"mean_commits":8.375,"dds":0.7350746268656716,"last_synced_commit":"885061ed7fd0d1397ff40b3c67fb9d93dc30dcd0"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/prawnpdf/ttfunk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prawnpdf","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/sbom","scorecard":{"id":744180,"data":{"date":"2025-08-11","repo":{"name":"github.com/prawnpdf/ttfunk","commit":"885061ed7fd0d1397ff40b3c67fb9d93dc30dcd0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Code-Review","score":0,"reason":"Found 1/29 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"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":"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":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Info:   0 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"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":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 2 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-22T18:17:04.717Z","repository_id":447226,"created_at":"2025-08-22T18:17:04.717Z","updated_at":"2025-08-22T18:17:04.717Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31776013,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T20:17:16.280Z","status":"ssl_error","status_checked_at":"2026-04-13T20:17:08.216Z","response_time":93,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":"prawnpdf","name":"PrawnPDF","uuid":"1440292","kind":"organization","description":"","email":null,"website":"https://prawnpdf.org/","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/1440292?v=4","repositories_count":12,"last_synced_at":"2024-04-21T09:19:04.937Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/prawnpdf","funding_links":[],"total_stars":5176,"followers":5,"following":0,"created_at":"2022-11-02T16:21:44.666Z","updated_at":"2024-04-21T09:19:08.509Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prawnpdf","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prawnpdf/repositories"},"tags":[{"name":"1.8.0","sha":"885061ed7fd0d1397ff40b3c67fb9d93dc30dcd0","kind":"commit","published_at":"2024-03-05T10:37:13.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.8.0","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.8.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.8.0/manifests"},{"name":"1.7.0","sha":"9082af18eae98654123dd89cacb4d20f7dc0f6ee","kind":"commit","published_at":"2020-12-29T19:52:27.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.7.0","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.7.0/manifests"},{"name":"1.6.2.1","sha":"8ccf63eec5fe1994c60f402fc615684d764efb7e","kind":"commit","published_at":"2020-02-14T18:48:47.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.6.2.1","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.6.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.6.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.6.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.6.2.1/manifests"},{"name":"1.6.2","sha":"5763b9be5deff18d26949e6167d1687707a022a7","kind":"commit","published_at":"2020-02-14T09:20:38.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.6.2","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.6.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.6.2/manifests"},{"name":"1.6.1","sha":"3fcabcacbdeac847f9adfc6026094c11a72fa43e","kind":"commit","published_at":"2020-01-07T09:30:49.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.6.1","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.6.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.6.1/manifests"},{"name":"1.6.0","sha":"d309269c74adef38106ee582ba24454447deafdb","kind":"commit","published_at":"2020-01-04T11:59:39.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.6.0","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.6.0/manifests"},{"name":"1.5.1","sha":"ef3eacc1f468ce9be3136603ec662fb86facfedf","kind":"commit","published_at":"2017-04-11T12:02:39.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.5.1","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.5.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.5.1/manifests"},{"name":"1.5.0","sha":"4d4abb6f5c28a3db462322a87d3e31b712d0ce13","kind":"commit","published_at":"2017-02-13T13:05:09.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.5.0","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.5.0/manifests"},{"name":"1.4.0","sha":"70e3688b9a5d411aba59db5d3e6676af7e861068","kind":"commit","published_at":"2014-09-21T11:29:06.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.4.0","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.4.0/manifests"},{"name":"1.3.0","sha":"302c3426120ec24f1536a7aba66c7f6aecef8e0f","kind":"commit","published_at":"2014-09-10T11:05:23.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.3.0","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.3.0/manifests"},{"name":"1.2.2","sha":"23af5c89c23ed7c5da8cc1984662a9a1459a0bb0","kind":"commit","published_at":"2014-08-29T11:03:02.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.2.2","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.2.2/manifests"},{"name":"1.2.1","sha":"a5a1280db7f86651d9a5f3f474580a0945a3fb6f","kind":"commit","published_at":"2014-08-28T14:35:37.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.2.1","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.2.1/manifests"},{"name":"1.2.0","sha":"681f294367bfbb02ec5bf8be2f63021213e630f4","kind":"commit","published_at":"2014-06-23T14:25:46.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.2.0","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.2.0/manifests"},{"name":"1.1.1","sha":"cdde2940b0d841122a53759350d7a99ecade3b1f","kind":"commit","published_at":"2014-02-24T16:13:36.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.1.1","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.1.1/manifests"},{"name":"1.1.0","sha":"310a87e77450694a923190bb921d1f75e821a75a","kind":"commit","published_at":"2014-01-21T04:58:19.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.1.0","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.1.0/manifests"},{"name":"1.0.1","sha":"ad189671d86fb3f5799464f17f5b8b411ce384ea","kind":"tag","published_at":"2013-01-01T16:18:45.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.0.1","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.0.1/manifests"},{"name":"1.0.3","sha":"b18af37a401b453e447ca135ba28b5f34dc96576","kind":"tag","published_at":"2013-01-01T16:18:20.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.0.3","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.0.3/manifests"},{"name":"1.0.2","sha":"545b1e5df3d46bb370138c193f63505a9cc72fa1","kind":"tag","published_at":"2013-01-01T16:17:43.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/1.0.2","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/1.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@1.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/1.0.2/manifests"},{"name":"0.7.1","sha":"900032abee9272485e77f6b68e87c9ad6346f69b","kind":"commit","published_at":"2009-01-23T17:57:58.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/0.7.1","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/0.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@0.7.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/0.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/0.7.1/manifests"},{"name":"0.8.4","sha":"158a82ab543f319cd8ed4870e0735c353b747e3b","kind":"commit","published_at":"2009-01-06T11:39:04.000Z","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/0.8.4","html_url":"https://github.com/prawnpdf/ttfunk/releases/tag/0.8.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/prawnpdf/ttfunk@0.8.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/0.8.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags/0.8.4/manifests"}]},"repo_metadata_updated_at":"2026-04-14T00:02:38.046Z","dependent_packages_count":25,"downloads":147454255,"downloads_period":"total","dependent_repos_count":6863,"rankings":{"downloads":0.19234843500853024,"dependent_repos_count":0.38859959188679877,"dependent_packages_count":0.8914931813873619,"stargazers_count":5.017227729396416,"forks_count":2.772047590905543,"docker_downloads_count":0.7147556338577848,"average":1.6627453604070725},"purl":"pkg:gem/ttfunk","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/rubygems/ttfunk","docker_dependents_count":220,"docker_downloads_count":64333625,"usage_url":"https://repos.ecosyste.ms/usage/rubygems/ttfunk","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/rubygems/ttfunk/dependencies","status":null,"funding_links":[],"critical":true,"issue_metadata":{"last_synced_at":"2026-04-08T06:00:24.765Z","issues_count":36,"pull_requests_count":81,"avg_time_to_close_issue":38952900.64285714,"avg_time_to_close_pull_request":20426832.555555556,"issues_closed_count":28,"pull_requests_closed_count":72,"pull_request_authors_count":42,"issue_authors_count":32,"avg_comments_per_issue":5.388888888888889,"avg_comments_per_pull_request":3.5308641975308643,"merged_pull_requests_count":50,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":7,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":1320613.75,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":4,"past_year_pull_request_authors_count":6,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":4.0,"past_year_avg_comments_per_pull_request":1.8571428571428572,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":1,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/issues","maintainers":[{"login":"camertron","count":14,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/camertron"},{"login":"pointlessone","count":9,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pointlessone"},{"login":"mtyaka","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mtyaka"},{"login":"practicingruby","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/practicingruby"},{"login":"gettalong","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/gettalong"},{"login":"yob","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/yob"}],"active_maintainers":[{"login":"pointlessone","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pointlessone"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/ttfunk/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/ttfunk/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/ttfunk/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/ttfunk/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/ttfunk/codemeta","maintainers":[{"uuid":"157","login":"jhealy","name":null,"email":null,"url":null,"packages_count":65,"html_url":"https://rubygems.org/profiles/jhealy","role":null,"created_at":"2022-11-09T09:54:54.422Z","updated_at":"2022-11-09T09:54:54.422Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/jhealy/packages"},{"uuid":"2873","login":"binarywaterfall","name":null,"email":null,"url":null,"packages_count":35,"html_url":"https://rubygems.org/profiles/binarywaterfall","role":null,"created_at":"2022-11-09T09:54:54.334Z","updated_at":"2022-11-09T09:54:54.334Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/binarywaterfall/packages"},{"uuid":"1038","login":"packetmonkey","name":null,"email":null,"url":null,"packages_count":9,"html_url":"https://rubygems.org/profiles/packetmonkey","role":null,"created_at":"2022-11-09T09:54:54.437Z","updated_at":"2022-11-09T09:54:54.437Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/packetmonkey/packages"},{"uuid":"2452","login":"bradediger","name":null,"email":null,"url":null,"packages_count":8,"html_url":"https://rubygems.org/profiles/bradediger","role":null,"created_at":"2022-11-09T09:54:54.357Z","updated_at":"2022-11-09T09:54:54.357Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/bradediger/packages"},{"uuid":"49577","login":"bluejade","name":null,"email":null,"url":null,"packages_count":8,"html_url":"https://rubygems.org/profiles/bluejade","role":null,"created_at":"2022-11-09T09:54:54.259Z","updated_at":"2022-11-09T09:54:54.259Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/bluejade/packages"},{"uuid":"2547","login":"pointlessone","name":null,"email":null,"url":null,"packages_count":10,"html_url":"https://rubygems.org/profiles/pointlessone","role":null,"created_at":"2022-11-09T09:54:54.458Z","updated_at":"2022-11-09T09:54:54.458Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/pointlessone/packages"},{"uuid":"11707","login":"jonsgreen","name":null,"email":null,"url":null,"packages_count":3,"html_url":"https://rubygems.org/profiles/jonsgreen","role":null,"created_at":"2022-11-09T09:54:54.397Z","updated_at":"2022-11-09T09:54:54.397Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/jonsgreen/packages"}],"registry":{"name":"rubygems.org","url":"https://rubygems.org","ecosystem":"rubygems","default":true,"packages_count":205104,"maintainers_count":68332,"namespaces_count":0,"keywords_count":0,"github":"rubygems","metadata":{"funded_packages_count":7260},"icon_url":"https://github.com/rubygems.png","created_at":"2022-04-04T15:19:23.446Z","updated_at":"2026-04-03T06:42:17.024Z","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":13805474,"name":"ruby-ttfunk","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/prawnpdf/ttfunk","licenses":"other","normalized_licenses":["Other"],"repository_url":"https://github.com/prawnpdf/ttfunk","keywords_array":["universe/ruby"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-13T18:34:35.931Z","latest_release_published_at":"2026-02-13T18:34:35.931Z","latest_release_number":"1.7.0-1","last_synced_at":"2026-03-14T09:17:01.192Z","created_at":"2026-02-13T18:34:35.668Z","updated_at":"2026-03-14T09:17:01.519Z","registry_url":"https://launchpad.net/ubuntu/+source/ruby-ttfunk","install_command":"apt-get install ruby-ttfunk","documentation_url":null,"metadata":{"component":"universe","architecture":"all","priority":"optional","binary":"ruby-ttfunk","standards_version":"4.6.0","maintainer":"Debian Ruby Team \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper-compat (= 13), gem2deb (\u003e= 1), rake, ruby-rspec","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":447226,"uuid":"69899","full_name":"prawnpdf/ttfunk","owner":"prawnpdf","description":"Font Metrics Parser for Prawn","archived":false,"fork":false,"pushed_at":"2026-02-04T13:31:56.000Z","size":13536,"stargazers_count":132,"open_issues_count":14,"forks_count":86,"subscribers_count":34,"default_branch":"master","last_synced_at":"2026-02-10T04:39:55.354Z","etag":null,"topics":["afm","dfont","fonts","ruby","ttc","ttf"],"latest_commit_sha":null,"homepage":"http://prawnpdf.org","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"aschelch/cakephp-notification-plugin","license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/prawnpdf.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"COPYING","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":"2008-10-30T22:41:01.000Z","updated_at":"2026-02-06T11:53:05.000Z","dependencies_parsed_at":"2024-06-18T12:30:56.172Z","dependency_job_id":"c37327b5-9b9a-463b-957c-b8cec69ea3f1","html_url":"https://github.com/prawnpdf/ttfunk","commit_stats":{"total_commits":268,"total_committers":32,"mean_commits":8.375,"dds":0.7350746268656716,"last_synced_commit":"885061ed7fd0d1397ff40b3c67fb9d93dc30dcd0"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/prawnpdf/ttfunk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prawnpdf","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/sbom","scorecard":{"id":744180,"data":{"date":"2025-08-11","repo":{"name":"github.com/prawnpdf/ttfunk","commit":"885061ed7fd0d1397ff40b3c67fb9d93dc30dcd0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Code-Review","score":0,"reason":"Found 1/29 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"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":"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":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Info:   0 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"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":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 2 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-22T18:17:04.717Z","repository_id":447226,"created_at":"2025-08-22T18:17:04.717Z","updated_at":"2025-08-22T18:17:04.717Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29355822,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T01:03:07.613Z","status":"online","status_checked_at":"2026-02-12T02:00:06.911Z","response_time":55,"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"}},"repo_metadata_updated_at":"2026-03-05T15:00:19.711Z","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-ttfunk?arch=source\u0026distro=ubuntu-23.10\u0026repository_url=https://launchpad.net/ubuntu/mantic","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/ruby-ttfunk","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/ruby-ttfunk","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/ruby-ttfunk/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-02-28T11:01:12.186Z","issues_count":36,"pull_requests_count":79,"avg_time_to_close_issue":38127021.666666664,"avg_time_to_close_pull_request":19742730.714285713,"issues_closed_count":27,"pull_requests_closed_count":70,"pull_request_authors_count":40,"issue_authors_count":32,"avg_comments_per_issue":5.305555555555555,"avg_comments_per_pull_request":3.5569620253164556,"merged_pull_requests_count":49,"bot_issues_count":0,"bot_pull_requests_count":0,"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":1320613.75,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":4,"past_year_pull_request_authors_count":6,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":2.0,"past_year_avg_comments_per_pull_request":2.2222222222222223,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":1,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/issues","maintainers":[{"login":"camertron","count":14,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/camertron"},{"login":"pointlessone","count":9,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pointlessone"},{"login":"mtyaka","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mtyaka"},{"login":"practicingruby","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/practicingruby"},{"login":"gettalong","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/gettalong"},{"login":"yob","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/yob"}],"active_maintainers":[{"login":"pointlessone","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pointlessone"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/ruby-ttfunk/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/ruby-ttfunk/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/ruby-ttfunk/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/ruby-ttfunk/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/ruby-ttfunk/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":0,"github":"ubuntu","metadata":{"codename":"mantic","mirror":"http://old-releases.ubuntu.com/ubuntu","funded_packages_count":412},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:48.636Z","updated_at":"2026-04-01T06:53:18.736Z","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":13567312,"name":"ruby-ttfunk","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/prawnpdf/ttfunk","licenses":"other","normalized_licenses":["Other"],"repository_url":"https://github.com/prawnpdf/ttfunk","keywords_array":["universe/ruby"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-11T06:51:33.380Z","latest_release_published_at":"2026-02-11T06:51:33.380Z","latest_release_number":"1.7.0-1","last_synced_at":"2026-03-12T03:12:47.075Z","created_at":"2026-02-11T06:51:33.215Z","updated_at":"2026-03-12T03:12:47.296Z","registry_url":"https://launchpad.net/ubuntu/+source/ruby-ttfunk","install_command":"apt-get install ruby-ttfunk","documentation_url":null,"metadata":{"component":"universe","architecture":"all","priority":"optional","binary":"ruby-ttfunk","standards_version":"4.6.0","maintainer":"Debian Ruby Team \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper-compat (= 13), gem2deb (\u003e= 1), rake, ruby-rspec","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":447226,"uuid":"69899","full_name":"prawnpdf/ttfunk","owner":"prawnpdf","description":"Font Metrics Parser for Prawn","archived":false,"fork":false,"pushed_at":"2026-02-04T13:31:56.000Z","size":13536,"stargazers_count":132,"open_issues_count":14,"forks_count":86,"subscribers_count":34,"default_branch":"master","last_synced_at":"2026-02-10T04:39:55.354Z","etag":null,"topics":["afm","dfont","fonts","ruby","ttc","ttf"],"latest_commit_sha":null,"homepage":"http://prawnpdf.org","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"aschelch/cakephp-notification-plugin","license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/prawnpdf.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"COPYING","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":"2008-10-30T22:41:01.000Z","updated_at":"2026-02-06T11:53:05.000Z","dependencies_parsed_at":"2024-06-18T12:30:56.172Z","dependency_job_id":"c37327b5-9b9a-463b-957c-b8cec69ea3f1","html_url":"https://github.com/prawnpdf/ttfunk","commit_stats":{"total_commits":268,"total_committers":32,"mean_commits":8.375,"dds":0.7350746268656716,"last_synced_commit":"885061ed7fd0d1397ff40b3c67fb9d93dc30dcd0"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/prawnpdf/ttfunk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prawnpdf","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/sbom","scorecard":{"id":744180,"data":{"date":"2025-08-11","repo":{"name":"github.com/prawnpdf/ttfunk","commit":"885061ed7fd0d1397ff40b3c67fb9d93dc30dcd0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Code-Review","score":0,"reason":"Found 1/29 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"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":"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":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Info:   0 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"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":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 2 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-22T18:17:04.717Z","repository_id":447226,"created_at":"2025-08-22T18:17:04.717Z","updated_at":"2025-08-22T18:17:04.717Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29355822,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T01:03:07.613Z","status":"online","status_checked_at":"2026-02-12T02:00:06.911Z","response_time":55,"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"}},"repo_metadata_updated_at":"2026-03-05T15:00:19.629Z","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-ttfunk?arch=source\u0026distro=ubuntu-23.04\u0026repository_url=https://launchpad.net/ubuntu/lunar","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/ruby-ttfunk","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/ruby-ttfunk","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/ruby-ttfunk/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-02-28T11:01:12.186Z","issues_count":36,"pull_requests_count":79,"avg_time_to_close_issue":38127021.666666664,"avg_time_to_close_pull_request":19742730.714285713,"issues_closed_count":27,"pull_requests_closed_count":70,"pull_request_authors_count":40,"issue_authors_count":32,"avg_comments_per_issue":5.305555555555555,"avg_comments_per_pull_request":3.5569620253164556,"merged_pull_requests_count":49,"bot_issues_count":0,"bot_pull_requests_count":0,"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":1320613.75,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":4,"past_year_pull_request_authors_count":6,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":2.0,"past_year_avg_comments_per_pull_request":2.2222222222222223,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":1,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/issues","maintainers":[{"login":"camertron","count":14,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/camertron"},{"login":"pointlessone","count":9,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pointlessone"},{"login":"mtyaka","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mtyaka"},{"login":"practicingruby","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/practicingruby"},{"login":"gettalong","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/gettalong"},{"login":"yob","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/yob"}],"active_maintainers":[{"login":"pointlessone","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pointlessone"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/ruby-ttfunk/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/ruby-ttfunk/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/ruby-ttfunk/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/ruby-ttfunk/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/ruby-ttfunk/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":0,"github":"ubuntu","metadata":{"codename":"lunar","mirror":"http://old-releases.ubuntu.com/ubuntu","funded_packages_count":99},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:49.117Z","updated_at":"2026-04-01T06:53:19.375Z","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":13950415,"name":"ruby-ttfunk","ecosystem":"guix","description":"Font metrics parser for the Prawn PDF generator","homepage":"https://github.com/prawnpdf/ttfunk","licenses":"%prawn-project-licenses","normalized_licenses":["Other"],"repository_url":"https://github.com/prawnpdf/ttfunk","keywords_array":[],"namespace":null,"versions_count":1,"first_release_published_at":"2026-03-02T18:56:24.030Z","latest_release_published_at":"2026-03-02T18:56:24.030Z","latest_release_number":"1.7.0","last_synced_at":"2026-04-06T19:01:28.601Z","created_at":"2026-03-02T18:56:23.826Z","updated_at":"2026-04-06T19:01:28.602Z","registry_url":"https://packages.guix.gnu.org/packages/ruby-ttfunk/1.7.0/","install_command":"guix install ruby-ttfunk","documentation_url":"https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/ruby-xyz.scm#n11791","metadata":{"location":"gnu/packages/ruby-xyz.scm:11791","variable_name":"ruby-ttfunk"},"repo_metadata":{"id":447226,"uuid":"69899","full_name":"prawnpdf/ttfunk","owner":"prawnpdf","description":"Font Metrics Parser for Prawn","archived":false,"fork":false,"pushed_at":"2026-02-04T13:31:56.000Z","size":13536,"stargazers_count":132,"open_issues_count":14,"forks_count":86,"subscribers_count":34,"default_branch":"master","last_synced_at":"2026-02-10T04:39:55.354Z","etag":null,"topics":["afm","dfont","fonts","ruby","ttc","ttf"],"latest_commit_sha":null,"homepage":"http://prawnpdf.org","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"aschelch/cakephp-notification-plugin","license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/prawnpdf.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"COPYING","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":"2008-10-30T22:41:01.000Z","updated_at":"2026-02-06T11:53:05.000Z","dependencies_parsed_at":"2024-06-18T12:30:56.172Z","dependency_job_id":"c37327b5-9b9a-463b-957c-b8cec69ea3f1","html_url":"https://github.com/prawnpdf/ttfunk","commit_stats":{"total_commits":268,"total_committers":32,"mean_commits":8.375,"dds":0.7350746268656716,"last_synced_commit":"885061ed7fd0d1397ff40b3c67fb9d93dc30dcd0"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/prawnpdf/ttfunk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prawnpdf","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/sbom","scorecard":{"id":744180,"data":{"date":"2025-08-11","repo":{"name":"github.com/prawnpdf/ttfunk","commit":"885061ed7fd0d1397ff40b3c67fb9d93dc30dcd0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Code-Review","score":0,"reason":"Found 1/29 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"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":"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":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Info:   0 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"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":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 2 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-22T18:17:04.717Z","repository_id":447226,"created_at":"2025-08-22T18:17:04.717Z","updated_at":"2025-08-22T18:17:04.717Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29355822,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T01:03:07.613Z","status":"online","status_checked_at":"2026-02-12T02:00:06.911Z","response_time":55,"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"}},"repo_metadata_updated_at":"2026-03-05T15:00:19.728Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:guix/ruby-ttfunk","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/guix/ruby-ttfunk","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/guix/ruby-ttfunk","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/guix/ruby-ttfunk/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-02-28T11:01:12.186Z","issues_count":36,"pull_requests_count":79,"avg_time_to_close_issue":38127021.666666664,"avg_time_to_close_pull_request":19742730.714285713,"issues_closed_count":27,"pull_requests_closed_count":70,"pull_request_authors_count":40,"issue_authors_count":32,"avg_comments_per_issue":5.305555555555555,"avg_comments_per_pull_request":3.5569620253164556,"merged_pull_requests_count":49,"bot_issues_count":0,"bot_pull_requests_count":0,"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":1320613.75,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":4,"past_year_pull_request_authors_count":6,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":2.0,"past_year_avg_comments_per_pull_request":2.2222222222222223,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":1,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/issues","maintainers":[{"login":"camertron","count":14,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/camertron"},{"login":"pointlessone","count":9,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pointlessone"},{"login":"mtyaka","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mtyaka"},{"login":"practicingruby","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/practicingruby"},{"login":"gettalong","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/gettalong"},{"login":"yob","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/yob"}],"active_maintainers":[{"login":"pointlessone","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pointlessone"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/ruby-ttfunk/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/ruby-ttfunk/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/ruby-ttfunk/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/ruby-ttfunk/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/ruby-ttfunk/codemeta","maintainers":[],"registry":{"name":"guix","url":"https://guix.gnu.org","ecosystem":"guix","default":true,"packages_count":31062,"maintainers_count":0,"namespaces_count":0,"keywords_count":0,"github":"guix-mirror","metadata":{"funded_packages_count":286},"icon_url":"https://github.com/guix-mirror.png","created_at":"2026-03-02T16:23:46.981Z","updated_at":"2026-04-03T06:23:21.396Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/guix/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/guix/namespaces"}},{"id":13531120,"name":"ruby-ttfunk","ecosystem":"debian","description":null,"homepage":"https://github.com/prawnpdf/ttfunk","licenses":"other","normalized_licenses":["Other"],"repository_url":"https://github.com/prawnpdf/ttfunk","keywords_array":["ruby"],"namespace":"main","versions_count":1,"first_release_published_at":"2026-02-10T23:40:31.635Z","latest_release_published_at":"2026-02-10T23:40:31.635Z","latest_release_number":"1.6.2.1-1","last_synced_at":"2026-03-14T10:12:34.107Z","created_at":"2026-02-10T23:40:31.421Z","updated_at":"2026-03-14T10:12:36.435Z","registry_url":"https://tracker.debian.org/pkg/ruby-ttfunk","install_command":"apt-get install ruby-ttfunk","documentation_url":"https://packages.debian.org/bullseye/ruby-ttfunk","metadata":{"component":"main","architecture":"all","priority":"source","binary":"ruby-ttfunk","standards_version":"4.5.0","maintainer":"Debian Ruby Team \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper-compat (= 13), gem2deb (\u003e= 1), ruby-rspec","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":447226,"uuid":"69899","full_name":"prawnpdf/ttfunk","owner":"prawnpdf","description":"Font Metrics Parser for Prawn","archived":false,"fork":false,"pushed_at":"2026-02-04T13:31:56.000Z","size":13536,"stargazers_count":132,"open_issues_count":14,"forks_count":86,"subscribers_count":34,"default_branch":"master","last_synced_at":"2026-02-10T04:39:55.354Z","etag":null,"topics":["afm","dfont","fonts","ruby","ttc","ttf"],"latest_commit_sha":null,"homepage":"http://prawnpdf.org","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"aschelch/cakephp-notification-plugin","license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/prawnpdf.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"COPYING","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":"2008-10-30T22:41:01.000Z","updated_at":"2026-02-06T11:53:05.000Z","dependencies_parsed_at":"2024-06-18T12:30:56.172Z","dependency_job_id":"c37327b5-9b9a-463b-957c-b8cec69ea3f1","html_url":"https://github.com/prawnpdf/ttfunk","commit_stats":{"total_commits":268,"total_committers":32,"mean_commits":8.375,"dds":0.7350746268656716,"last_synced_commit":"885061ed7fd0d1397ff40b3c67fb9d93dc30dcd0"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/prawnpdf/ttfunk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prawnpdf","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/sbom","scorecard":{"id":744180,"data":{"date":"2025-08-11","repo":{"name":"github.com/prawnpdf/ttfunk","commit":"885061ed7fd0d1397ff40b3c67fb9d93dc30dcd0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Code-Review","score":0,"reason":"Found 1/29 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"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":"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":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Info:   0 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"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":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 2 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-22T18:17:04.717Z","repository_id":447226,"created_at":"2025-08-22T18:17:04.717Z","updated_at":"2025-08-22T18:17:04.717Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29355822,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T01:03:07.613Z","status":"online","status_checked_at":"2026-02-12T02:00:06.911Z","response_time":55,"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"}},"repo_metadata_updated_at":"2026-03-05T15:00:19.042Z","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-ttfunk?arch=source\u0026distro=debian-11\u0026repository_url=https://packages.debian.org/bullseye","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/debian/ruby-ttfunk","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/debian/ruby-ttfunk","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/debian/ruby-ttfunk/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-02-28T11:01:12.186Z","issues_count":36,"pull_requests_count":79,"avg_time_to_close_issue":38127021.666666664,"avg_time_to_close_pull_request":19742730.714285713,"issues_closed_count":27,"pull_requests_closed_count":70,"pull_request_authors_count":40,"issue_authors_count":32,"avg_comments_per_issue":5.305555555555555,"avg_comments_per_pull_request":3.5569620253164556,"merged_pull_requests_count":49,"bot_issues_count":0,"bot_pull_requests_count":0,"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":1320613.75,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":4,"past_year_pull_request_authors_count":6,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":2.0,"past_year_avg_comments_per_pull_request":2.2222222222222223,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":1,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/issues","maintainers":[{"login":"camertron","count":14,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/camertron"},{"login":"pointlessone","count":9,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pointlessone"},{"login":"mtyaka","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mtyaka"},{"login":"practicingruby","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/practicingruby"},{"login":"gettalong","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/gettalong"},{"login":"yob","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/yob"}],"active_maintainers":[{"login":"pointlessone","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pointlessone"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages/ruby-ttfunk/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages/ruby-ttfunk/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages/ruby-ttfunk/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages/ruby-ttfunk/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages/ruby-ttfunk/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":0,"github":"debian","metadata":{"codename":"bullseye","funded_packages_count":77},"icon_url":"https://github.com/debian.png","created_at":"2026-02-04T11:01:49.702Z","updated_at":"2026-04-01T06:53:20.333Z","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":13467417,"name":"ruby-ttfunk","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/prawnpdf/ttfunk","licenses":"other","normalized_licenses":["Other"],"repository_url":"https://github.com/prawnpdf/ttfunk","keywords_array":["universe/ruby"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-09T17:27:47.298Z","latest_release_published_at":"2026-02-09T17:27:47.298Z","latest_release_number":"1.7.0-1","last_synced_at":"2026-03-09T18:25:18.880Z","created_at":"2026-02-09T17:27:45.011Z","updated_at":"2026-03-09T18:32:53.798Z","registry_url":"https://launchpad.net/ubuntu/+source/ruby-ttfunk","install_command":"apt-get install ruby-ttfunk","documentation_url":null,"metadata":{"component":"universe","architecture":"all","priority":"optional","binary":"ruby-ttfunk","standards_version":"4.6.0","maintainer":"Debian Ruby Team \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper-compat (= 13), gem2deb (\u003e= 1), rake, ruby-rspec","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":447226,"uuid":"69899","full_name":"prawnpdf/ttfunk","owner":"prawnpdf","description":"Font Metrics Parser for Prawn","archived":false,"fork":false,"pushed_at":"2026-02-04T13:31:56.000Z","size":13536,"stargazers_count":132,"open_issues_count":14,"forks_count":86,"subscribers_count":34,"default_branch":"master","last_synced_at":"2026-02-10T04:39:55.354Z","etag":null,"topics":["afm","dfont","fonts","ruby","ttc","ttf"],"latest_commit_sha":null,"homepage":"http://prawnpdf.org","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"aschelch/cakephp-notification-plugin","license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/prawnpdf.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"COPYING","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":"2008-10-30T22:41:01.000Z","updated_at":"2026-02-06T11:53:05.000Z","dependencies_parsed_at":"2024-06-18T12:30:56.172Z","dependency_job_id":"c37327b5-9b9a-463b-957c-b8cec69ea3f1","html_url":"https://github.com/prawnpdf/ttfunk","commit_stats":{"total_commits":268,"total_committers":32,"mean_commits":8.375,"dds":0.7350746268656716,"last_synced_commit":"885061ed7fd0d1397ff40b3c67fb9d93dc30dcd0"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/prawnpdf/ttfunk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prawnpdf","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/sbom","scorecard":{"id":744180,"data":{"date":"2025-08-11","repo":{"name":"github.com/prawnpdf/ttfunk","commit":"885061ed7fd0d1397ff40b3c67fb9d93dc30dcd0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Code-Review","score":0,"reason":"Found 1/29 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"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":"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":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Info:   0 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"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":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 2 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-22T18:17:04.717Z","repository_id":447226,"created_at":"2025-08-22T18:17:04.717Z","updated_at":"2025-08-22T18:17:04.717Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29355822,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T01:03:07.613Z","status":"online","status_checked_at":"2026-02-12T02:00:06.911Z","response_time":55,"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"}},"repo_metadata_updated_at":"2026-03-05T15:00:19.645Z","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":1.3502614668158286,"forks_count":0.8247261752998413,"docker_downloads_count":null,"average":0.5437469105289174},"purl":"pkg:deb/ubuntu/ruby-ttfunk?arch=source\u0026distro=ubuntu-24.10\u0026repository_url=https://launchpad.net/ubuntu/oracular","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/ruby-ttfunk","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/ruby-ttfunk","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/ruby-ttfunk/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-02-28T11:01:12.186Z","issues_count":36,"pull_requests_count":79,"avg_time_to_close_issue":38127021.666666664,"avg_time_to_close_pull_request":19742730.714285713,"issues_closed_count":27,"pull_requests_closed_count":70,"pull_request_authors_count":40,"issue_authors_count":32,"avg_comments_per_issue":5.305555555555555,"avg_comments_per_pull_request":3.5569620253164556,"merged_pull_requests_count":49,"bot_issues_count":0,"bot_pull_requests_count":0,"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":1320613.75,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":4,"past_year_pull_request_authors_count":6,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":2.0,"past_year_avg_comments_per_pull_request":2.2222222222222223,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":1,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/issues","maintainers":[{"login":"camertron","count":14,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/camertron"},{"login":"pointlessone","count":9,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pointlessone"},{"login":"mtyaka","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mtyaka"},{"login":"practicingruby","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/practicingruby"},{"login":"gettalong","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/gettalong"},{"login":"yob","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/yob"}],"active_maintainers":[{"login":"pointlessone","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pointlessone"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/ruby-ttfunk/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/ruby-ttfunk/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/ruby-ttfunk/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/ruby-ttfunk/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/ruby-ttfunk/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":0,"github":"ubuntu","metadata":{"codename":"oracular","mirror":"http://old-releases.ubuntu.com/ubuntu","funded_packages_count":177},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:48.028Z","updated_at":"2026-03-31T06:41:18.525Z","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":13713500,"name":"ruby-ttfunk","ecosystem":"debian","description":null,"homepage":"https://github.com/prawnpdf/ttfunk","licenses":"other","normalized_licenses":["Other"],"repository_url":"https://github.com/prawnpdf/ttfunk","keywords_array":["ruby"],"namespace":"main","versions_count":1,"first_release_published_at":"2026-02-12T23:43:08.260Z","latest_release_published_at":"2026-02-12T23:43:08.260Z","latest_release_number":"1.7.0-1","last_synced_at":"2026-03-13T05:25:13.273Z","created_at":"2026-02-12T23:43:08.015Z","updated_at":"2026-03-13T05:25:13.650Z","registry_url":"https://tracker.debian.org/pkg/ruby-ttfunk","install_command":"apt-get install ruby-ttfunk","documentation_url":"https://packages.debian.org/bookworm/ruby-ttfunk","metadata":{"component":"main","architecture":"all","priority":"source","binary":"ruby-ttfunk","standards_version":"4.6.0","maintainer":"Debian Ruby Team \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper-compat (= 13), gem2deb (\u003e= 1), rake, ruby-rspec","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":447226,"uuid":"69899","full_name":"prawnpdf/ttfunk","owner":"prawnpdf","description":"Font Metrics Parser for Prawn","archived":false,"fork":false,"pushed_at":"2026-02-04T13:31:56.000Z","size":13536,"stargazers_count":132,"open_issues_count":14,"forks_count":86,"subscribers_count":34,"default_branch":"master","last_synced_at":"2026-02-10T04:39:55.354Z","etag":null,"topics":["afm","dfont","fonts","ruby","ttc","ttf"],"latest_commit_sha":null,"homepage":"http://prawnpdf.org","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"aschelch/cakephp-notification-plugin","license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/prawnpdf.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"COPYING","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":"2008-10-30T22:41:01.000Z","updated_at":"2026-02-06T11:53:05.000Z","dependencies_parsed_at":"2024-06-18T12:30:56.172Z","dependency_job_id":"c37327b5-9b9a-463b-957c-b8cec69ea3f1","html_url":"https://github.com/prawnpdf/ttfunk","commit_stats":{"total_commits":268,"total_committers":32,"mean_commits":8.375,"dds":0.7350746268656716,"last_synced_commit":"885061ed7fd0d1397ff40b3c67fb9d93dc30dcd0"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/prawnpdf/ttfunk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prawnpdf","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/sbom","scorecard":{"id":744180,"data":{"date":"2025-08-11","repo":{"name":"github.com/prawnpdf/ttfunk","commit":"885061ed7fd0d1397ff40b3c67fb9d93dc30dcd0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Code-Review","score":0,"reason":"Found 1/29 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"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":"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":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Info:   0 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"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":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 2 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-22T18:17:04.717Z","repository_id":447226,"created_at":"2025-08-22T18:17:04.717Z","updated_at":"2025-08-22T18:17:04.717Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29355822,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T01:03:07.613Z","status":"online","status_checked_at":"2026-02-12T02:00:06.911Z","response_time":55,"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"}},"repo_metadata_updated_at":"2026-03-05T15:00:20.095Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:deb/debian/ruby-ttfunk?arch=source\u0026distro=debian-12","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/debian/ruby-ttfunk","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/debian/ruby-ttfunk","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/debian/ruby-ttfunk/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-02-28T11:01:12.186Z","issues_count":36,"pull_requests_count":79,"avg_time_to_close_issue":38127021.666666664,"avg_time_to_close_pull_request":19742730.714285713,"issues_closed_count":27,"pull_requests_closed_count":70,"pull_request_authors_count":40,"issue_authors_count":32,"avg_comments_per_issue":5.305555555555555,"avg_comments_per_pull_request":3.5569620253164556,"merged_pull_requests_count":49,"bot_issues_count":0,"bot_pull_requests_count":0,"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":1320613.75,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":4,"past_year_pull_request_authors_count":6,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":2.0,"past_year_avg_comments_per_pull_request":2.2222222222222223,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":1,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/issues","maintainers":[{"login":"camertron","count":14,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/camertron"},{"login":"pointlessone","count":9,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pointlessone"},{"login":"mtyaka","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mtyaka"},{"login":"practicingruby","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/practicingruby"},{"login":"gettalong","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/gettalong"},{"login":"yob","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/yob"}],"active_maintainers":[{"login":"pointlessone","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pointlessone"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/ruby-ttfunk/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/ruby-ttfunk/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/ruby-ttfunk/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/ruby-ttfunk/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/ruby-ttfunk/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":0,"github":"debian","metadata":{"codename":"bookworm","funded_packages_count":364},"icon_url":"https://github.com/debian.png","created_at":"2026-02-04T11:01:49.459Z","updated_at":"2026-04-01T06:53:23.701Z","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":13407433,"name":"ruby-ttfunk","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/prawnpdf/ttfunk","licenses":"other","normalized_licenses":["Other"],"repository_url":"https://github.com/prawnpdf/ttfunk","keywords_array":["universe/ruby"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-06T16:08:47.775Z","latest_release_published_at":"2026-02-06T16:08:47.775Z","latest_release_number":"1.7.0-1","last_synced_at":"2026-03-06T16:46:22.341Z","created_at":"2026-02-06T16:08:47.422Z","updated_at":"2026-03-06T16:46:22.675Z","registry_url":"https://launchpad.net/ubuntu/+source/ruby-ttfunk","install_command":"apt-get install ruby-ttfunk","documentation_url":null,"metadata":{"component":"universe","architecture":"all","priority":"optional","binary":"ruby-ttfunk","standards_version":"4.6.0","maintainer":"Debian Ruby Team \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper-compat (= 13), gem2deb (\u003e= 1), rake, ruby-rspec","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":447226,"uuid":"69899","full_name":"prawnpdf/ttfunk","owner":"prawnpdf","description":"Font Metrics Parser for Prawn","archived":false,"fork":false,"pushed_at":"2026-02-04T13:31:56.000Z","size":13536,"stargazers_count":132,"open_issues_count":14,"forks_count":86,"subscribers_count":34,"default_branch":"master","last_synced_at":"2026-02-10T04:39:55.354Z","etag":null,"topics":["afm","dfont","fonts","ruby","ttc","ttf"],"latest_commit_sha":null,"homepage":"http://prawnpdf.org","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"aschelch/cakephp-notification-plugin","license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/prawnpdf.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"COPYING","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":"2008-10-30T22:41:01.000Z","updated_at":"2026-02-06T11:53:05.000Z","dependencies_parsed_at":"2024-06-18T12:30:56.172Z","dependency_job_id":"c37327b5-9b9a-463b-957c-b8cec69ea3f1","html_url":"https://github.com/prawnpdf/ttfunk","commit_stats":{"total_commits":268,"total_committers":32,"mean_commits":8.375,"dds":0.7350746268656716,"last_synced_commit":"885061ed7fd0d1397ff40b3c67fb9d93dc30dcd0"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/prawnpdf/ttfunk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prawnpdf","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/sbom","scorecard":{"id":744180,"data":{"date":"2025-08-11","repo":{"name":"github.com/prawnpdf/ttfunk","commit":"885061ed7fd0d1397ff40b3c67fb9d93dc30dcd0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Code-Review","score":0,"reason":"Found 1/29 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"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":"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":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Info:   0 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"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":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 2 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-22T18:17:04.717Z","repository_id":447226,"created_at":"2025-08-22T18:17:04.717Z","updated_at":"2025-08-22T18:17:04.717Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29355822,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T01:03:07.613Z","status":"online","status_checked_at":"2026-02-12T02:00:06.911Z","response_time":55,"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"}},"repo_metadata_updated_at":"2026-03-05T15:00:18.483Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{},"purl":"pkg:deb/ubuntu/ruby-ttfunk?arch=source\u0026distro=ubuntu-24.04","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/ruby-ttfunk","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/ruby-ttfunk","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/ruby-ttfunk/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-02-28T11:01:12.186Z","issues_count":36,"pull_requests_count":79,"avg_time_to_close_issue":38127021.666666664,"avg_time_to_close_pull_request":19742730.714285713,"issues_closed_count":27,"pull_requests_closed_count":70,"pull_request_authors_count":40,"issue_authors_count":32,"avg_comments_per_issue":5.305555555555555,"avg_comments_per_pull_request":3.5569620253164556,"merged_pull_requests_count":49,"bot_issues_count":0,"bot_pull_requests_count":0,"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":1320613.75,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":4,"past_year_pull_request_authors_count":6,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":2.0,"past_year_avg_comments_per_pull_request":2.2222222222222223,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":1,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/issues","maintainers":[{"login":"camertron","count":14,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/camertron"},{"login":"pointlessone","count":9,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pointlessone"},{"login":"mtyaka","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mtyaka"},{"login":"practicingruby","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/practicingruby"},{"login":"gettalong","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/gettalong"},{"login":"yob","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/yob"}],"active_maintainers":[{"login":"pointlessone","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pointlessone"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/ruby-ttfunk/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/ruby-ttfunk/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/ruby-ttfunk/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/ruby-ttfunk/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/ruby-ttfunk/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":0,"github":"ubuntu","metadata":{"codename":"noble","funded_packages_count":161},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:45.928Z","updated_at":"2026-04-01T06:53:16.927Z","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":13669660,"name":"ruby-ttfunk","ecosystem":"debian","description":null,"homepage":"https://github.com/prawnpdf/ttfunk","licenses":"other","normalized_licenses":["Other"],"repository_url":"https://github.com/prawnpdf/ttfunk","keywords_array":["ruby"],"namespace":"main","versions_count":1,"first_release_published_at":"2026-02-12T12:46:43.636Z","latest_release_published_at":"2026-02-12T12:46:43.636Z","latest_release_number":"1.7.0-1","last_synced_at":"2026-03-14T18:11:59.860Z","created_at":"2026-02-12T12:46:43.410Z","updated_at":"2026-03-14T18:12:00.052Z","registry_url":"https://tracker.debian.org/pkg/ruby-ttfunk","install_command":"apt-get install ruby-ttfunk","documentation_url":"https://packages.debian.org/trixie/ruby-ttfunk","metadata":{"component":"main","architecture":"all","priority":"source","binary":"ruby-ttfunk","standards_version":"4.6.0","maintainer":"Debian Ruby Team \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper-compat (= 13), gem2deb (\u003e= 1), rake, ruby-rspec","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{"id":447226,"uuid":"69899","full_name":"prawnpdf/ttfunk","owner":"prawnpdf","description":"Font Metrics Parser for Prawn","archived":false,"fork":false,"pushed_at":"2026-02-04T13:31:56.000Z","size":13536,"stargazers_count":132,"open_issues_count":14,"forks_count":86,"subscribers_count":34,"default_branch":"master","last_synced_at":"2026-02-10T04:39:55.354Z","etag":null,"topics":["afm","dfont","fonts","ruby","ttc","ttf"],"latest_commit_sha":null,"homepage":"http://prawnpdf.org","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"aschelch/cakephp-notification-plugin","license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/prawnpdf.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"COPYING","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":"2008-10-30T22:41:01.000Z","updated_at":"2026-02-06T11:53:05.000Z","dependencies_parsed_at":"2024-06-18T12:30:56.172Z","dependency_job_id":"c37327b5-9b9a-463b-957c-b8cec69ea3f1","html_url":"https://github.com/prawnpdf/ttfunk","commit_stats":{"total_commits":268,"total_committers":32,"mean_commits":8.375,"dds":0.7350746268656716,"last_synced_commit":"885061ed7fd0d1397ff40b3c67fb9d93dc30dcd0"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/prawnpdf/ttfunk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prawnpdf","download_url":"https://codeload.github.com/prawnpdf/ttfunk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/sbom","scorecard":{"id":744180,"data":{"date":"2025-08-11","repo":{"name":"github.com/prawnpdf/ttfunk","commit":"885061ed7fd0d1397ff40b3c67fb9d93dc30dcd0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Code-Review","score":0,"reason":"Found 1/29 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"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":"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":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/prawnpdf/ttfunk/ci.yml/master?enable=pin","Info:   0 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"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":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 2 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-22T18:17:04.717Z","repository_id":447226,"created_at":"2025-08-22T18:17:04.717Z","updated_at":"2025-08-22T18:17:04.717Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29355822,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T01:03:07.613Z","status":"online","status_checked_at":"2026-02-12T02:00:06.911Z","response_time":55,"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"}},"repo_metadata_updated_at":"2026-03-05T15:00:20.060Z","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-ttfunk?arch=source\u0026distro=debian-13\u0026repository_url=https://packages.debian.org/trixie","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/debian/ruby-ttfunk","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/debian/ruby-ttfunk","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/debian/ruby-ttfunk/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-02-28T11:01:12.186Z","issues_count":36,"pull_requests_count":79,"avg_time_to_close_issue":38127021.666666664,"avg_time_to_close_pull_request":19742730.714285713,"issues_closed_count":27,"pull_requests_closed_count":70,"pull_request_authors_count":40,"issue_authors_count":32,"avg_comments_per_issue":5.305555555555555,"avg_comments_per_pull_request":3.5569620253164556,"merged_pull_requests_count":49,"bot_issues_count":0,"bot_pull_requests_count":0,"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":1320613.75,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":4,"past_year_pull_request_authors_count":6,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":2.0,"past_year_avg_comments_per_pull_request":2.2222222222222223,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":1,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/issues","maintainers":[{"login":"camertron","count":14,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/camertron"},{"login":"pointlessone","count":9,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pointlessone"},{"login":"mtyaka","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mtyaka"},{"login":"practicingruby","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/practicingruby"},{"login":"gettalong","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/gettalong"},{"login":"yob","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/yob"}],"active_maintainers":[{"login":"pointlessone","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pointlessone"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/ruby-ttfunk/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/ruby-ttfunk/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/ruby-ttfunk/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/ruby-ttfunk/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/ruby-ttfunk/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":0,"github":"debian","metadata":{"codename":"trixie","funded_packages_count":282},"icon_url":"https://github.com/debian.png","created_at":"2026-02-04T11:01:50.448Z","updated_at":"2026-03-31T06:41:13.743Z","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"}}],"commits":{"id":19597,"full_name":"prawnpdf/ttfunk","default_branch":"master","total_commits":274,"total_committers":31,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":8.838709677419354,"dds":0.7116788321167884,"past_year_total_commits":5,"past_year_total_committers":1,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":5.0,"past_year_dds":0.0,"last_synced_at":"2026-04-14T00:04:16.772Z","last_synced_commit":"6bc9950a4a2110e84a29eff850e0e61fda171484","created_at":"2023-03-07T11:41:35.218Z","updated_at":"2026-04-14T00:03:38.919Z","committers":[{"name":"Alexander Mankuta","email":"alex@pointless.one","login":"pointlessone","count":79},{"name":"camertron","email":"camertron@gmail.com","login":"camertron","count":58},{"name":"Gregory Brown","email":"gregory.t.brown@gmail.com","login":"practicingruby","count":35},{"name":"Jamis Buck","email":"jamis@37signals.com","login":"jamis","count":24},{"name":"Matjaz Gregoric","email":"mtyaka@gmail.com","login":"mtyaka","count":14},{"name":"Brad Ediger","email":"brad.ediger@madriska.com","login":"bradediger","count":9},{"name":"James Healy","email":"jimmy@deefa.com","login":"yob","count":7},{"name":"Evan Sharp","email":"evan@packetmonkey.org","login":"packetmonkey","count":6},{"name":"Javan Makhmali","email":"javan@javan.us","login":"javan","count":4},{"name":"Peter Goldstein","email":"peter.m.goldstein@gmail.com","login":"petergoldstein","count":4},{"name":"Jia Wu","email":"wujia123@yahoo.com","login":null,"count":3},{"name":"Jesse Doyle","email":"jdoyle@ualberta.ca","login":"jessedoyle","count":3},{"name":"Katsuya HIDAKA","email":"hidakatsuya@gmail.com","login":"hidakatsuya","count":3},{"name":"Steve Sloan","email":"steve@finagle.org","login":"CodeMonkeySteve","count":3},{"name":"Dan Allen","email":"dan.j.allen@gmail.com","login":"mojavelinux","count":2},{"name":"Jon Burgess","email":"jkburges@gmail.com","login":"jkburges","count":2},{"name":"Marcus Ramberg","email":"marcus@nordaaker.com","login":"marcusramberg","count":2},{"name":"Tom de Grunt","email":"tom@degrunt.nl","login":"tdegrunt","count":2},{"name":"Daniel Nelson","email":"dnelson+git@bluejade.com","login":null,"count":2},{"name":"kokuyouwind","email":"kokuyouwind@gmail.com","login":"kokuyouwind","count":1},{"name":"Robert Pelkey","email":"rob@ganesha.rob.intra.pelkey.org","login":null,"count":1},{"name":"Thomas Leitner","email":"t_leitner@gmx.at","login":"gettalong","count":1},{"name":"Thomas Dy","email":"thatsmydoing@gmail.com","login":"thatsmydoing","count":1},{"name":"Serge Smetana","email":"smetana@pluron.com","login":"smetana","count":1},{"name":"Pavel Lobashov","email":"shockwavenn@gmail.com","login":"ShockwaveNN","count":1},{"name":"Lucas Florio","email":"lucasefe@gmail.com","login":"lucasefe","count":1},{"name":"Keenan Brock","email":"keenan@thebrocks.net","login":"kbrock","count":1},{"name":"Johnathon E Wright","email":"jw@mustmodify.com","login":"mustmodify","count":1},{"name":"Jens Kutilek","email":"webmail@kutilek.de","login":"jenskutilek","count":1},{"name":"Cédric Boutillier","email":"boutil@debian.org","login":"boutil","count":1},{"name":"Anton Rieder","email":"1301152+aried3r","login":"aried3r","count":1}],"past_year_committers":[{"name":"Alexander Mankuta","email":"alex@pointless.one","login":"pointlessone","count":5}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-14T00:00:07.982Z","repositories_count":6213247,"commits_count":903339003,"contributors_count":34926861,"owners_count":1144256,"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":"prawnpdf/ttfunk","html_url":"https://github.com/prawnpdf/ttfunk","last_synced_at":"2026-04-08T06:00:24.765Z","status":"active","issues_count":36,"pull_requests_count":81,"avg_time_to_close_issue":38952900.64285714,"avg_time_to_close_pull_request":20426832.555555556,"issues_closed_count":28,"pull_requests_closed_count":72,"pull_request_authors_count":42,"issue_authors_count":32,"avg_comments_per_issue":5.388888888888889,"avg_comments_per_pull_request":3.5308641975308643,"merged_pull_requests_count":50,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":7,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":1320613.75,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":4,"past_year_pull_request_authors_count":6,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":4.0,"past_year_avg_comments_per_pull_request":1.8571428571428572,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":1,"created_at":"2023-05-12T18:38:47.083Z","updated_at":"2026-04-08T06:00:24.765Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/prawnpdf%2Fttfunk/issues","issue_labels_count":{},"pull_request_labels_count":{},"issue_author_associations_count":{"NONE":25,"MEMBER":7,"CONTRIBUTOR":4},"pull_request_author_associations_count":{"CONTRIBUTOR":31,"MEMBER":29,"NONE":21},"issue_authors":{"camertron":2,"practicingruby":2,"mojavelinux":2,"ghost":2,"kokuyouwind":1,"owst":1,"louisatome":1,"yob":1,"TastyPi":1,"jakoch":1,"daniellAlgar":1,"gl-yziquel":1,"noraj":1,"pointlessone":1,"smetana":1,"gettalong":1,"mustmodify":1,"yoshoku":1,"michaeleisel":1,"mariuszpala":1,"graza":1,"xsuchy":1,"apjanke":1,"tbf":1,"Apteryks":1,"georf":1,"meap":1,"jeffblake":1,"brandoncc":1,"datanoise":1,"johannesluedke":1,"excid3":1},"pull_request_authors":{"camertron":12,"pointlessone":8,"mtyaka":7,"packetmonkey":4,"petergoldstein":4,"aried3r":2,"yoshoku":2,"thatsmydoing":2,"matsud224":2,"mojavelinux":2,"rrosenblum":2,"hidakatsuya":2,"dduugg":2,"ShockwaveNN":2,"rmosolgo":1,"jessedoyle":1,"diaconu-andrei":1,"miguelsousa":1,"jkburges":1,"HParker":1,"55728":1,"johnnyshields":1,"sigmike":1,"mustmodify":1,"marcusramberg":1,"jenskutilek":1,"practicingruby":1,"oleksii-leonov":1,"pobrelkey":1,"smetana":1,"gettalong":1,"kbrock":1,"tdegrunt":1,"nmadura":1,"CodeMonkeySteve":1,"boutil":1,"flori":1,"lucasefe":1,"kokuyouwind":1,"javan":1,"jamis":1,"casperisfine":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-09T00:00:10.509Z","repositories_count":14179840,"issues_count":34597532,"pull_requests_count":113160408,"authors_count":11231512,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{"NONE":1},"past_year_pull_request_author_associations_count":{"NONE":6,"MEMBER":1},"past_year_issue_authors":{"owst":1},"past_year_pull_request_authors":{"dduugg":2,"55728":1,"diaconu-andrei":1,"flori":1,"johnnyshields":1,"pointlessone":1},"maintainers":[{"login":"camertron","count":14,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/camertron"},{"login":"pointlessone","count":9,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pointlessone"},{"login":"mtyaka","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mtyaka"},{"login":"practicingruby","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/practicingruby"},{"login":"gettalong","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/gettalong"},{"login":"yob","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/yob"}],"active_maintainers":[{"login":"pointlessone","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pointlessone"}]},"events":{"total":{"PullRequestEvent":5,"ForkEvent":8,"WatchEvent":8,"IssueCommentEvent":25,"PullRequestReviewEvent":2,"CreateEvent":1},"last_year":{"PullRequestEvent":3,"ForkEvent":4,"WatchEvent":3,"IssueCommentEvent":9,"PullRequestReviewEvent":2,"CreateEvent":1}},"keywords":["afm","dfont","fonts","ruby","ttc","ttf"],"dependencies":[{"ecosystem":"rubygems","filepath":"ttfunk.gemspec","sha":null,"kind":"manifest","created_at":"2022-07-04T16:32:04.929Z","updated_at":"2022-07-04T16:32:04.929Z","repository_link":"https://github.com/prawnpdf/ttfunk/blob/master/ttfunk.gemspec","dependencies":[{"id":105462581,"package_name":"prawn-dev","ecosystem":"rubygems","requirements":"~\u003e 0.3.0","direct":true,"kind":"development","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/ci.yml","sha":null,"kind":"manifest","created_at":"2023-12-13T18:14:45.626Z","updated_at":"2023-12-13T18:14:45.626Z","repository_link":"https://github.com/prawnpdf/ttfunk/blob/master/.github/workflows/ci.yml","dependencies":[{"id":15071885538,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":15071885539,"package_name":"ruby/setup-ruby","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":15071885540,"package_name":"actions/cache","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"rubygems","filepath":"Gemfile","sha":null,"kind":"manifest","created_at":"2023-12-13T18:14:45.635Z","updated_at":"2023-12-13T18:14:45.635Z","repository_link":"https://github.com/prawnpdf/ttfunk/blob/master/Gemfile","dependencies":[]}],"score":28.281793556108134,"created_at":"2024-12-15T21:38:07.260Z","updated_at":"2026-04-30T16:30:29.453Z","avatar_url":"https://github.com/prawnpdf.png","language":"Ruby","monthly_downloads":0,"readme":"# TTFunk\n\n![Maintained: yes](https://img.shields.io/badge/maintained-yes-brightgreen.svg)\n![CI status](https://github.com/prawnpdf/ttfunk/workflows/CI/badge.svg)\n\nTTFunk is a TrueType and OpenType font library written in pure ruby. It supports\nboth parsing and encoding of fonts. Also provides limited font subsetting.\n\n## Installation\n\nThe recommended installation method is via Rubygems.\n\n```shell\ngem install ttfunk\n```\n\n## Usage\n\nBasic usage:\n\n```ruby\nrequire 'ttfunk'\n\nfile = TTFunk::File.open(\"some/path/myfont.ttf\")\nputs \"name    : #{file.name.font_name.join(', ')}\"\nputs \"ascent  : #{file.ascent}\"\nputs \"descent : #{file.descent}\"\n```\n\nFor more detailed examples, explore the examples directory.\n\n## Licensing\n\nMatz's terms for Ruby, GPLv2, or GPLv3. See LICENSE for details.\n\n##  Authorship\n\nThis project is maintained by the same folks who run the Prawn PDF project.\n\nHere's the [full list](https://github.com/prawnpdf/ttfunk/contributors) of\nGithub users who have at least one patch accepted to TTFunk.\n\n## Community support\n\nTTFunk is maintained as a dependency of Prawn, the ruby PDF generation library.\n\nAny questions or feedback should be sent to the [Prawn\nDiccussions](https://github.com/orgs/prawnpdf/discussions) group.\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["pdf-generator","prawn","activerecord","activejob","mvc","rubygems","static-analysis","security-tools","security-audit","vulnerabilities"],"project_url":"https://ruby.ecosyste.ms/api/v1/projects/194","html_url":"https://ruby.ecosyste.ms/projects/194"}