{"id":176,"name":null,"description":"Collection of RSpec/MiniTest matchers and Cucumber steps for testing email in a ruby app using ActionMailer or Pony","url":"https://github.com/email-spec/email-spec","last_synced_at":"2026-04-29T18:30:15.423Z","repository":{"id":463364,"uuid":"87835","full_name":"email-spec/email-spec","owner":"email-spec","description":"Collection of RSpec/MiniTest matchers and Cucumber steps for testing email in a ruby app using ActionMailer or Pony","archived":false,"fork":false,"pushed_at":"2026-03-21T15:44:39.000Z","size":791,"stargazers_count":1193,"open_issues_count":34,"forks_count":171,"subscribers_count":16,"default_branch":"main","last_synced_at":"2026-04-17T16:05:27.776Z","etag":null,"topics":["actionmailer","cucumber","cucumber-steps","mailer","minitest","pony","rspec","rspec-matchers","ruby"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/email-spec.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"MIT-LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2008-12-09T21:09:32.000Z","updated_at":"2026-03-22T09:24:53.000Z","dependencies_parsed_at":"2024-11-06T19:36:33.721Z","dependency_job_id":"42b41bc5-d028-4298-94b4-770c5d1f213d","html_url":"https://github.com/email-spec/email-spec","commit_stats":{"total_commits":529,"total_committers":100,"mean_commits":5.29,"dds":0.6597353497164462,"last_synced_commit":"eb2844f76649af79d46255862603ab058cce8c11"},"previous_names":["bmabey/email-spec"],"tags_count":30,"template":false,"template_full_name":null,"purl":"pkg:github/email-spec/email-spec","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/email-spec","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/sbom","scorecard":{"id":374404,"data":{"date":"2025-08-11","repo":{"name":"github.com/email-spec/email-spec","commit":"eb2844f76649af79d46255862603ab058cce8c11"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.3,"checks":[{"name":"Code-Review","score":5,"reason":"Found 8/16 approved changesets -- score normalized to 5","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":"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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/main.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":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"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":"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/main.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/email-spec/email-spec/main.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/main.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/email-spec/email-spec/main.yml/main?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 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":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"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":"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":10,"reason":"license file detected","details":["Info: project has a license file: MIT-LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: MIT-LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"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 23 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-18T13:53:01.512Z","repository_id":463364,"created_at":"2025-08-18T13:53:01.512Z","updated_at":"2025-08-18T13:53:01.512Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32200159,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-23T20:19:26.138Z","status":"ssl_error","status_checked_at":"2026-04-23T20:19:23.520Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":{"login":"email-spec","name":"Email Spec, Email Matchers for Cucumber and RSpec","uuid":"16527748","kind":"organization","description":"","email":null,"website":"https://github.com/email-spec/email-spec","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/16527748?v=4","repositories_count":1,"last_synced_at":"2024-03-25T22:06:02.744Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/email-spec","funding_links":[],"total_stars":1192,"followers":0,"following":0,"created_at":"2022-11-02T17:33:48.941Z","updated_at":"2024-03-25T22:06:02.805Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/email-spec","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/email-spec/repositories"},"packages":[{"id":12220364,"name":"email_spec","ecosystem":"rubygems","description":"Easily test email in RSpec, Cucumber, and MiniTest","homepage":"http://github.com/email-spec/email-spec/","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/email-spec/email-spec","keywords_array":[],"namespace":null,"versions_count":33,"first_release_published_at":"2009-07-25T18:23:46.000Z","latest_release_published_at":"2026-03-21T15:47:13.992Z","latest_release_number":"2.3.1","last_synced_at":"2026-04-25T21:31:13.110Z","created_at":"2025-10-07T02:39:22.057Z","updated_at":"2026-04-25T21:31:30.236Z","registry_url":"https://gem.coop/gems/email_spec","install_command":"gem install email_spec -s https://gem.coop","documentation_url":"http://www.rubydoc.info/gems/email_spec/","metadata":{"funding":null},"repo_metadata":{"id":463364,"uuid":"87835","full_name":"email-spec/email-spec","owner":"email-spec","description":"Collection of RSpec/MiniTest matchers and Cucumber steps for testing email in a ruby app using ActionMailer or Pony","archived":false,"fork":false,"pushed_at":"2026-03-21T15:44:39.000Z","size":791,"stargazers_count":1193,"open_issues_count":34,"forks_count":171,"subscribers_count":16,"default_branch":"main","last_synced_at":"2026-04-17T16:05:27.776Z","etag":null,"topics":["actionmailer","cucumber","cucumber-steps","mailer","minitest","pony","rspec","rspec-matchers","ruby"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/email-spec.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"MIT-LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2008-12-09T21:09:32.000Z","updated_at":"2026-03-22T09:24:53.000Z","dependencies_parsed_at":"2024-11-06T19:36:33.721Z","dependency_job_id":"42b41bc5-d028-4298-94b4-770c5d1f213d","html_url":"https://github.com/email-spec/email-spec","commit_stats":{"total_commits":529,"total_committers":100,"mean_commits":5.29,"dds":0.6597353497164462,"last_synced_commit":"eb2844f76649af79d46255862603ab058cce8c11"},"previous_names":["bmabey/email-spec"],"tags_count":30,"template":false,"template_full_name":null,"purl":"pkg:github/email-spec/email-spec","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/email-spec","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/sbom","scorecard":{"id":374404,"data":{"date":"2025-08-11","repo":{"name":"github.com/email-spec/email-spec","commit":"eb2844f76649af79d46255862603ab058cce8c11"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.3,"checks":[{"name":"Code-Review","score":5,"reason":"Found 8/16 approved changesets -- score normalized to 5","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":"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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/main.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":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"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":"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/main.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/email-spec/email-spec/main.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/main.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/email-spec/email-spec/main.yml/main?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 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":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"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":"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":10,"reason":"license file detected","details":["Info: project has a license file: MIT-LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: MIT-LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"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 23 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-18T13:53:01.512Z","repository_id":463364,"created_at":"2025-08-18T13:53:01.512Z","updated_at":"2025-08-18T13:53:01.512Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32158346,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-22T17:06:48.269Z","status":"ssl_error","status_checked_at":"2026-04-22T17:06:19.037Z","response_time":58,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":"email-spec","name":"Email Spec, Email Matchers for Cucumber and RSpec","uuid":"16527748","kind":"organization","description":"","email":null,"website":"https://github.com/email-spec/email-spec","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/16527748?v=4","repositories_count":1,"last_synced_at":"2024-03-25T22:06:02.744Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/email-spec","funding_links":[],"total_stars":1192,"followers":0,"following":0,"created_at":"2022-11-02T17:33:48.941Z","updated_at":"2024-03-25T22:06:02.805Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/email-spec","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/email-spec/repositories"},"tags":[{"name":"v2.3.1","sha":"d280ef5a418688f40a2593ae9ab071ac705f9368","kind":"tag","published_at":"2026-03-21T15:44:24.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v2.3.1","html_url":"https://github.com/email-spec/email-spec/releases/tag/v2.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v2.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.3.1/manifests"},{"name":"v2.3.0","sha":"f7f1d5660e5ee323acba6f39254070ffc49db5a7","kind":"commit","published_at":"2024-07-22T02:38:43.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v2.3.0","html_url":"https://github.com/email-spec/email-spec/releases/tag/v2.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v2.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.3.0/manifests"},{"name":"v2.2.2","sha":"b8d22b4d1e347fd913a7602ea01ecaed827c7ca9","kind":"commit","published_at":"2023-06-27T02:18:07.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v2.2.2","html_url":"https://github.com/email-spec/email-spec/releases/tag/v2.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v2.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.2.2/manifests"},{"name":"v2.2.1","sha":"f9496fc3022a8545fe95f3cf869380a899a56729","kind":"commit","published_at":"2022-11-11T23:50:29.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v2.2.1","html_url":"https://github.com/email-spec/email-spec/releases/tag/v2.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v2.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.2.1/manifests"},{"name":"v2.2.0","sha":"f056ce488e9b12188cc03b9f42b4cc025388e6c4","kind":"commit","published_at":"2018-04-03T23:55:00.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v2.2.0","html_url":"https://github.com/email-spec/email-spec/releases/tag/v2.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v2.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.2.0/manifests"},{"name":"v2.1.2","sha":"a37a8e07b8a1323e4692c3c64075ded5ea3f3c1a","kind":"commit","published_at":"2018-04-03T23:37:25.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v2.1.2","html_url":"https://github.com/email-spec/email-spec/releases/tag/v2.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v2.1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.1.2/manifests"},{"name":"v2.1.1","sha":"c10b49a57593e5cf6be968a8bbf5bedb098a43d1","kind":"commit","published_at":"2017-05-16T13:24:01.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v2.1.1","html_url":"https://github.com/email-spec/email-spec/releases/tag/v2.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v2.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.1.1/manifests"},{"name":"v2.1.0","sha":"a490b2fd1dee75cb99ee1c945ddd3279b3baf99f","kind":"commit","published_at":"2016-05-05T01:31:21.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v2.1.0","html_url":"https://github.com/email-spec/email-spec/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.1.0/manifests"},{"name":"v2.0.0","sha":"977cf3e0f801084613416e847462e2d1736f583b","kind":"commit","published_at":"2016-01-15T14:48:39.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v2.0.0","html_url":"https://github.com/email-spec/email-spec/releases/tag/v2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v2.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.0.0/manifests"},{"name":"v1.6.0","sha":"65d6ffd7f4cc8d6b52e210b48136d57a4beac9a1","kind":"commit","published_at":"2014-05-27T14:58:45.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v1.6.0","html_url":"https://github.com/email-spec/email-spec/releases/tag/v1.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v1.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v1.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v1.6.0/manifests"},{"name":"v1.5.0","sha":"77dcc971948d887e2475d4e9dcda62515f4c9568","kind":"commit","published_at":"2013-07-22T16:21:49.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v1.5.0","html_url":"https://github.com/email-spec/email-spec/releases/tag/v1.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v1.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v1.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v1.5.0/manifests"},{"name":"v1.4.0","sha":"c08407ec880b3b338518f63c2037c5d06be9655a","kind":"commit","published_at":"2012-10-30T15:34:08.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v1.4.0","html_url":"https://github.com/email-spec/email-spec/releases/tag/v1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v1.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v1.4.0/manifests"},{"name":"v1.3.0","sha":"db531e57cbeae7eec0c14a7efe130a2fb7148ce5","kind":"commit","published_at":"2012-04-08T03:26:50.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v1.3.0","html_url":"https://github.com/email-spec/email-spec/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v1.3.0/manifests"},{"name":"v1.2.1","sha":"1e515892016025fd9bf34e13d0823dedfa17bfe9","kind":"commit","published_at":"2011-06-21T01:48:31.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v1.2.1","html_url":"https://github.com/email-spec/email-spec/releases/tag/v1.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v1.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v1.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v1.2.1/manifests"},{"name":"v1.2.0","sha":"b81776a368d822cf0edaf85cefb4280b3c15a676","kind":"commit","published_at":"2011-06-17T01:57:56.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v1.2.0","html_url":"https://github.com/email-spec/email-spec/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v1.2.0/manifests"},{"name":"v0.6.6","sha":"c692a8211cd9ddec720aac69cdde10b5eef108e2","kind":"commit","published_at":"2011-03-26T19:46:56.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v0.6.6","html_url":"https://github.com/email-spec/email-spec/releases/tag/v0.6.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v0.6.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v0.6.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v0.6.6/manifests"},{"name":"v0.6.5","sha":"551fbb610cd0fa64abb56d6522ce6cc995eac06b","kind":"commit","published_at":"2011-01-11T16:21:02.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v0.6.5","html_url":"https://github.com/email-spec/email-spec/releases/tag/v0.6.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v0.6.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v0.6.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v0.6.5/manifests"},{"name":"v.1.1.1","sha":"37711a233ec94154228ced64c974d3b6a0732b66","kind":"commit","published_at":"2010-12-29T18:58:18.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v.1.1.1","html_url":"https://github.com/email-spec/email-spec/releases/tag/v.1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v.1.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v.1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v.1.1.1/manifests"},{"name":"v1.1.0","sha":"f5a1afd30ff2b6e7de78126f8db66d648a9a712d","kind":"commit","published_at":"2010-12-20T17:18:54.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v1.1.0","html_url":"https://github.com/email-spec/email-spec/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v1.1.0/manifests"},{"name":"v0.6.4","sha":"232dc785e452dbbac0723ef2536929e1e196b16b","kind":"commit","published_at":"2010-10-06T22:16:05.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v0.6.4","html_url":"https://github.com/email-spec/email-spec/releases/tag/v0.6.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v0.6.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v0.6.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v0.6.4/manifests"},{"name":"v0.6.3","sha":"5b1bb4439337f2e317d3afe7d9580b6758f7b074","kind":"commit","published_at":"2010-07-30T16:39:42.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v0.6.3","html_url":"https://github.com/email-spec/email-spec/releases/tag/v0.6.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v0.6.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v0.6.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v0.6.3/manifests"},{"name":"v1.0.0","sha":"91fed5473b53e33f1a11f44e2f3b835cf759db84","kind":"commit","published_at":"2010-07-30T03:49:05.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v1.0.0","html_url":"https://github.com/email-spec/email-spec/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v1.0.0/manifests"},{"name":"v0.6.2","sha":"51e3a665def4137727fd1eee62e0a52711938771","kind":"commit","published_at":"2010-03-21T17:44:45.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v0.6.2","html_url":"https://github.com/email-spec/email-spec/releases/tag/v0.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v0.6.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v0.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v0.6.2/manifests"},{"name":"delayed_job_pre_1.8.5","sha":"33b74efa82cb52414c14597206d8f3deb20cf6e8","kind":"commit","published_at":"2010-03-02T20:57:01.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/delayed_job_pre_1.8.5","html_url":"https://github.com/email-spec/email-spec/releases/tag/delayed_job_pre_1.8.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@delayed_job_pre_1.8.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/delayed_job_pre_1.8.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/delayed_job_pre_1.8.5/manifests"},{"name":"0.4.0","sha":"91aa1463af36c8e99f3b7b5ba716fd7fd1267ca7","kind":"commit","published_at":"2010-01-08T01:30:50.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/0.4.0","html_url":"https://github.com/email-spec/email-spec/releases/tag/0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@0.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/0.4.0/manifests"},{"name":"v0.3.6","sha":"a2c5af91639e37dd519ebc9795705149808cfcdd","kind":"commit","published_at":"2009-12-17T03:15:48.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v0.3.6","html_url":"https://github.com/email-spec/email-spec/releases/tag/v0.3.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v0.3.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v0.3.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v0.3.6/manifests"},{"name":"v0.3.5","sha":"f1e666de86bc6b5388039f28c19795abbd9c7708","kind":"commit","published_at":"2009-10-09T04:49:52.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v0.3.5","html_url":"https://github.com/email-spec/email-spec/releases/tag/v0.3.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v0.3.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v0.3.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v0.3.5/manifests"},{"name":"v0.3.3","sha":"473de1dfd96f4b450e8f2099949a9f0d3ece0cfa","kind":"commit","published_at":"2009-09-19T00:28:36.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v0.3.3","html_url":"https://github.com/email-spec/email-spec/releases/tag/v0.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v0.3.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v0.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v0.3.3/manifests"},{"name":"cucumber-0.3.0","sha":"3162089db547c6cd2136253cc0ea582c7a3516da","kind":"commit","published_at":"2009-04-16T03:39:19.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/cucumber-0.3.0","html_url":"https://github.com/email-spec/email-spec/releases/tag/cucumber-0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@cucumber-0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/cucumber-0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/cucumber-0.3.0/manifests"},{"name":"pre-0.3.0","sha":"cdf3eeda4d28ef8b35bbce8af9ca7c493528332d","kind":"commit","published_at":"2009-04-07T20:42:26.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/pre-0.3.0","html_url":"https://github.com/email-spec/email-spec/releases/tag/pre-0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@pre-0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/pre-0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/pre-0.3.0/manifests"}]},"repo_metadata_updated_at":"2026-04-25T21:31:30.215Z","dependent_packages_count":0,"downloads":71599716,"downloads_period":"total","dependent_repos_count":0,"rankings":{"downloads":0.3984796137397068,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":0.24276437797710768,"average":0.1603109979292036},"purl":"pkg:gem/email_spec?repository_url=https://gem.coop","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/rubygems/email_spec","docker_dependents_count":192,"docker_downloads_count":454547053,"usage_url":"https://repos.ecosyste.ms/usage/rubygems/email_spec","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/rubygems/email_spec/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-03-31T04:00:20.111Z","issues_count":49,"pull_requests_count":62,"avg_time_to_close_issue":72710445.2972973,"avg_time_to_close_pull_request":37368854.548387095,"issues_closed_count":37,"pull_requests_closed_count":62,"pull_request_authors_count":39,"issue_authors_count":46,"avg_comments_per_issue":2.36734693877551,"avg_comments_per_pull_request":1.4516129032258065,"merged_pull_requests_count":51,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":3,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":1114875.3333333333,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":3,"past_year_pull_request_authors_count":3,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":3,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/issues","maintainers":[{"login":"etagwerker","count":10,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/etagwerker"},{"login":"mauro-oto","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mauro-oto"},{"login":"bmabey","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/bmabey"},{"login":"sikachu","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/sikachu"}],"active_maintainers":[{"login":"etagwerker","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/etagwerker"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/email_spec/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/email_spec/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/email_spec/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/email_spec/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/email_spec/codemeta","maintainers":[{"uuid":"2067","login":"sikachu","name":null,"email":null,"url":null,"packages_count":7,"html_url":"https://gem.coop/profiles/sikachu","role":null,"created_at":"2025-10-07T16:43:43.539Z","updated_at":"2025-10-07T16:43:43.539Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/sikachu/packages"},{"uuid":"2506","login":"etagwerker","name":null,"email":null,"url":null,"packages_count":38,"html_url":"https://gem.coop/profiles/etagwerker","role":null,"created_at":"2025-10-07T16:43:42.963Z","updated_at":"2025-10-07T16:43:42.963Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/etagwerker/packages"},{"uuid":"539","login":"bmabey","name":null,"email":null,"url":null,"packages_count":8,"html_url":"https://gem.coop/profiles/bmabey","role":null,"created_at":"2025-10-07T16:43:42.598Z","updated_at":"2025-10-07T16:43:42.598Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/bmabey/packages"}],"registry":{"name":"gem.coop","url":"https://gem.coop","ecosystem":"rubygems","default":false,"packages_count":190339,"maintainers_count":67463,"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":11692256,"name":"github.com/email-spec/email-spec","ecosystem":"go","description":null,"homepage":null,"licenses":"mit","normalized_licenses":["MIT"],"repository_url":"https://github.com/email-spec/email-spec","keywords_array":[],"namespace":null,"versions_count":25,"first_release_published_at":"2009-09-19T00:28:36.000Z","latest_release_published_at":"2026-03-21T15:43:58.000Z","latest_release_number":"v2.3.1+incompatible","last_synced_at":"2026-04-26T17:00:23.016Z","created_at":"2025-05-27T08:23:32.100Z","updated_at":"2026-04-26T17:00:23.016Z","registry_url":"https://pkg.go.dev/github.com/email-spec/email-spec","install_command":"go get github.com/email-spec/email-spec","documentation_url":"https://pkg.go.dev/github.com/email-spec/email-spec#section-documentation","metadata":{},"repo_metadata":{"id":463364,"uuid":"87835","full_name":"email-spec/email-spec","owner":"email-spec","description":"Collection of RSpec/MiniTest matchers and Cucumber steps for testing email in a ruby app using ActionMailer or Pony","archived":false,"fork":false,"pushed_at":"2024-07-22T20:49:09.000Z","size":768,"stargazers_count":1191,"open_issues_count":35,"forks_count":171,"subscribers_count":20,"default_branch":"main","last_synced_at":"2025-09-05T23:01:59.268Z","etag":null,"topics":["actionmailer","cucumber","cucumber-steps","mailer","minitest","pony","rspec","rspec-matchers","ruby"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/email-spec.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"MIT-LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2008-12-09T21:09:32.000Z","updated_at":"2025-08-31T03:17:41.000Z","dependencies_parsed_at":"2024-11-06T19:36:33.721Z","dependency_job_id":"42b41bc5-d028-4298-94b4-770c5d1f213d","html_url":"https://github.com/email-spec/email-spec","commit_stats":{"total_commits":529,"total_committers":100,"mean_commits":5.29,"dds":0.6597353497164462,"last_synced_commit":"eb2844f76649af79d46255862603ab058cce8c11"},"previous_names":["bmabey/email-spec"],"tags_count":29,"template":false,"template_full_name":null,"purl":"pkg:github/email-spec/email-spec","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/email-spec","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/sbom","scorecard":{"id":374404,"data":{"date":"2025-08-11","repo":{"name":"github.com/email-spec/email-spec","commit":"eb2844f76649af79d46255862603ab058cce8c11"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.3,"checks":[{"name":"Code-Review","score":5,"reason":"Found 8/16 approved changesets -- score normalized to 5","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":"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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/main.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":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"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":"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/main.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/email-spec/email-spec/main.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/main.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/email-spec/email-spec/main.yml/main?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 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":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"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":"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":10,"reason":"license file detected","details":["Info: project has a license file: MIT-LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: MIT-LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"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 23 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-18T13:53:01.512Z","repository_id":463364,"created_at":"2025-08-18T13:53:01.512Z","updated_at":"2025-08-18T13:53:01.512Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273851067,"owners_count":25179355,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-06T02:00:13.247Z","response_time":2576,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"email-spec","name":"Email Spec, Email Matchers for Cucumber and RSpec","uuid":"16527748","kind":"organization","description":"","email":null,"website":"https://github.com/email-spec/email-spec","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/16527748?v=4","repositories_count":1,"last_synced_at":"2024-03-25T22:06:02.744Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/email-spec","funding_links":[],"total_stars":1192,"followers":0,"following":0,"created_at":"2022-11-02T17:33:48.941Z","updated_at":"2024-03-25T22:06:02.805Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/email-spec","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/email-spec/repositories"},"tags":[]},"repo_metadata_updated_at":"2025-09-06T18:43:17.100Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":5.807004531283771,"dependent_packages_count":5.441509219438237,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":5.624256875361004},"purl":"pkg:golang/github.com/email-spec/email-spec","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/email-spec/email-spec","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/email-spec/email-spec","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/email-spec/email-spec/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-08-31T20:32:43.338Z","issues_count":49,"pull_requests_count":55,"avg_time_to_close_issue":70797384.76315789,"avg_time_to_close_pull_request":29063938.759259257,"issues_closed_count":38,"pull_requests_closed_count":54,"pull_request_authors_count":38,"issue_authors_count":46,"avg_comments_per_issue":2.4081632653061225,"avg_comments_per_pull_request":1.3272727272727274,"merged_pull_requests_count":45,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/issues","maintainers":[{"login":"etagwerker","count":9,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/etagwerker"},{"login":"mauro-oto","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mauro-oto"},{"login":"bmabey","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/bmabey"},{"login":"sikachu","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/sikachu"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Femail-spec%2Femail-spec/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Femail-spec%2Femail-spec/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Femail-spec%2Femail-spec/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Femail-spec%2Femail-spec/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Femail-spec%2Femail-spec/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":2108863,"maintainers_count":0,"namespaces_count":782439,"keywords_count":112823,"github":"golang","metadata":{"funded_packages_count":53495},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2026-04-19T05:14:45.920Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/namespaces"}},{"id":197608,"name":"email_spec","ecosystem":"rubygems","description":"Easily test email in RSpec, Cucumber, and MiniTest","homepage":"http://github.com/email-spec/email-spec/","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/email-spec/email-spec","keywords_array":[],"namespace":null,"versions_count":33,"first_release_published_at":"2009-07-25T18:23:46.000Z","latest_release_published_at":"2026-03-21T15:47:13.992Z","latest_release_number":"2.3.1","last_synced_at":"2026-04-27T18:02:12.413Z","created_at":"2022-04-05T21:37:07.974Z","updated_at":"2026-04-27T18:02:56.584Z","registry_url":"https://rubygems.org/gems/email_spec","install_command":"gem install email_spec -s https://rubygems.org","documentation_url":"http://www.rubydoc.info/gems/email_spec/","metadata":{"funding":null},"repo_metadata":{"id":463364,"uuid":"87835","full_name":"email-spec/email-spec","owner":"email-spec","description":"Collection of RSpec/MiniTest matchers and Cucumber steps for testing email in a ruby app using ActionMailer or Pony","archived":false,"fork":false,"pushed_at":"2026-03-21T15:44:39.000Z","size":791,"stargazers_count":1193,"open_issues_count":34,"forks_count":171,"subscribers_count":16,"default_branch":"main","last_synced_at":"2026-04-10T09:00:17.773Z","etag":null,"topics":["actionmailer","cucumber","cucumber-steps","mailer","minitest","pony","rspec","rspec-matchers","ruby"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/email-spec.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"MIT-LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2008-12-09T21:09:32.000Z","updated_at":"2026-03-22T09:24:53.000Z","dependencies_parsed_at":"2024-11-06T19:36:33.721Z","dependency_job_id":"42b41bc5-d028-4298-94b4-770c5d1f213d","html_url":"https://github.com/email-spec/email-spec","commit_stats":{"total_commits":529,"total_committers":100,"mean_commits":5.29,"dds":0.6597353497164462,"last_synced_commit":"eb2844f76649af79d46255862603ab058cce8c11"},"previous_names":["bmabey/email-spec"],"tags_count":30,"template":false,"template_full_name":null,"purl":"pkg:github/email-spec/email-spec","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/email-spec","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/sbom","scorecard":{"id":374404,"data":{"date":"2025-08-11","repo":{"name":"github.com/email-spec/email-spec","commit":"eb2844f76649af79d46255862603ab058cce8c11"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.3,"checks":[{"name":"Code-Review","score":5,"reason":"Found 8/16 approved changesets -- score normalized to 5","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":"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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/main.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":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"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":"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/main.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/email-spec/email-spec/main.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/main.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/email-spec/email-spec/main.yml/main?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 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":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"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":"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":10,"reason":"license file detected","details":["Info: project has a license file: MIT-LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: MIT-LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"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 23 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-18T13:53:01.512Z","repository_id":463364,"created_at":"2025-08-18T13:53:01.512Z","updated_at":"2025-08-18T13:53:01.512Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31884929,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T11:36:10.202Z","status":"ssl_error","status_checked_at":"2026-04-16T11:36:09.652Z","response_time":69,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":"email-spec","name":"Email Spec, Email Matchers for Cucumber and RSpec","uuid":"16527748","kind":"organization","description":"","email":null,"website":"https://github.com/email-spec/email-spec","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/16527748?v=4","repositories_count":1,"last_synced_at":"2024-03-25T22:06:02.744Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/email-spec","funding_links":[],"total_stars":1192,"followers":0,"following":0,"created_at":"2022-11-02T17:33:48.941Z","updated_at":"2024-03-25T22:06:02.805Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/email-spec","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/email-spec/repositories"},"tags":[{"name":"v2.3.1","sha":"d280ef5a418688f40a2593ae9ab071ac705f9368","kind":"tag","published_at":"2026-03-21T15:44:24.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v2.3.1","html_url":"https://github.com/email-spec/email-spec/releases/tag/v2.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v2.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.3.1/manifests"},{"name":"v2.3.0","sha":"f7f1d5660e5ee323acba6f39254070ffc49db5a7","kind":"commit","published_at":"2024-07-22T02:38:43.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v2.3.0","html_url":"https://github.com/email-spec/email-spec/releases/tag/v2.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v2.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.3.0/manifests"},{"name":"v2.2.2","sha":"b8d22b4d1e347fd913a7602ea01ecaed827c7ca9","kind":"commit","published_at":"2023-06-27T02:18:07.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v2.2.2","html_url":"https://github.com/email-spec/email-spec/releases/tag/v2.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v2.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.2.2/manifests"},{"name":"v2.2.1","sha":"f9496fc3022a8545fe95f3cf869380a899a56729","kind":"commit","published_at":"2022-11-11T23:50:29.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v2.2.1","html_url":"https://github.com/email-spec/email-spec/releases/tag/v2.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v2.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.2.1/manifests"},{"name":"v2.2.0","sha":"f056ce488e9b12188cc03b9f42b4cc025388e6c4","kind":"commit","published_at":"2018-04-03T23:55:00.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v2.2.0","html_url":"https://github.com/email-spec/email-spec/releases/tag/v2.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v2.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.2.0/manifests"},{"name":"v2.1.2","sha":"a37a8e07b8a1323e4692c3c64075ded5ea3f3c1a","kind":"commit","published_at":"2018-04-03T23:37:25.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v2.1.2","html_url":"https://github.com/email-spec/email-spec/releases/tag/v2.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v2.1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.1.2/manifests"},{"name":"v2.1.1","sha":"c10b49a57593e5cf6be968a8bbf5bedb098a43d1","kind":"commit","published_at":"2017-05-16T13:24:01.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v2.1.1","html_url":"https://github.com/email-spec/email-spec/releases/tag/v2.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v2.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.1.1/manifests"},{"name":"v2.1.0","sha":"a490b2fd1dee75cb99ee1c945ddd3279b3baf99f","kind":"commit","published_at":"2016-05-05T01:31:21.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v2.1.0","html_url":"https://github.com/email-spec/email-spec/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.1.0/manifests"},{"name":"v2.0.0","sha":"977cf3e0f801084613416e847462e2d1736f583b","kind":"commit","published_at":"2016-01-15T14:48:39.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v2.0.0","html_url":"https://github.com/email-spec/email-spec/releases/tag/v2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v2.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v2.0.0/manifests"},{"name":"v1.6.0","sha":"65d6ffd7f4cc8d6b52e210b48136d57a4beac9a1","kind":"commit","published_at":"2014-05-27T14:58:45.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v1.6.0","html_url":"https://github.com/email-spec/email-spec/releases/tag/v1.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v1.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v1.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v1.6.0/manifests"},{"name":"v1.5.0","sha":"77dcc971948d887e2475d4e9dcda62515f4c9568","kind":"commit","published_at":"2013-07-22T16:21:49.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v1.5.0","html_url":"https://github.com/email-spec/email-spec/releases/tag/v1.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v1.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v1.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v1.5.0/manifests"},{"name":"v1.4.0","sha":"c08407ec880b3b338518f63c2037c5d06be9655a","kind":"commit","published_at":"2012-10-30T15:34:08.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v1.4.0","html_url":"https://github.com/email-spec/email-spec/releases/tag/v1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v1.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v1.4.0/manifests"},{"name":"v1.3.0","sha":"db531e57cbeae7eec0c14a7efe130a2fb7148ce5","kind":"commit","published_at":"2012-04-08T03:26:50.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v1.3.0","html_url":"https://github.com/email-spec/email-spec/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v1.3.0/manifests"},{"name":"v1.2.1","sha":"1e515892016025fd9bf34e13d0823dedfa17bfe9","kind":"commit","published_at":"2011-06-21T01:48:31.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v1.2.1","html_url":"https://github.com/email-spec/email-spec/releases/tag/v1.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v1.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v1.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v1.2.1/manifests"},{"name":"v1.2.0","sha":"b81776a368d822cf0edaf85cefb4280b3c15a676","kind":"commit","published_at":"2011-06-17T01:57:56.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v1.2.0","html_url":"https://github.com/email-spec/email-spec/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v1.2.0/manifests"},{"name":"v0.6.6","sha":"c692a8211cd9ddec720aac69cdde10b5eef108e2","kind":"commit","published_at":"2011-03-26T19:46:56.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v0.6.6","html_url":"https://github.com/email-spec/email-spec/releases/tag/v0.6.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v0.6.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v0.6.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v0.6.6/manifests"},{"name":"v0.6.5","sha":"551fbb610cd0fa64abb56d6522ce6cc995eac06b","kind":"commit","published_at":"2011-01-11T16:21:02.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v0.6.5","html_url":"https://github.com/email-spec/email-spec/releases/tag/v0.6.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v0.6.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v0.6.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v0.6.5/manifests"},{"name":"v.1.1.1","sha":"37711a233ec94154228ced64c974d3b6a0732b66","kind":"commit","published_at":"2010-12-29T18:58:18.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v.1.1.1","html_url":"https://github.com/email-spec/email-spec/releases/tag/v.1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v.1.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v.1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v.1.1.1/manifests"},{"name":"v1.1.0","sha":"f5a1afd30ff2b6e7de78126f8db66d648a9a712d","kind":"commit","published_at":"2010-12-20T17:18:54.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v1.1.0","html_url":"https://github.com/email-spec/email-spec/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v1.1.0/manifests"},{"name":"v0.6.4","sha":"232dc785e452dbbac0723ef2536929e1e196b16b","kind":"commit","published_at":"2010-10-06T22:16:05.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v0.6.4","html_url":"https://github.com/email-spec/email-spec/releases/tag/v0.6.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v0.6.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v0.6.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v0.6.4/manifests"},{"name":"v0.6.3","sha":"5b1bb4439337f2e317d3afe7d9580b6758f7b074","kind":"commit","published_at":"2010-07-30T16:39:42.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v0.6.3","html_url":"https://github.com/email-spec/email-spec/releases/tag/v0.6.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v0.6.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v0.6.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v0.6.3/manifests"},{"name":"v1.0.0","sha":"91fed5473b53e33f1a11f44e2f3b835cf759db84","kind":"commit","published_at":"2010-07-30T03:49:05.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v1.0.0","html_url":"https://github.com/email-spec/email-spec/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v1.0.0/manifests"},{"name":"v0.6.2","sha":"51e3a665def4137727fd1eee62e0a52711938771","kind":"commit","published_at":"2010-03-21T17:44:45.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v0.6.2","html_url":"https://github.com/email-spec/email-spec/releases/tag/v0.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v0.6.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v0.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v0.6.2/manifests"},{"name":"delayed_job_pre_1.8.5","sha":"33b74efa82cb52414c14597206d8f3deb20cf6e8","kind":"commit","published_at":"2010-03-02T20:57:01.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/delayed_job_pre_1.8.5","html_url":"https://github.com/email-spec/email-spec/releases/tag/delayed_job_pre_1.8.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@delayed_job_pre_1.8.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/delayed_job_pre_1.8.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/delayed_job_pre_1.8.5/manifests"},{"name":"0.4.0","sha":"91aa1463af36c8e99f3b7b5ba716fd7fd1267ca7","kind":"commit","published_at":"2010-01-08T01:30:50.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/0.4.0","html_url":"https://github.com/email-spec/email-spec/releases/tag/0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@0.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/0.4.0/manifests"},{"name":"v0.3.6","sha":"a2c5af91639e37dd519ebc9795705149808cfcdd","kind":"commit","published_at":"2009-12-17T03:15:48.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v0.3.6","html_url":"https://github.com/email-spec/email-spec/releases/tag/v0.3.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v0.3.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v0.3.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v0.3.6/manifests"},{"name":"v0.3.5","sha":"f1e666de86bc6b5388039f28c19795abbd9c7708","kind":"commit","published_at":"2009-10-09T04:49:52.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v0.3.5","html_url":"https://github.com/email-spec/email-spec/releases/tag/v0.3.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v0.3.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v0.3.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v0.3.5/manifests"},{"name":"v0.3.3","sha":"473de1dfd96f4b450e8f2099949a9f0d3ece0cfa","kind":"commit","published_at":"2009-09-19T00:28:36.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/v0.3.3","html_url":"https://github.com/email-spec/email-spec/releases/tag/v0.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@v0.3.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v0.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/v0.3.3/manifests"},{"name":"cucumber-0.3.0","sha":"3162089db547c6cd2136253cc0ea582c7a3516da","kind":"commit","published_at":"2009-04-16T03:39:19.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/cucumber-0.3.0","html_url":"https://github.com/email-spec/email-spec/releases/tag/cucumber-0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@cucumber-0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/cucumber-0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/cucumber-0.3.0/manifests"},{"name":"pre-0.3.0","sha":"cdf3eeda4d28ef8b35bbce8af9ca7c493528332d","kind":"commit","published_at":"2009-04-07T20:42:26.000Z","download_url":"https://codeload.github.com/email-spec/email-spec/tar.gz/pre-0.3.0","html_url":"https://github.com/email-spec/email-spec/releases/tag/pre-0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/email-spec/email-spec@pre-0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/pre-0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/tags/pre-0.3.0/manifests"}]},"repo_metadata_updated_at":"2026-04-27T18:02:56.584Z","dependent_packages_count":45,"downloads":71617975,"downloads_period":"total","dependent_repos_count":11227,"rankings":{"downloads":0.4086707329311671,"dependent_repos_count":0.3205807250142171,"dependent_packages_count":0.5776028367212676,"stargazers_count":1.7584549681649402,"forks_count":2.0216099285244367,"docker_downloads_count":0.40644060614845956,"average":0.915559966250748},"purl":"pkg:gem/email_spec","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/rubygems/email_spec","docker_dependents_count":192,"docker_downloads_count":454547053,"usage_url":"https://repos.ecosyste.ms/usage/rubygems/email_spec","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/rubygems/email_spec/dependencies","status":null,"funding_links":[],"critical":true,"issue_metadata":{"last_synced_at":"2026-04-23T22:02:09.768Z","issues_count":49,"pull_requests_count":62,"avg_time_to_close_issue":72710445.2972973,"avg_time_to_close_pull_request":37368854.548387095,"issues_closed_count":37,"pull_requests_closed_count":62,"pull_request_authors_count":39,"issue_authors_count":46,"avg_comments_per_issue":2.36734693877551,"avg_comments_per_pull_request":1.4516129032258065,"merged_pull_requests_count":51,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":3,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":1114875.3333333333,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":3,"past_year_pull_request_authors_count":3,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":3,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/issues","maintainers":[{"login":"etagwerker","count":10,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/etagwerker"},{"login":"mauro-oto","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mauro-oto"},{"login":"bmabey","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/bmabey"},{"login":"sikachu","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/sikachu"}],"active_maintainers":[{"login":"etagwerker","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/etagwerker"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/email_spec/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/email_spec/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/email_spec/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/email_spec/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/email_spec/codemeta","maintainers":[{"uuid":"2067","login":"sikachu","name":null,"email":null,"url":null,"packages_count":7,"html_url":"https://rubygems.org/profiles/sikachu","role":null,"created_at":"2022-11-08T10:06:14.011Z","updated_at":"2022-11-08T10:06:14.011Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/sikachu/packages"},{"uuid":"2506","login":"etagwerker","name":null,"email":null,"url":null,"packages_count":38,"html_url":"https://rubygems.org/profiles/etagwerker","role":null,"created_at":"2022-11-08T10:06:14.002Z","updated_at":"2022-11-08T10:06:14.002Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/etagwerker/packages"},{"uuid":"539","login":"bmabey","name":null,"email":null,"url":null,"packages_count":8,"html_url":"https://rubygems.org/profiles/bmabey","role":null,"created_at":"2022-11-08T10:06:13.994Z","updated_at":"2022-11-08T10:06:13.994Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/bmabey/packages"}],"registry":{"name":"rubygems.org","url":"https://rubygems.org","ecosystem":"rubygems","default":true,"packages_count":205486,"maintainers_count":68455,"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"}}],"commits":{"id":3160,"full_name":"email-spec/email-spec","default_branch":"main","total_commits":540,"total_committers":101,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":5.346534653465347,"dds":0.6666666666666667,"past_year_total_commits":10,"past_year_total_committers":3,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":3.3333333333333335,"past_year_dds":0.30000000000000004,"last_synced_at":"2026-04-27T18:14:27.553Z","last_synced_commit":"d280ef5a418688f40a2593ae9ab071ac705f9368","created_at":"2023-03-07T09:16:45.053Z","updated_at":"2026-04-27T18:09:00.636Z","committers":[{"name":"Ben Mabey","email":"ben@benmabey.com","login":"bmabey","count":180},{"name":"Ernesto Tagwerker","email":"ernesto+github@ombulabs.com","login":"etagwerker","count":62},{"name":"Mischa","email":"f.mischa@gmail.com","login":"mischa","count":51},{"name":"Maxim Chernyak","email":"max@bitsonnet.com","login":"maxim","count":27},{"name":"Patrick Muldoon","email":"doon@inoc.net","login":"doon","count":19},{"name":"Kieran Pilkington","email":"kieran@katipo.co.nz","login":null,"count":15},{"name":"Mike Moore","email":"mike@blowmage.com","login":"blowmage","count":11},{"name":"Sirko Sittig","email":"sirko.sittig@gmail.com","login":"sirkosi","count":10},{"name":"George Ardeleanu","email":"gardelea@gmail.com","login":"gardelea","count":9},{"name":"Tim Harper","email":"timcharper@gmail.com","login":"timcharper","count":7},{"name":"Matt Jankowski","email":"matt@jankowski.online","login":"mjankowski","count":7},{"name":"Rob Holland","email":"rob@inversepath.com","login":null,"count":6},{"name":"Mauro Otonelli","email":"mauro.otonelli@gmail.com","login":"mauro-oto","count":6},{"name":"Thomas Drake-Brockman","email":"thom@sfedb.com","login":"thomasfedb","count":4},{"name":"Koichi ITO","email":"koic.ito@gmail.com","login":"koic","count":4},{"name":"Ernesto Tagwerker","email":"ernesto@ombushop.com","login":null,"count":4},{"name":"dcrec1","email":"dc.rec1@gmail.com","login":"dcrec1","count":3},{"name":"Yury Kotlyarov","email":"yura@brainhouse.ru","login":null,"count":3},{"name":"Dan Dofter","email":"dan@dofter.com","login":"archfear","count":3},{"name":"David Balatero","email":"dbalatero@gmail.com","login":"dbalatero","count":3},{"name":"Dr Nic Williams","email":"drnicwilliams@gmail.com","login":"drnic","count":3},{"name":"Eito Katagiri","email":"eitoball@gmail.com","login":"eitoball","count":3},{"name":"Luke Melia","email":"luke@lukemelia.com","login":"lukemelia","count":3},{"name":"Derek Hammer","email":"derek.r.hammer@gmail.com","login":"hammerdr","count":2},{"name":"Dzmitry Kovalenok","email":"dzm.kov@gmail.com","login":"Hirurg103","count":2},{"name":"Geoff Harcourt","email":"geoff.harcourt@gmail.com","login":"geoffharcourt","count":2},{"name":"Jakub Kosinski","email":"jakub.kosinski@ghandal.net","login":"jakubkosinski","count":2},{"name":"John Cant","email":"a.johncant@gmail.com","login":"johncant","count":2},{"name":"Joseph Anthony Pasquale Holsten","email":"joseph@josephholsten.com","login":"josephholsten","count":2},{"name":"Lukasz Strzalkowski","email":"lukaszstrzalkowski@squareup.com","login":"lukaszx0","count":2},{"name":"Michael Baumgarten","email":"mbaumgarten@minofare.com","login":"baumicon","count":2},{"name":"Woody Peterson","email":"woody.peterson@gmail.com","login":"woahdae","count":2},{"name":"Chris Gunther","email":"chris@room118solutions.com","login":"cgunther","count":2},{"name":"Brian Cardarella","email":"bcardarella@gmail.com","login":"bcardarella","count":2},{"name":"Balint Erdi","email":"balint.erdi@gmail.com","login":"balinterdi","count":2},{"name":"Alex Rodionov","email":"p0deje@gmail.com","login":"p0deje","count":2},{"name":"Ben Mabey","email":"bmabey@Macintosh-2.(none)","login":null,"count":2},{"name":"Luke Melia and Lee Bankewitz","email":"developers@weplay.com","login":null,"count":2},{"name":"Ernesto Tagwerker","email":"ernesto@etagwerker.com","login":null,"count":2},{"name":"Florent Guilleux","email":"florent2@gmail.com","login":null,"count":2},{"name":"curtis","email":"curtis@flatterline.com","login":null,"count":2},{"name":"Donald Piret","email":"donald@donaldpiret.com","login":"donaldpiret","count":2},{"name":"Rich Daley","email":"rich@fishpercolator.co.uk","login":"pedantic-git","count":1},{"name":"Ronald Salas","email":"ronaldsalas@deltek.com","login":"ronaldsalas","count":1},{"name":"Ryan Bigg","email":"radarlistener@gmail.com","login":"radar","count":1},{"name":"Salimane Adjao Moustapha","email":"me@salimane.com","login":"salimane","count":1},{"name":"Sean Griffin","email":"sean@thoughtbot.com","login":"sgrif","count":1},{"name":"hube","email":"stargeneral@gmail.com","login":null,"count":1},{"name":"elevated","email":"apple@dagan-nc-mbp.encomium.net","login":null,"count":1},{"name":"ddurdik","email":"ddurdik@gmail.com","login":null,"count":1},{"name":"apocalyptiq","email":"apocalyptiq@gmail.com","login":null,"count":1},{"name":"Mark Woods","email":"mwoods@online.ie","login":null,"count":1},{"name":"Kingdon Barrett","email":"kbarret8@nd.edu","login":null,"count":1},{"name":"Joshua Muheim","email":"joshua.muheim@sientia.ch","login":null,"count":1},{"name":"Eric Wollesen","email":"eric@leadtune.com","login":null,"count":1},{"name":"Dan Pickett","email":"dpickett@enlightsolutions.com","login":null,"count":1},{"name":"Chris Thorn","email":"chris@thorn.co","login":null,"count":1},{"name":"CaptainU","email":"mischa@captainu.com","login":null,"count":1},{"name":"Andrea Longhi","email":"andrea74@mailshack.com","login":null,"count":1},{"name":"Anders Törnqist and Nicklas Ramhöj","email":"dev+ramhoj+unders@elabs.se","login":null,"count":1},{"name":"Akshay Rawat","email":"projects@akshay.cc","login":null,"count":1},{"name":"Adam Dawkins","email":"adamdawkins@Adams-MBP.home","login":null,"count":1},{"name":"Adam Berlin \u0026 Alex Kramer","email":"pair+aberlin+alex@pivotallabs.com","login":null,"count":1},{"name":"Sergio Pantoja","email":"sergio@sergiopantoja.com","login":"sergiopantoja","count":1},{"name":"Shay Frendt","email":"shay.frendt@gmail.com","login":"shayfrendt","count":1},{"name":"Tiago Teixeira","email":"tiagocmtex@gmail.com","login":"tiagotex","count":1},{"name":"codetriage-readme-bot","email":"schneemanbuys@gmail.com","login":"codetriage-readme-bot","count":1},{"name":"craigw","email":"craig@barkingiguana.com","login":"craigw","count":1},{"name":"dblock","email":"dblock@dblock.org","login":"dblock","count":1},{"name":"jsanders","email":"sanderjd@gmail.com","login":"jsanders","count":1},{"name":"retr0h","email":"john@dewey.ws","login":"retr0h","count":1},{"name":"Anton Topchii","email":"crawler@crawler.com.ua","login":"crawler","count":1},{"name":"Andrew Sullivan Cant","email":"acant@sugarcrm.com","login":"acant","count":1},{"name":"Andrew Cholakian","email":"andrew@andrewvc.com","login":"andrewvc","count":1},{"name":"Arie","email":"github@ariekanarie.nl","login":"Arie","count":1},{"name":"BananaNeil","email":"BananaNeil@gmail.com","login":"BananaNeil","count":1},{"name":"Aaron Gibralter","email":"aaron.gibralter@gmail.com","login":"agibralter","count":1},{"name":"Charles Barbier","email":"unixcharles@gmail.com","login":"unixcharles","count":1},{"name":"Dan Croak","email":"dcroak@thoughtbot.com","login":"croaky","count":1},{"name":"Eliot Sykes","email":"eliotsykes@gmail.com","login":"eliotsykes","count":1},{"name":"Eric Pierce","email":"wapcaplet88@gmail.com","login":"wapcaplet","count":1},{"name":"Eric Thomas","email":"eric.l.m.thomas@gmail.com","login":"et","count":1},{"name":"Fredrik Palmkron","email":"jonkerz@gmail.com","login":"jonkerz","count":1},{"name":"Hector E. Gomez Morales","email":"hectoregm@gmail.com","login":"hectoregm","count":1},{"name":"Hiroshi SHIBATA","email":"hsbt@ruby-lang.org","login":"hsbt","count":1},{"name":"Jared Grippe","email":"jared@jaredgrippe.com","login":"jaredatron","count":1},{"name":"Jason Garber","email":"jg@jasongarber.com","login":"jgarber","count":1},{"name":"Jeroen van Dijk","email":"jeroen@jeevidee.nl","login":"jeroenvandijk","count":1},{"name":"Joe Lencioni","email":"joe.lencioni@gmail.com","login":"lencioni","count":1},{"name":"Josh Nichols","email":"josh@technicalpickles.com","login":"technicalpickles","count":1},{"name":"Matt Burke","email":"spraints@gmail.com","login":"spraints","count":1},{"name":"Morton Jonuschat","email":"yabawock@gmail.com","login":"mjonuschat","count":1},{"name":"Murray Steele","email":"muz@h-lame.com","login":"h-lame","count":1},{"name":"Nathan","email":"me@nathanherald.com","login":"myobie","count":1},{"name":"Nicholas Rutherford","email":"nick.rutherford@gmail.com","login":"nruth","count":1},{"name":"Olle Jonsson","email":"olle.jonsson@gmail.com","login":"olleolleolle","count":1},{"name":"Philip Arndt","email":"p@arndt.io","login":"parndt","count":1},{"name":"Phillip Calvin","email":"pncalvin@gmail.com","login":"pnc","count":1},{"name":"Piotr Sarnacki","email":"drogus@gmail.com","login":"drogus","count":1},{"name":"Prem Sichanugrist","email":"s@sikac.hu","login":"sikachu","count":1},{"name":"stereobooster","email":"stereobooster@gmail.com","login":"stereobooster","count":1}],"past_year_committers":[{"name":"Matt Jankowski","email":"matt@jankowski.online","login":"mjankowski","count":7},{"name":"Ernesto Tagwerker","email":"ernesto+github@ombulabs.com","login":"etagwerker","count":2},{"name":"Geoff Harcourt","email":"geoff.harcourt@gmail.com","login":"geoffharcourt","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-28T00:00:07.369Z","repositories_count":6220714,"commits_count":899916919,"contributors_count":34881026,"owners_count":1146515,"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":"email-spec/email-spec","html_url":"https://github.com/email-spec/email-spec","last_synced_at":"2026-04-23T22:02:09.768Z","status":"error","issues_count":49,"pull_requests_count":62,"avg_time_to_close_issue":72710445.2972973,"avg_time_to_close_pull_request":37368854.548387095,"issues_closed_count":37,"pull_requests_closed_count":62,"pull_request_authors_count":39,"issue_authors_count":46,"avg_comments_per_issue":2.36734693877551,"avg_comments_per_pull_request":1.4516129032258065,"merged_pull_requests_count":51,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":3,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":1114875.3333333333,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":3,"past_year_pull_request_authors_count":3,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":3,"created_at":"2023-05-12T08:23:49.005Z","updated_at":"2026-04-23T22:02:09.768Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/email-spec%2Femail-spec/issues","issue_labels_count":{},"pull_request_labels_count":{},"issue_author_associations_count":{"NONE":41,"CONTRIBUTOR":7,"COLLABORATOR":1},"pull_request_author_associations_count":{"CONTRIBUTOR":35,"NONE":13,"COLLABORATOR":10,"MEMBER":4},"issue_authors":{"jmuheim":2,"Hirurg103":2,"christos":2,"andyw8":1,"alec-c4":1,"JohnSmall":1,"eliotsykes":1,"tansaku":1,"naofumi-fujii":1,"IlkhamGaysin":1,"akshayrawat":1,"etagwerker":1,"nicholaides":1,"stereobooster":1,"gucki":1,"pedantic-git":1,"travisp":1,"aliismayilov":1,"abrazinskas":1,"phlppn":1,"joshminnie":1,"betelgeuse":1,"thebravoman":1,"albertoperdomo":1,"AndreyKorol":1,"hlascelles":1,"Patru":1,"nicolasgarnil":1,"cheeyeo":1,"bobwhitelock":1,"sauronnikko":1,"wgc-as":1,"h0jeZvgoxFepBQ2C":1,"davidham":1,"xirukitepe":1,"ronaldsalas":1,"zismailov":1,"agibralter":1,"michaelachrisco":1,"szymon-przybyl":1,"mjankowski":1,"pedrofoliveira":1,"woodchuck":1,"Whitespace":1,"gaffneyc":1,"pisaruk":1},"pull_request_authors":{"etagwerker":9,"sirkosi":4,"geoffharcourt":3,"mauro-oto":3,"eitoball":3,"blowmage":3,"koic":2,"cgunther":2,"23inhouse":2,"stereobooster":2,"tiagotex":1,"JohnAmican":1,"mjankowski":1,"sergiopantoja":1,"crawler":1,"pedantic-git":1,"alexrothenberg":1,"hsbt":1,"eliotsykes":1,"Hirurg103":1,"myobie":1,"jeroenvandijk":1,"mmrwoods":1,"kingdonb":1,"akshayrawat":1,"codetriage-readme-bot":1,"jaredatron":1,"bmabey":1,"ronaldsalas":1,"thorncp":1,"wonda-tea-coffee":1,"salimane":1,"adamdawkins":1,"sikachu":1,"colorbox":1,"naofumi-fujii":1,"jonkerz":1,"olleolleolle":1,"acant":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-24T00:00:07.455Z","repositories_count":14385612,"issues_count":34464197,"pull_requests_count":112848539,"authors_count":11244269,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{},"past_year_pull_request_author_associations_count":{"COLLABORATOR":1,"CONTRIBUTOR":1,"NONE":1},"past_year_issue_authors":{},"past_year_pull_request_authors":{"etagwerker":1,"geoffharcourt":1,"mjankowski":1},"maintainers":[{"login":"etagwerker","count":10,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/etagwerker"},{"login":"mauro-oto","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mauro-oto"},{"login":"bmabey","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/bmabey"},{"login":"sikachu","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/sikachu"}],"active_maintainers":[{"login":"etagwerker","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/etagwerker"}]},"events":{"total":{"DeleteEvent":1,"PullRequestEvent":1,"ForkEvent":1,"WatchEvent":6},"last_year":{"DeleteEvent":1,"PullRequestEvent":1,"ForkEvent":1,"WatchEvent":3}},"keywords":["actionmailer","cucumber","cucumber-steps","mailer","minitest","pony","rspec","rspec-matchers","ruby"],"dependencies":[{"ecosystem":"rubygems","filepath":"email_spec.gemspec","sha":null,"kind":"manifest","created_at":"2022-08-06T09:15:25.111Z","updated_at":"2022-08-06T09:15:25.111Z","repository_link":"https://github.com/email-spec/email-spec/blob/main/email_spec.gemspec","dependencies":[{"id":584031942,"package_name":"htmlentities","ecosystem":"rubygems","requirements":"~\u003e 4.3.3","direct":true,"kind":"runtime","optional":false},{"id":584031943,"package_name":"launchy","ecosystem":"rubygems","requirements":"~\u003e 2.1","direct":true,"kind":"runtime","optional":false},{"id":584031944,"package_name":"mail","ecosystem":"rubygems","requirements":"~\u003e 2.7","direct":true,"kind":"runtime","optional":false},{"id":584031945,"package_name":"rake","ecosystem":"rubygems","requirements":"\u003e= 0.8.7","direct":true,"kind":"development","optional":false},{"id":584031946,"package_name":"cucumber","ecosystem":"rubygems","requirements":"~\u003e 1.3.17","direct":true,"kind":"development","optional":false},{"id":584031947,"package_name":"actionmailer","ecosystem":"rubygems","requirements":"~\u003e 4.2","direct":true,"kind":"development","optional":false},{"id":584031948,"package_name":"rack-test","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":584031949,"package_name":"rspec","ecosystem":"rubygems","requirements":"~\u003e 3.1","direct":true,"kind":"development","optional":false},{"id":584031950,"package_name":"capybara","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":584031951,"package_name":"database_cleaner","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":584031952,"package_name":"test-unit","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false}]},{"ecosystem":"rubygems","filepath":"examples/rails4_root/Gemfile","sha":null,"kind":"manifest","created_at":"2022-08-06T09:15:25.133Z","updated_at":"2022-08-06T09:15:25.133Z","repository_link":"https://github.com/email-spec/email-spec/blob/main/examples/rails4_root/Gemfile","dependencies":[{"id":584031953,"package_name":"rake","ecosystem":"rubygems","requirements":"~\u003e 10.3.2","direct":true,"kind":"runtime","optional":false},{"id":584031954,"package_name":"rails","ecosystem":"rubygems","requirements":"= 4.2.8","direct":true,"kind":"runtime","optional":false},{"id":584031955,"package_name":"sqlite3","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":584031956,"package_name":"delayed_job","ecosystem":"rubygems","requirements":"~\u003e 4.0.6","direct":true,"kind":"runtime","optional":false},{"id":584031957,"package_name":"delayed_job_active_record","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":584031958,"package_name":"mimetype-fu","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":584031959,"package_name":"minitest-rails","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":584031960,"package_name":"cucumber-rails","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":584031961,"package_name":"database_cleaner","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":584031962,"package_name":"capybara","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":584031963,"package_name":"rspec-rails","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":584031964,"package_name":"minitest-matchers","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":584031965,"package_name":"email_spec","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false}]},{"ecosystem":"rubygems","filepath":"examples/sinatra_root/Gemfile","sha":null,"kind":"manifest","created_at":"2022-08-06T09:15:25.152Z","updated_at":"2022-08-06T09:15:25.152Z","repository_link":"https://github.com/email-spec/email-spec/blob/main/examples/sinatra_root/Gemfile","dependencies":[{"id":584031966,"package_name":"sinatra","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":584031967,"package_name":"cucumber","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":584031968,"package_name":"cucumber-sinatra","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":584031969,"package_name":"pony","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":584031970,"package_name":"capybara","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":584031971,"package_name":"nokogiri","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":584031972,"package_name":"xpath","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":584031973,"package_name":"rspec","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":584031974,"package_name":"rack-test","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":584031975,"package_name":"email_spec","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/main.yml","sha":null,"kind":"manifest","created_at":"2024-11-06T19:36:33.537Z","updated_at":"2024-11-06T19:36:33.537Z","repository_link":"https://github.com/email-spec/email-spec/blob/main/.github/workflows/main.yml","dependencies":[{"id":20597963450,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":20597963451,"package_name":"ruby/setup-ruby","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"rubygems","filepath":"Gemfile","sha":null,"kind":"manifest","created_at":"2024-11-06T19:36:33.597Z","updated_at":"2024-11-06T19:36:33.597Z","repository_link":"https://github.com/email-spec/email-spec/blob/main/Gemfile","dependencies":[{"id":20597963481,"package_name":"appraisal","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":20597963482,"package_name":"debug","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":20597963483,"package_name":"net-smtp","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false}]}],"score":32.50171433323621,"created_at":"2024-12-15T21:38:07.201Z","updated_at":"2026-04-29T18:30:15.426Z","avatar_url":"https://github.com/email-spec.png","language":"Ruby","monthly_downloads":0,"readme":"## Email Spec \n\n[![CI](https://github.com/email-spec/email-spec/actions/workflows/main.yml/badge.svg)](https://github.com/email-spec/email-spec/actions/workflows/main.yml)\n\nA collection of matchers for `RSpec`, `MiniTest` and `Cucumber` steps to make testing emails go smoothly.\n\nThis library works with `ActionMailer` and `Pony`.  When using it with ActionMailer it works with ActiveRecord Mailer, and [action_mailer_cache_delivery](https://rubygems.org/gems/action_mailer_cache_delivery).\n\nIf you are testing emails in conjunction with an automated browser solution, like Selenium,\nyou will want to use [action_mailer_cache_delivery](http://rubygems.org/gems/action_mailer_cache_delivery) in your test environment.  (This is\nbecause your test process and server processes are distinct and therefore need an\nintermediate store for the emails.) ActiveRecord Mailer will also work but\nyou generally don't want to include those projects unless you need them in production.\n\n### Gem Setup\n\n```ruby\n# Gemfile\ngroup :test do\n  gem 'email_spec'\nend\n```\n\n### Cucumber\n\nTo use the steps in features put the following in your env.rb:\n\n```ruby\n# Make sure this require is after you require cucumber/rails/world.\nrequire 'email_spec' # add this line if you use spork\nrequire 'email_spec/cucumber'\n```\n\nThis will load all the helpers that the steps rely on. It will also add a `Before` hook for `Cucumber` so that emails are cleared at the start of each scenario.\n\nThen:\n\n```bash\nrails generate email_spec:steps\n```\n\nThis will give you a bunch of steps to get started with in `step_definitions/email_steps.rb`\n\nBy default, the generated file will look for email to example@example.com. You can either change this by editing the `current_email_address` method in `email_steps.rb`, or by simply specifying the target email in your features:\n\n```gherkin\nScenario: A new person signs up\n    Given I am at \"/\"\n    When I fill in \"Email\" with \"quentin@example.com\"\n    And I press \"Sign up\"\n    Then \"quentin@example.com\" should receive an email   # Specify who should receive the email\n```\n\n### Spinach\n\nTo use the helpers and matchers in your Spinach steps, add this to your env.rb:\n\n```ruby\nrequire 'email_spec/spinach'\n```\n\nCreating shared steps (as for Cucumber above) doesn't fit so well with the Spinach ethos of very compartmentalized steps, so there is no generator for Spinach. It's easy to use the helpers/matchers in your steps. For example:\n\n```ruby\nstep 'the last email sent should welcome the user' do\n  expect(last_email_sent).to have_subject('Welcome')\nend\n```\n\n### RSpec (3.1+)\n\nFirst you need to require `email_spec` in your `spec_helper.rb`:\n\n```ruby\nrequire \"email_spec\"\nrequire \"email_spec/rspec\"\n```\n\nThis will load all the helpers that the scenarios can count on. It will also add a `before(:each)` hook so that emails are cleared at the start of each scenario.\n\nIf you are upgrading to Rails 5, make sure your `rails_helper.rb` requires `spec_helper` **after** loading the environment. For example:\n```ruby\nrequire File.expand_path('../../config/environment', __FILE__)\nrequire 'spec_helper'\n```\n\n### MiniTest\n\nFirst you need to require minitest-matchers and email_spec in your test_helper.rb:\n\n```ruby\nrequire \"minitest-matchers\"\nrequire \"email_spec\"\n```\n\nYou will then need to include EmailSpec::Helpers and EmailSpec::Matchers in your test classes.\nIf you want to have access to the helpers and matchers in all of your tests you can do the following in your test_helper.rb:\n\n```ruby\nclass MiniTest::Unit::TestCase\n  include EmailSpec::Helpers\n  include EmailSpec::Matchers\nend\n```\n\nOtherwise, you will need to include them in the tests where you use them:\n\n```ruby\nclass SignupMailerTest \u003c MiniTest::Unit::TestCase\n  include EmailSpec::Helpers\n  include EmailSpec::Matchers\n  ...\nend\n```\n\nOr, if you are using the MiniTest spec DSL, it would look like this:\n\n```ruby\ndescribe SignupMailer do\n  include EmailSpec::Helpers\n  include EmailSpec::Matchers\n  ...\nend\n```\n\n### Turnip\n\nIf you're using [Turnip](https://github.com/jnicklas/turnip), you might be interested in this [conversion of the Cucumber steps into Turnip steps](https://github.com/jmuheim/base/blob/7708873e77165993c2c962894c756621be1b15cc/spec/steps/email_steps.rb).\n\n## Background Jobs\n\nIf you are using a background job, you might need to use a step to process the jobs. Another alternative is to use an inline statement for your scenario.\n\nFor example, for DelayedJob:\n\n```ruby\nDelayed::Worker.delay_jobs = false\n```\n\n## Usage\n\n### Cucumber\n\n```gherkin\nScenario: A new person signs up\n    Given I am at \"/\"\n    When I fill in \"Email\" with \"quentin@example.com\"\n    And I press \"Sign up\"\n    And I should receive an email\n    When I open the email\n    Then I should see \"confirm\" in the email body\n    When I follow \"confirm\" in the email\n    Then I should see \"Confirm your new account\"\n```\n\nFor more examples, check out examples/rails_root in the source for a small example app that implements these steps.\n\n### Cucumber Matchers (Ruby)\n\nSee RSpec Matchers (they are the same)\n\n### RSpec\n\n#### Testing In Isolation\nIt is often useful to test your mailers in isolation.  You can accomplish this by using mocks to verify that the mailer is being called in the correct place and then write focused examples for the actual mailer.  This is a simple example from the sample app found in the gem:\n\nVerify that the mailer is used correctly in the controller (this would apply to a model as well):\n\n```ruby\ndescribe \"POST /signup (#signup)\" do\n  it \"should deliver the signup email\" do\n    # expect\n    expect(UserMailer).to(receive(:deliver_signup).with(\"email@example.com\", \"Jimmy Bean\"))\n    # when\n    post :signup, \"Email\" =\u003e \"email@example.com\", \"Name\" =\u003e \"Jimmy Bean\"\n  end\nend\n```\n\nExamples for the #signup method in UserMailer:\n\n```ruby\ndescribe \"Signup Email\" do\n  include EmailSpec::Helpers\n  include EmailSpec::Matchers\n  # include ActionController::UrlWriter - old rails\n  include Rails.application.routes.url_helpers\n\n  before(:all) do\n    @email = UserMailer.create_signup(\"jojo@yahoo.com\", \"Jojo Binks\")\n  end\n\n  it \"should be set to be delivered to the email passed in\" do\n    expect(@email).to deliver_to(\"jojo@yahoo.com\")\n  end\n\n  it \"should contain the user's message in the mail body\" do\n    expect(@email).to have_body_text(/Jojo Binks/)\n  end\n\n  it \"should contain a link to the confirmation link\" do\n    expect(@email).to have_body_text(/#{confirm_account_url}/)\n  end\n\n  it \"should have the correct subject\" do\n    expect(@email).to have_subject(/Account confirmation/)\n  end\n\nend\n```\n\n#### RSpec Matchers\n\n##### reply_to(email)\nalias: `have_reply_to`\n\nThis checks that the Reply-To header's email address (the bob@example.com of\n\"Bob Saget \u003cbob@example.com\u003e\") is set to the given string.\n\n```ruby\nemail = UserMailer.create_signup(\"jojo@yahoo.com\", \"Jojo Binks\")\nexpect(email).to reply_to(\"support@myapp.com\")\n```\n\n\n##### deliver_to(\\*email_addresses)\nalias: `be_delivered_to`\n\nThis checks that the To header's email addresses (the bob@example.com of\n\"Bob Saget \u003cbob@example.com\u003e\") are set to the addresses.\n\n```ruby\nemail = UserMailer.create_signup(\"jojo@yahoo.com\", \"Jojo Binks\")\nexpect(email).to deliver_to(\"jojo@yahoo.com\")\n```\n\n\n##### deliver_from(email)\nalias: `be_delivered_from`\n\nThis checks that the From header's email address (the bob@example.com of\n\"Bob Saget \u003cbob@example.com\u003e\") is set to the given string.\n\n```ruby\nemail = UserMailer.create_signup(\"jojo@yahoo.com\", \"Jojo Binks\")\nexpect(email).to deliver_from(\"sally@yahoo.com\")\n```\n\n\n##### bcc_to(\\*email_addresses)\n\nThis checks that the BCC header's email addresses (the bob@example.com of\n\"Bob Saget \u003cbob@example.com\u003e\") are set to the addresses.\n\n```ruby\nemail = UserMailer.create_signup(\"jojo@yahoo.com\", \"Jojo Binks\")\nexpect(email).to bcc_to(\"sue@yahoo.com\", \"bill@yahoo.com\")\n```\n\n\n##### cc_to(\\*email_addresses)\n\nThis checks that the CC header's email addresses (the bob@example.com of\n\"Bob Saget \u003cbob@example.com\u003e\") are set to the addresses.\n\n```ruby\nemail = UserMailer.create_signup(\"jojo@yahoo.com\", \"Jojo Binks\")\nexpect(email).to cc_to(\"sue@yahoo.com\", \"bill@yahoo.com\")\n```\n\n\n##### have_subject(subject)\n\nThis checks that the Subject header's value is set to the given subject.\n\n```ruby\nemail = UserMailer.create_signup(\"jojo@yahoo.com\", \"Jojo Binks\")\nexpect(email).to have_subject(\"Welcome!\")\n```\n\n\n##### include_email_with_subject(subject)\nNote: subject can be either a String or a Regexp\n\nThis checks that one of the given emails' subjects includes the subject.\n\n```ruby\nemail = UserMailer.create_signup(\"jojo@yahoo.com\", \"Jojo Binks\")\nemail2 = UserMailer.forgot_password(\"jojo@yahoo.com\", \"Jojo Binks\")\nexpect([email, email2]).to include_email_with_subject(\"Welcome!\")\n```\n\n\n##### have_body_text(text)\nNote: text can be either a String or a Regexp\n\nThis checks that the text of the body has the given body.\n\n```ruby\nemail = UserMailer.create_signup(\"jojo@yahoo.com\", \"Jojo Binks\")\nexpect(email).to have_body_text(/Hi Jojo Binks,/)\n```\n\n\nYou can specify which part in multipart to check with `in_html_part` or\n`in_text_part`.\n\n```ruby\nemail = UserMailer.(\"jojo@yahoo.com\", \"Jojo Binks\")\nexpect(email).to have_body_text(/This is html/).in_html_part\nexpect(email).to have_body_text(/This is text/).in_text_part\n```\n\n##### have_header(key, value)\n\nThis checks that the expected key/value pair is in the headers of the email.\n\n```ruby\nemail = UserMailer.create_signup(\"jojo@yahoo.com\", \"Jojo Binks\")\nexpect(email).to have_header(\"X-Campaign\", \"1234abc\")\n```\n\n#### Using the helpers when not testing in isolation\n\nDon't. :)  Seriously, if you do just take a look at the helpers and use them as you wish.\n\n### MiniTest\n\nYou will use EmailSpec in your tests the same way you use it in your specs. The only difference is the use of MiniTest's `must` instead of Rspec's `should`:\n\n```ruby\nemail = UserMailer.create_signup(\"jojo@yahoo.com\", \"Jojo Binks\")\nemail.must deliver_to(\"jojo@yahoo.com\")\n```\n\nOr, you can use the matcher as an expectation:\n\n```ruby\nemail = UserMailer.create_signup \"jojo@yahoo.com\", \"Jojo Binks\"\nemail.must_deliver_to \"jojo@yahoo.com\"\n```\n\nAnd of course you can use the matcher as an assertion:\n\n```ruby\nemail = UserMailer.create_signup \"jojo@yahoo.com\", \"Jojo Binks\"\nassert_must deliver_to(\"jojo@yahoo.com\"), email\n```\n\n## Issue triage [![Open Source Helpers](https://www.codetriage.com/email-spec/email-spec/badges/users.svg)](https://www.codetriage.com/email-spec/email-spec)\n\nYou can contribute by triaging issues which may include reproducing bug reports or asking for vital information, such as version numbers or reproduction instructions. If you would like to start triaging issues, one easy way to get started is to [subscribe to email-spec on CodeTriage](https://www.codetriage.com/email-spec/email-spec).\n\n## Original Authors\n\nBen Mabey, Aaron Gibralter, Mischa Fierer\n\nPlease see [Changelog.md](Changelog.md) for upcoming changes and other contributors.\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["activerecord","activejob","mvc","rubygems","tidelift","polyglot-release","crash-reporting","rubocop","sinatra","rack"],"project_url":"https://ruby.ecosyste.ms/api/v1/projects/176","html_url":"https://ruby.ecosyste.ms/projects/176"}