{"id":556,"name":null,"description":"Adds multipart POST capability to net/http","url":"https://github.com/socketry/multipart-post","last_synced_at":"2026-04-30T01:30:20.616Z","repository":{"id":422169,"uuid":"42073","full_name":"socketry/multipart-post","owner":"socketry","description":"Adds multipart POST capability to net/http","archived":false,"fork":false,"pushed_at":"2024-09-03T22:18:14.000Z","size":181,"stargazers_count":295,"open_issues_count":10,"forks_count":71,"subscribers_count":10,"default_branch":"main","last_synced_at":"2026-04-04T02:15:32.876Z","etag":null,"topics":[],"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/socketry.png","metadata":{"files":{"readme":"readme.md","changelog":"changelog.md","contributing":null,"funding":null,"license":"license.md","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-08-12T17:33:41.000Z","updated_at":"2026-03-03T05:57:47.000Z","dependencies_parsed_at":"2024-09-16T19:25:51.579Z","dependency_job_id":"9f15acc1-4255-4d90-a4aa-d88fce53b89b","html_url":"https://github.com/socketry/multipart-post","commit_stats":{"total_commits":168,"total_committers":40,"mean_commits":4.2,"dds":0.7261904761904762,"last_synced_commit":"cce3634876b74e08a6c51d02db00070a82dc8cc4"},"previous_names":["nicksieger/multipart-post"],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/socketry/multipart-post","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/socketry","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/sbom","scorecard":{"id":835647,"data":{"date":"2025-08-11","repo":{"name":"github.com/socketry/multipart-post","commit":"cce3634876b74e08a6c51d02db00070a82dc8cc4"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.2,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 1 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":"Code-Review","score":2,"reason":"Found 7/29 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"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":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: topLevel 'contents' permission set to 'read': .github/workflows/coverage.yaml:6","Info: topLevel 'contents' permission set to 'read': .github/workflows/documentation.yaml:10","Info: topLevel 'contents' permission set to 'read': .github/workflows/test-external.yaml:6","Info: topLevel 'contents' permission set to 'read': .github/workflows/test.yaml:6","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":"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/coverage.yaml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/coverage.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/coverage.yaml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/coverage.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/coverage.yaml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/coverage.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/coverage.yaml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/coverage.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/coverage.yaml:48: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/coverage.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/coverage.yaml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/coverage.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/documentation.yaml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/documentation.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/documentation.yaml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/documentation.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/documentation.yaml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/documentation.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/documentation.yaml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/documentation.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-external.yaml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/test-external.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-external.yaml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/test-external.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yaml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/test.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yaml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/test.yaml/main?enable=pin","Info:   0 out of   9 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   5 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":"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: license.md:0","Info: FSF or OSI recognized license: MIT License: license.md:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"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":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/socketry/.github/security.md:1","Info: Found linked content: github.com/socketry/.github/security.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/socketry/.github/security.md:1","Info: Found text in security policy: github.com/socketry/.github/security.md:1"],"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 17 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-23T18:58:09.203Z","repository_id":422169,"created_at":"2025-08-23T18:58:09.203Z","updated_at":"2025-08-23T18:58:09.203Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31549986,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"online","status_checked_at":"2026-04-08T02:00:06.127Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"socketry","name":"Socketry","uuid":"22138037","kind":"organization","description":"Modern asynchronous and timeout-capable I/O for Ruby.","email":"contact@socketry.io","website":"https://socketry.io","location":null,"twitter":"ioquatix","company":null,"icon_url":"https://avatars.githubusercontent.com/u/22138037?v=4","repositories_count":149,"last_synced_at":"2025-10-21T07:56:11.543Z","metadata":{"has_sponsors_listing":false,"funding":{"custom":"https://github.com/socketry/community/#funding","github":"ioquatix"}},"html_url":"https://github.com/socketry","funding_links":["https://github.com/socketry/community/#funding","https://github.com/sponsors/ioquatix"],"total_stars":12727,"followers":196,"following":0,"created_at":"2022-11-02T16:17:22.458Z","updated_at":"2025-10-21T07:56:11.543Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/socketry","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/socketry/repositories"},"packages":[{"id":5302813,"name":"rb-multipart-post","ecosystem":"conda","description":null,"homepage":"https://rubygems.org/gems/multipart-post","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/socketry/multipart-post","keywords_array":[],"namespace":null,"versions_count":1,"first_release_published_at":"2019-09-01T08:27:15.000Z","latest_release_published_at":"2019-09-01T08:27:15.000Z","latest_release_number":"2.1.1","last_synced_at":"2026-04-01T13:29:39.104Z","created_at":"2022-10-03T16:13:29.604Z","updated_at":"2026-04-01T13:29:54.028Z","registry_url":"https://anaconda.org/conda-forge/rb-multipart-post","install_command":"conda install -c conda-forge rb-multipart-post","documentation_url":null,"metadata":{},"repo_metadata":{"id":422169,"uuid":"42073","full_name":"socketry/multipart-post","owner":"socketry","description":"Adds multipart POST capability to net/http","archived":false,"fork":false,"pushed_at":"2024-09-03T22:18:14.000Z","size":181,"stargazers_count":295,"open_issues_count":10,"forks_count":71,"subscribers_count":10,"default_branch":"main","last_synced_at":"2026-03-26T16:58:50.059Z","etag":null,"topics":[],"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/socketry.png","metadata":{"files":{"readme":"readme.md","changelog":"changelog.md","contributing":null,"funding":null,"license":"license.md","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-08-12T17:33:41.000Z","updated_at":"2026-03-03T05:57:47.000Z","dependencies_parsed_at":"2024-09-16T19:25:51.579Z","dependency_job_id":"9f15acc1-4255-4d90-a4aa-d88fce53b89b","html_url":"https://github.com/socketry/multipart-post","commit_stats":{"total_commits":168,"total_committers":40,"mean_commits":4.2,"dds":0.7261904761904762,"last_synced_commit":"cce3634876b74e08a6c51d02db00070a82dc8cc4"},"previous_names":["nicksieger/multipart-post"],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/socketry/multipart-post","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/socketry","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/sbom","scorecard":{"id":835647,"data":{"date":"2025-08-11","repo":{"name":"github.com/socketry/multipart-post","commit":"cce3634876b74e08a6c51d02db00070a82dc8cc4"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.2,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 1 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":"Code-Review","score":2,"reason":"Found 7/29 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"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":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: topLevel 'contents' permission set to 'read': .github/workflows/coverage.yaml:6","Info: topLevel 'contents' permission set to 'read': .github/workflows/documentation.yaml:10","Info: topLevel 'contents' permission set to 'read': .github/workflows/test-external.yaml:6","Info: topLevel 'contents' permission set to 'read': .github/workflows/test.yaml:6","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":"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/coverage.yaml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/coverage.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/coverage.yaml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/coverage.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/coverage.yaml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/coverage.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/coverage.yaml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/coverage.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/coverage.yaml:48: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/coverage.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/coverage.yaml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/coverage.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/documentation.yaml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/documentation.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/documentation.yaml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/documentation.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/documentation.yaml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/documentation.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/documentation.yaml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/documentation.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-external.yaml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/test-external.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-external.yaml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/test-external.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yaml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/test.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yaml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/test.yaml/main?enable=pin","Info:   0 out of   9 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   5 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":"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: license.md:0","Info: FSF or OSI recognized license: MIT License: license.md:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"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":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/socketry/.github/security.md:1","Info: Found linked content: github.com/socketry/.github/security.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/socketry/.github/security.md:1","Info: Found text in security policy: github.com/socketry/.github/security.md:1"],"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 17 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-23T18:58:09.203Z","repository_id":422169,"created_at":"2025-08-23T18:58:09.203Z","updated_at":"2025-08-23T18:58:09.203Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31283543,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"socketry","name":"Socketry","uuid":"22138037","kind":"organization","description":"Modern asynchronous and timeout-capable I/O for Ruby.","email":"contact@socketry.io","website":"https://socketry.io","location":null,"twitter":"ioquatix","company":null,"icon_url":"https://avatars.githubusercontent.com/u/22138037?v=4","repositories_count":149,"last_synced_at":"2025-10-21T07:56:11.543Z","metadata":{"has_sponsors_listing":false,"funding":{"custom":"https://github.com/socketry/community/#funding","github":"ioquatix"}},"html_url":"https://github.com/socketry","funding_links":["https://github.com/socketry/community/#funding","https://github.com/sponsors/ioquatix"],"total_stars":12727,"followers":196,"following":0,"created_at":"2022-11-02T16:17:22.458Z","updated_at":"2025-10-21T07:56:11.543Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/socketry","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/socketry/repositories"},"tags":[{"name":"v2.4.1","sha":"8cb653603ac24494efff5cf4ecb6504db08d5c11","kind":"commit","published_at":"2024-05-07T10:08:39.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.4.1","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.4.1/manifests"},{"name":"v2.4.0","sha":"2b1235a25bc3ff03d907785caa83f09c69d6f501","kind":"commit","published_at":"2024-02-07T10:59:56.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.4.0","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.4.0/manifests"},{"name":"v2.3.0","sha":"e12539c5d1d8fd0331e8849bf5884ee3a9a782af","kind":"commit","published_at":"2023-01-26T01:16:41.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.3.0","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.3.0/manifests"},{"name":"v2.2.3","sha":"31500a7008d0e5827c8522d6d1bde3452237b578","kind":"commit","published_at":"2022-06-10T06:00:07.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.2.3","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.2.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.2.3/manifests"},{"name":"v2.2.2","sha":"e52ef1e11b1f1edfc3ae16eff24a71a53745c967","kind":"commit","published_at":"2022-06-09T14:22:13.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.2.2","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.2.2/manifests"},{"name":"v2.2.0","sha":"f99699aa50d7612e798d611145fb17ac6e14d8e7","kind":"commit","published_at":"2022-06-03T01:16:18.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.2.0","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.2.0/manifests"},{"name":"v2.1.1","sha":"a7d238fdaebef15e70ec98f27c925fbb873d4d49","kind":"tag","published_at":"2019-05-13T11:34:34.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.1.1","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.1.1/manifests"},{"name":"v2.1.0","sha":"2082a728e82b529486c03376721f1b15c474460f","kind":"tag","published_at":"2019-05-08T00:56:31.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.1.0","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.1.0/manifests"},{"name":"v2.0.0","sha":"678756080c51d803498241dc944a43b44fe853d8","kind":"tag","published_at":"2013-12-21T18:17:25.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.0.0","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.0.0/manifests"},{"name":"v1.2.0","sha":"7d8b74888bf13f702a9590212533f869f0f43f64","kind":"tag","published_at":"2013-02-26T14:21:42.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.2.0","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.2.0/manifests"},{"name":"v1.1.5","sha":"c17ab46f4af81b7f8c615f9f3248bdb5595ed819","kind":"tag","published_at":"2012-02-13T04:16:51.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.1.5","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.1.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.1.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.5/manifests"},{"name":"v1.1.4","sha":"76433318a73b388d17507bfd4fc956e3d07ff560","kind":"tag","published_at":"2011-11-23T17:05:30.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.1.4","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.1.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.1.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.4/manifests"},{"name":"v1.1.3","sha":"ea3e6975ea96cf154e45268fbbbd27e34e5ab017","kind":"commit","published_at":"2011-07-25T18:25:07.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.1.3","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.1.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.3/manifests"},{"name":"v1.1.2","sha":"8752b5886be1076e02fdcb14b9ee27ce58ae7c3e","kind":"commit","published_at":"2011-05-24T15:42:27.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.1.2","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.2/manifests"},{"name":"v1.1.1","sha":"6cd56ba465a2ade7e0c9cc6884cb9b99a0bf4f4c","kind":"commit","published_at":"2011-05-13T16:42:09.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.1.1","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.1/manifests"},{"name":"v1.1.0","sha":"c89315dcda35aafaff2790ef361337273d502ed1","kind":"commit","published_at":"2011-01-11T16:50:39.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.1.0","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.0/manifests"},{"name":"v1.0.1","sha":"e640d5a2cd3a4fe3342e95b8286be6188d03d2e8","kind":"commit","published_at":"2010-04-27T16:28:39.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.0.1","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.0.1/manifests"},{"name":"v1.0","sha":"b4d7cc51cdea9587673866992083f65148865e7e","kind":"commit","published_at":"2009-02-12T17:52:19.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.0","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.0/manifests"},{"name":"0.1","sha":"726081db47151a140f2205fc4deb8cfcdfaedd36","kind":"commit","published_at":"2008-08-13T05:55:16.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/0.1","html_url":"https://github.com/socketry/multipart-post/releases/tag/0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/0.1/manifests"}]},"repo_metadata_updated_at":"2026-04-01T13:29:54.027Z","dependent_packages_count":1,"downloads":9902,"downloads_period":"total","dependent_repos_count":1,"rankings":{"downloads":null,"dependent_repos_count":24.37746394530665,"dependent_packages_count":28.978491940715607,"stargazers_count":22.87539298368182,"forks_count":21.697689505464343,"docker_downloads_count":null,"average":24.482259593792104},"purl":"pkg:conda/rb-multipart-post?repository_url=https://conda-forge.org","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/conda/rb-multipart-post","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/conda/rb-multipart-post","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/conda/rb-multipart-post/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-03-18T23:28:57.863Z","issues_count":37,"pull_requests_count":68,"avg_time_to_close_issue":76015473.72413793,"avg_time_to_close_pull_request":8520477.909090908,"issues_closed_count":29,"pull_requests_closed_count":66,"pull_request_authors_count":38,"issue_authors_count":36,"avg_comments_per_issue":3.972972972972973,"avg_comments_per_pull_request":1.3235294117647058,"merged_pull_requests_count":56,"bot_issues_count":0,"bot_pull_requests_count":1,"past_year_issues_count":1,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":1.0,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":1,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/issues","maintainers":[{"login":"ioquatix","count":16,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ioquatix"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/rb-multipart-post/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/rb-multipart-post/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/rb-multipart-post/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/rb-multipart-post/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/rb-multipart-post/codemeta","maintainers":[],"registry":{"name":"conda-forge.org","url":"https://conda-forge.org","ecosystem":"conda","default":false,"packages_count":20636,"maintainers_count":0,"namespaces_count":0,"keywords_count":0,"github":"conda-forge","metadata":{"kind":"conda-forge","key":"CondaForge","api":"https://conda.anaconda.org","funded_packages_count":2266},"icon_url":"https://github.com/conda-forge.png","created_at":"2022-10-03T15:37:08.743Z","updated_at":"2026-04-03T06:46:36.736Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/namespaces"}},{"id":12278742,"name":"multipart-post","ecosystem":"rubygems","description":"A multipart form post accessory for Net::HTTP.","homepage":"https://github.com/socketry/multipart-post","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/socketry/multipart-post","keywords_array":[],"namespace":null,"versions_count":19,"first_release_published_at":"2009-07-25T18:06:10.000Z","latest_release_published_at":"2024-05-07T10:09:00.468Z","latest_release_number":"2.4.1","last_synced_at":"2026-04-24T22:32:06.521Z","created_at":"2025-10-07T04:29:12.275Z","updated_at":"2026-04-24T22:33:47.787Z","registry_url":"https://gem.coop/gems/multipart-post","install_command":"gem install multipart-post -s https://gem.coop","documentation_url":"http://www.rubydoc.info/gems/multipart-post/","metadata":{"funding":null},"repo_metadata":{"id":422169,"uuid":"42073","full_name":"socketry/multipart-post","owner":"socketry","description":"Adds multipart POST capability to net/http","archived":false,"fork":false,"pushed_at":"2024-09-03T22:18:14.000Z","size":181,"stargazers_count":295,"open_issues_count":10,"forks_count":71,"subscribers_count":10,"default_branch":"main","last_synced_at":"2026-04-04T02:15:32.876Z","etag":null,"topics":[],"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/socketry.png","metadata":{"files":{"readme":"readme.md","changelog":"changelog.md","contributing":null,"funding":null,"license":"license.md","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-08-12T17:33:41.000Z","updated_at":"2026-03-03T05:57:47.000Z","dependencies_parsed_at":"2024-09-16T19:25:51.579Z","dependency_job_id":"9f15acc1-4255-4d90-a4aa-d88fce53b89b","html_url":"https://github.com/socketry/multipart-post","commit_stats":{"total_commits":168,"total_committers":40,"mean_commits":4.2,"dds":0.7261904761904762,"last_synced_commit":"cce3634876b74e08a6c51d02db00070a82dc8cc4"},"previous_names":["nicksieger/multipart-post"],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/socketry/multipart-post","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/socketry","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/sbom","scorecard":{"id":835647,"data":{"date":"2025-08-11","repo":{"name":"github.com/socketry/multipart-post","commit":"cce3634876b74e08a6c51d02db00070a82dc8cc4"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.2,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 1 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":"Code-Review","score":2,"reason":"Found 7/29 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"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":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: topLevel 'contents' permission set to 'read': .github/workflows/coverage.yaml:6","Info: topLevel 'contents' permission set to 'read': .github/workflows/documentation.yaml:10","Info: topLevel 'contents' permission set to 'read': .github/workflows/test-external.yaml:6","Info: topLevel 'contents' permission set to 'read': .github/workflows/test.yaml:6","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":"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/coverage.yaml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/coverage.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/coverage.yaml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/coverage.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/coverage.yaml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/coverage.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/coverage.yaml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/coverage.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/coverage.yaml:48: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/coverage.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/coverage.yaml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/coverage.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/documentation.yaml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/documentation.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/documentation.yaml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/documentation.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/documentation.yaml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/documentation.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/documentation.yaml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/documentation.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-external.yaml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/test-external.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-external.yaml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/test-external.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yaml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/test.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yaml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/test.yaml/main?enable=pin","Info:   0 out of   9 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   5 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":"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: license.md:0","Info: FSF or OSI recognized license: MIT License: license.md:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"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":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/socketry/.github/security.md:1","Info: Found linked content: github.com/socketry/.github/security.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/socketry/.github/security.md:1","Info: Found text in security policy: github.com/socketry/.github/security.md:1"],"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 17 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-23T18:58:09.203Z","repository_id":422169,"created_at":"2025-08-23T18:58:09.203Z","updated_at":"2025-08-23T18:58:09.203Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31549986,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"online","status_checked_at":"2026-04-08T02:00:06.127Z","response_time":54,"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":"socketry","name":"Socketry","uuid":"22138037","kind":"organization","description":"Modern asynchronous and timeout-capable I/O for Ruby.","email":"contact@socketry.io","website":"https://socketry.io","location":null,"twitter":"ioquatix","company":null,"icon_url":"https://avatars.githubusercontent.com/u/22138037?v=4","repositories_count":149,"last_synced_at":"2025-10-21T07:56:11.543Z","metadata":{"has_sponsors_listing":false,"funding":{"custom":"https://github.com/socketry/community/#funding","github":"ioquatix"}},"html_url":"https://github.com/socketry","funding_links":["https://github.com/socketry/community/#funding","https://github.com/sponsors/ioquatix"],"total_stars":12727,"followers":196,"following":0,"created_at":"2022-11-02T16:17:22.458Z","updated_at":"2025-10-21T07:56:11.543Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/socketry","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/socketry/repositories"},"tags":[{"name":"v2.4.1","sha":"8cb653603ac24494efff5cf4ecb6504db08d5c11","kind":"commit","published_at":"2024-05-07T10:08:39.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.4.1","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.4.1/manifests"},{"name":"v2.4.0","sha":"2b1235a25bc3ff03d907785caa83f09c69d6f501","kind":"commit","published_at":"2024-02-07T10:59:56.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.4.0","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.4.0/manifests"},{"name":"v2.3.0","sha":"e12539c5d1d8fd0331e8849bf5884ee3a9a782af","kind":"commit","published_at":"2023-01-26T01:16:41.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.3.0","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.3.0/manifests"},{"name":"v2.2.3","sha":"31500a7008d0e5827c8522d6d1bde3452237b578","kind":"commit","published_at":"2022-06-10T06:00:07.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.2.3","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.2.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.2.3/manifests"},{"name":"v2.2.2","sha":"e52ef1e11b1f1edfc3ae16eff24a71a53745c967","kind":"commit","published_at":"2022-06-09T14:22:13.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.2.2","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.2.2/manifests"},{"name":"v2.2.0","sha":"f99699aa50d7612e798d611145fb17ac6e14d8e7","kind":"commit","published_at":"2022-06-03T01:16:18.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.2.0","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.2.0/manifests"},{"name":"v2.1.1","sha":"a7d238fdaebef15e70ec98f27c925fbb873d4d49","kind":"tag","published_at":"2019-05-13T11:34:34.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.1.1","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.1.1/manifests"},{"name":"v2.1.0","sha":"2082a728e82b529486c03376721f1b15c474460f","kind":"tag","published_at":"2019-05-08T00:56:31.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.1.0","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.1.0/manifests"},{"name":"v2.0.0","sha":"678756080c51d803498241dc944a43b44fe853d8","kind":"tag","published_at":"2013-12-21T18:17:25.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.0.0","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.0.0/manifests"},{"name":"v1.2.0","sha":"7d8b74888bf13f702a9590212533f869f0f43f64","kind":"tag","published_at":"2013-02-26T14:21:42.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.2.0","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.2.0/manifests"},{"name":"v1.1.5","sha":"c17ab46f4af81b7f8c615f9f3248bdb5595ed819","kind":"tag","published_at":"2012-02-13T04:16:51.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.1.5","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.1.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.1.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.5/manifests"},{"name":"v1.1.4","sha":"76433318a73b388d17507bfd4fc956e3d07ff560","kind":"tag","published_at":"2011-11-23T17:05:30.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.1.4","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.1.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.1.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.4/manifests"},{"name":"v1.1.3","sha":"ea3e6975ea96cf154e45268fbbbd27e34e5ab017","kind":"commit","published_at":"2011-07-25T18:25:07.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.1.3","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.1.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.3/manifests"},{"name":"v1.1.2","sha":"8752b5886be1076e02fdcb14b9ee27ce58ae7c3e","kind":"commit","published_at":"2011-05-24T15:42:27.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.1.2","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.2/manifests"},{"name":"v1.1.1","sha":"6cd56ba465a2ade7e0c9cc6884cb9b99a0bf4f4c","kind":"commit","published_at":"2011-05-13T16:42:09.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.1.1","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.1/manifests"},{"name":"v1.1.0","sha":"c89315dcda35aafaff2790ef361337273d502ed1","kind":"commit","published_at":"2011-01-11T16:50:39.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.1.0","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.0/manifests"},{"name":"v1.0.1","sha":"e640d5a2cd3a4fe3342e95b8286be6188d03d2e8","kind":"commit","published_at":"2010-04-27T16:28:39.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.0.1","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.0.1/manifests"},{"name":"v1.0","sha":"b4d7cc51cdea9587673866992083f65148865e7e","kind":"commit","published_at":"2009-02-12T17:52:19.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.0","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.0/manifests"},{"name":"0.1","sha":"726081db47151a140f2205fc4deb8cfcdfaedd36","kind":"commit","published_at":"2008-08-13T05:55:16.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/0.1","html_url":"https://github.com/socketry/multipart-post/releases/tag/0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/0.1/manifests"}]},"repo_metadata_updated_at":"2026-04-24T22:33:47.759Z","dependent_packages_count":0,"downloads":871569206,"downloads_period":"total","dependent_repos_count":0,"rankings":{"downloads":0.016219547799007365,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":0.07028470712903191,"average":0.02162606373200982},"purl":"pkg:gem/multipart-post?repository_url=https://gem.coop","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/rubygems/multipart-post","docker_dependents_count":2421,"docker_downloads_count":1356977955,"usage_url":"https://repos.ecosyste.ms/usage/rubygems/multipart-post","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/rubygems/multipart-post/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-04-16T19:01:35.456Z","issues_count":37,"pull_requests_count":68,"avg_time_to_close_issue":76015473.72413793,"avg_time_to_close_pull_request":8520477.909090908,"issues_closed_count":29,"pull_requests_closed_count":66,"pull_request_authors_count":38,"issue_authors_count":36,"avg_comments_per_issue":3.972972972972973,"avg_comments_per_pull_request":1.3235294117647058,"merged_pull_requests_count":56,"bot_issues_count":0,"bot_pull_requests_count":1,"past_year_issues_count":1,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":1.0,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":1,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/issues","maintainers":[{"login":"ioquatix","count":16,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ioquatix"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/multipart-post/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/multipart-post/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/multipart-post/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/multipart-post/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/multipart-post/codemeta","maintainers":[{"uuid":"44200","login":"ioquatix","name":null,"email":null,"url":null,"packages_count":250,"html_url":"https://gem.coop/profiles/ioquatix","role":null,"created_at":"2025-10-07T23:52:25.607Z","updated_at":"2025-10-07T23:52:25.607Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/ioquatix/packages"}],"registry":{"name":"gem.coop","url":"https://gem.coop","ecosystem":"rubygems","default":false,"packages_count":190306,"maintainers_count":67453,"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":8615995,"name":"github.com/socketry/multipart-post","ecosystem":"go","description":null,"homepage":null,"licenses":"mit","normalized_licenses":["MIT"],"repository_url":"https://github.com/socketry/multipart-post","keywords_array":[],"namespace":null,"versions_count":17,"first_release_published_at":"2010-04-27T16:28:39.000Z","latest_release_published_at":"2024-05-07T10:08:39.000Z","latest_release_number":"v2.4.1+incompatible","last_synced_at":"2026-04-24T23:01:34.303Z","created_at":"2023-12-03T01:56:22.717Z","updated_at":"2026-04-24T23:01:34.303Z","registry_url":"https://pkg.go.dev/github.com/socketry/multipart-post","install_command":"go get github.com/socketry/multipart-post","documentation_url":"https://pkg.go.dev/github.com/socketry/multipart-post#section-documentation","metadata":{},"repo_metadata":{"id":422169,"uuid":"42073","full_name":"socketry/multipart-post","owner":"socketry","description":"Adds multipart POST capability to net/http","archived":false,"fork":false,"pushed_at":"2024-09-03T22:18:14.000Z","size":181,"stargazers_count":295,"open_issues_count":10,"forks_count":71,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-10-11T11:06:25.422Z","etag":null,"topics":[],"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/socketry.png","metadata":{"files":{"readme":"readme.md","changelog":"changelog.md","contributing":null,"funding":null,"license":"license.md","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-08-12T17:33:41.000Z","updated_at":"2025-09-28T12:40:09.000Z","dependencies_parsed_at":"2024-09-16T19:25:51.579Z","dependency_job_id":"9f15acc1-4255-4d90-a4aa-d88fce53b89b","html_url":"https://github.com/socketry/multipart-post","commit_stats":{"total_commits":168,"total_committers":40,"mean_commits":4.2,"dds":0.7261904761904762,"last_synced_commit":"cce3634876b74e08a6c51d02db00070a82dc8cc4"},"previous_names":["nicksieger/multipart-post"],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/socketry/multipart-post","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/socketry","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/sbom","scorecard":{"id":835647,"data":{"date":"2025-08-11","repo":{"name":"github.com/socketry/multipart-post","commit":"cce3634876b74e08a6c51d02db00070a82dc8cc4"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.2,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 1 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":"Code-Review","score":2,"reason":"Found 7/29 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"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":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: topLevel 'contents' permission set to 'read': .github/workflows/coverage.yaml:6","Info: topLevel 'contents' permission set to 'read': .github/workflows/documentation.yaml:10","Info: topLevel 'contents' permission set to 'read': .github/workflows/test-external.yaml:6","Info: topLevel 'contents' permission set to 'read': .github/workflows/test.yaml:6","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":"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/coverage.yaml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/coverage.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/coverage.yaml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/coverage.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/coverage.yaml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/coverage.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/coverage.yaml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/coverage.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/coverage.yaml:48: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/coverage.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/coverage.yaml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/coverage.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/documentation.yaml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/documentation.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/documentation.yaml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/documentation.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/documentation.yaml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/documentation.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/documentation.yaml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/documentation.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-external.yaml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/test-external.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-external.yaml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/test-external.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yaml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/test.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yaml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/test.yaml/main?enable=pin","Info:   0 out of   9 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   5 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":"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: license.md:0","Info: FSF or OSI recognized license: MIT License: license.md:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"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":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/socketry/.github/security.md:1","Info: Found linked content: github.com/socketry/.github/security.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/socketry/.github/security.md:1","Info: Found text in security policy: github.com/socketry/.github/security.md:1"],"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 17 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-23T18:58:09.203Z","repository_id":422169,"created_at":"2025-08-23T18:58:09.203Z","updated_at":"2025-08-23T18:58:09.203Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279013266,"owners_count":26085250,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-12T02:00:06.719Z","response_time":53,"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":"socketry","name":"Socketry","uuid":"22138037","kind":"organization","description":"Modern asynchronous and timeout-capable I/O for Ruby.","email":"contact@socketry.io","website":"https://socketry.io","location":null,"twitter":"ioquatix","company":null,"icon_url":"https://avatars.githubusercontent.com/u/22138037?v=4","repositories_count":147,"last_synced_at":"2025-09-30T23:59:09.708Z","metadata":{"has_sponsors_listing":false,"funding":{"custom":"https://github.com/socketry/community/#funding","github":"ioquatix"}},"html_url":"https://github.com/socketry","funding_links":["https://github.com/socketry/community/#funding","https://github.com/sponsors/ioquatix"],"total_stars":12564,"followers":193,"following":0,"created_at":"2022-11-02T16:17:22.458Z","updated_at":"2025-09-30T23:59:09.708Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/socketry","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/socketry/repositories"},"tags":[{"name":"v2.4.1","sha":"8cb653603ac24494efff5cf4ecb6504db08d5c11","kind":"commit","published_at":"2024-05-07T10:08:39.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.4.1","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.4.1/manifests"},{"name":"v2.4.0","sha":"2b1235a25bc3ff03d907785caa83f09c69d6f501","kind":"commit","published_at":"2024-02-07T10:59:56.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.4.0","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.4.0/manifests"},{"name":"v2.3.0","sha":"e12539c5d1d8fd0331e8849bf5884ee3a9a782af","kind":"commit","published_at":"2023-01-26T01:16:41.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.3.0","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.3.0/manifests"},{"name":"v2.2.3","sha":"31500a7008d0e5827c8522d6d1bde3452237b578","kind":"commit","published_at":"2022-06-10T06:00:07.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.2.3","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.2.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.2.3/manifests"},{"name":"v2.2.2","sha":"e52ef1e11b1f1edfc3ae16eff24a71a53745c967","kind":"commit","published_at":"2022-06-09T14:22:13.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.2.2","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.2.2/manifests"},{"name":"v2.2.0","sha":"f99699aa50d7612e798d611145fb17ac6e14d8e7","kind":"commit","published_at":"2022-06-03T01:16:18.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.2.0","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.2.0/manifests"},{"name":"v2.1.1","sha":"a7d238fdaebef15e70ec98f27c925fbb873d4d49","kind":"tag","published_at":"2019-05-13T11:34:34.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.1.1","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.1.1/manifests"},{"name":"v2.1.0","sha":"2082a728e82b529486c03376721f1b15c474460f","kind":"tag","published_at":"2019-05-08T00:56:31.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.1.0","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.1.0/manifests"},{"name":"v2.0.0","sha":"678756080c51d803498241dc944a43b44fe853d8","kind":"tag","published_at":"2013-12-21T18:17:25.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.0.0","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.0.0/manifests"},{"name":"v1.2.0","sha":"7d8b74888bf13f702a9590212533f869f0f43f64","kind":"tag","published_at":"2013-02-26T14:21:42.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.2.0","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.2.0/manifests"},{"name":"v1.1.5","sha":"c17ab46f4af81b7f8c615f9f3248bdb5595ed819","kind":"tag","published_at":"2012-02-13T04:16:51.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.1.5","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.1.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.1.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.5/manifests"},{"name":"v1.1.4","sha":"76433318a73b388d17507bfd4fc956e3d07ff560","kind":"tag","published_at":"2011-11-23T17:05:30.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.1.4","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.1.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.1.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.4/manifests"},{"name":"v1.1.3","sha":"ea3e6975ea96cf154e45268fbbbd27e34e5ab017","kind":"commit","published_at":"2011-07-25T18:25:07.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.1.3","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.1.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.3/manifests"},{"name":"v1.1.2","sha":"8752b5886be1076e02fdcb14b9ee27ce58ae7c3e","kind":"commit","published_at":"2011-05-24T15:42:27.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.1.2","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.2/manifests"},{"name":"v1.1.1","sha":"6cd56ba465a2ade7e0c9cc6884cb9b99a0bf4f4c","kind":"commit","published_at":"2011-05-13T16:42:09.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.1.1","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.1/manifests"},{"name":"v1.1.0","sha":"c89315dcda35aafaff2790ef361337273d502ed1","kind":"commit","published_at":"2011-01-11T16:50:39.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.1.0","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.0/manifests"},{"name":"v1.0.1","sha":"e640d5a2cd3a4fe3342e95b8286be6188d03d2e8","kind":"commit","published_at":"2010-04-27T16:28:39.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.0.1","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.0.1/manifests"},{"name":"v1.0","sha":"b4d7cc51cdea9587673866992083f65148865e7e","kind":"commit","published_at":"2009-02-12T17:52:19.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.0","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.0/manifests"},{"name":"0.1","sha":"726081db47151a140f2205fc4deb8cfcdfaedd36","kind":"commit","published_at":"2008-08-13T05:55:16.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/0.1","html_url":"https://github.com/socketry/multipart-post/releases/tag/0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/0.1/manifests"}]},"repo_metadata_updated_at":"2025-10-12T23:27:14.696Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":10.77902998550931,"dependent_packages_count":9.55954712080186,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":10.169288553155585},"purl":"pkg:golang/github.com/socketry/multipart-post","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/socketry/multipart-post","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/socketry/multipart-post","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/socketry/multipart-post/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-08-31T14:43:11.638Z","issues_count":37,"pull_requests_count":68,"avg_time_to_close_issue":76015473.72413793,"avg_time_to_close_pull_request":8520477.909090908,"issues_closed_count":29,"pull_requests_closed_count":66,"pull_request_authors_count":38,"issue_authors_count":36,"avg_comments_per_issue":3.972972972972973,"avg_comments_per_pull_request":1.3235294117647058,"merged_pull_requests_count":56,"bot_issues_count":0,"bot_pull_requests_count":1,"past_year_issues_count":1,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":1.0,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":1,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/issues","maintainers":[{"login":"ioquatix","count":16,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ioquatix"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fsocketry%2Fmultipart-post/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fsocketry%2Fmultipart-post/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fsocketry%2Fmultipart-post/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fsocketry%2Fmultipart-post/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fsocketry%2Fmultipart-post/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":2107869,"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":258973,"name":"multipart-post","ecosystem":"rubygems","description":"A multipart form post accessory for Net::HTTP.","homepage":"https://github.com/socketry/multipart-post","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/socketry/multipart-post","keywords_array":[],"namespace":null,"versions_count":19,"first_release_published_at":"2009-07-25T18:06:10.000Z","latest_release_published_at":"2024-05-07T10:09:00.468Z","latest_release_number":"2.4.1","last_synced_at":"2026-04-24T23:01:38.405Z","created_at":"2022-04-06T05:04:23.489Z","updated_at":"2026-04-24T23:02:54.196Z","registry_url":"https://rubygems.org/gems/multipart-post","install_command":"gem install multipart-post -s https://rubygems.org","documentation_url":"http://www.rubydoc.info/gems/multipart-post/","metadata":{"funding":null},"repo_metadata":{"id":422169,"uuid":"42073","full_name":"socketry/multipart-post","owner":"socketry","description":"Adds multipart POST capability to net/http","archived":false,"fork":false,"pushed_at":"2024-09-03T22:18:14.000Z","size":181,"stargazers_count":295,"open_issues_count":10,"forks_count":71,"subscribers_count":10,"default_branch":"main","last_synced_at":"2026-04-04T02:15:32.876Z","etag":null,"topics":[],"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/socketry.png","metadata":{"files":{"readme":"readme.md","changelog":"changelog.md","contributing":null,"funding":null,"license":"license.md","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-08-12T17:33:41.000Z","updated_at":"2026-03-03T05:57:47.000Z","dependencies_parsed_at":"2024-09-16T19:25:51.579Z","dependency_job_id":"9f15acc1-4255-4d90-a4aa-d88fce53b89b","html_url":"https://github.com/socketry/multipart-post","commit_stats":{"total_commits":168,"total_committers":40,"mean_commits":4.2,"dds":0.7261904761904762,"last_synced_commit":"cce3634876b74e08a6c51d02db00070a82dc8cc4"},"previous_names":["nicksieger/multipart-post"],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/socketry/multipart-post","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/socketry","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/sbom","scorecard":{"id":835647,"data":{"date":"2025-08-11","repo":{"name":"github.com/socketry/multipart-post","commit":"cce3634876b74e08a6c51d02db00070a82dc8cc4"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.2,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 1 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":"Code-Review","score":2,"reason":"Found 7/29 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"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":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: topLevel 'contents' permission set to 'read': .github/workflows/coverage.yaml:6","Info: topLevel 'contents' permission set to 'read': .github/workflows/documentation.yaml:10","Info: topLevel 'contents' permission set to 'read': .github/workflows/test-external.yaml:6","Info: topLevel 'contents' permission set to 'read': .github/workflows/test.yaml:6","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":"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/coverage.yaml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/coverage.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/coverage.yaml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/coverage.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/coverage.yaml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/coverage.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/coverage.yaml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/coverage.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/coverage.yaml:48: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/coverage.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/coverage.yaml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/coverage.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/documentation.yaml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/documentation.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/documentation.yaml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/documentation.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/documentation.yaml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/documentation.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/documentation.yaml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/documentation.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-external.yaml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/test-external.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-external.yaml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/test-external.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yaml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/test.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yaml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/socketry/multipart-post/test.yaml/main?enable=pin","Info:   0 out of   9 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   5 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":"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: license.md:0","Info: FSF or OSI recognized license: MIT License: license.md:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"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":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/socketry/.github/security.md:1","Info: Found linked content: github.com/socketry/.github/security.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/socketry/.github/security.md:1","Info: Found text in security policy: github.com/socketry/.github/security.md:1"],"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 17 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-23T18:58:09.203Z","repository_id":422169,"created_at":"2025-08-23T18:58:09.203Z","updated_at":"2025-08-23T18:58:09.203Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31549986,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"online","status_checked_at":"2026-04-08T02:00:06.127Z","response_time":54,"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":"socketry","name":"Socketry","uuid":"22138037","kind":"organization","description":"Modern asynchronous and timeout-capable I/O for Ruby.","email":"contact@socketry.io","website":"https://socketry.io","location":null,"twitter":"ioquatix","company":null,"icon_url":"https://avatars.githubusercontent.com/u/22138037?v=4","repositories_count":149,"last_synced_at":"2025-10-21T07:56:11.543Z","metadata":{"has_sponsors_listing":false,"funding":{"custom":"https://github.com/socketry/community/#funding","github":"ioquatix"}},"html_url":"https://github.com/socketry","funding_links":["https://github.com/socketry/community/#funding","https://github.com/sponsors/ioquatix"],"total_stars":12727,"followers":196,"following":0,"created_at":"2022-11-02T16:17:22.458Z","updated_at":"2025-10-21T07:56:11.543Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/socketry","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/socketry/repositories"},"tags":[{"name":"v2.4.1","sha":"8cb653603ac24494efff5cf4ecb6504db08d5c11","kind":"commit","published_at":"2024-05-07T10:08:39.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.4.1","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.4.1/manifests"},{"name":"v2.4.0","sha":"2b1235a25bc3ff03d907785caa83f09c69d6f501","kind":"commit","published_at":"2024-02-07T10:59:56.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.4.0","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.4.0/manifests"},{"name":"v2.3.0","sha":"e12539c5d1d8fd0331e8849bf5884ee3a9a782af","kind":"commit","published_at":"2023-01-26T01:16:41.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.3.0","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.3.0/manifests"},{"name":"v2.2.3","sha":"31500a7008d0e5827c8522d6d1bde3452237b578","kind":"commit","published_at":"2022-06-10T06:00:07.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.2.3","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.2.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.2.3/manifests"},{"name":"v2.2.2","sha":"e52ef1e11b1f1edfc3ae16eff24a71a53745c967","kind":"commit","published_at":"2022-06-09T14:22:13.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.2.2","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.2.2/manifests"},{"name":"v2.2.0","sha":"f99699aa50d7612e798d611145fb17ac6e14d8e7","kind":"commit","published_at":"2022-06-03T01:16:18.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.2.0","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.2.0/manifests"},{"name":"v2.1.1","sha":"a7d238fdaebef15e70ec98f27c925fbb873d4d49","kind":"tag","published_at":"2019-05-13T11:34:34.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.1.1","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.1.1/manifests"},{"name":"v2.1.0","sha":"2082a728e82b529486c03376721f1b15c474460f","kind":"tag","published_at":"2019-05-08T00:56:31.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.1.0","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.1.0/manifests"},{"name":"v2.0.0","sha":"678756080c51d803498241dc944a43b44fe853d8","kind":"tag","published_at":"2013-12-21T18:17:25.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v2.0.0","html_url":"https://github.com/socketry/multipart-post/releases/tag/v2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v2.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v2.0.0/manifests"},{"name":"v1.2.0","sha":"7d8b74888bf13f702a9590212533f869f0f43f64","kind":"tag","published_at":"2013-02-26T14:21:42.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.2.0","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.2.0/manifests"},{"name":"v1.1.5","sha":"c17ab46f4af81b7f8c615f9f3248bdb5595ed819","kind":"tag","published_at":"2012-02-13T04:16:51.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.1.5","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.1.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.1.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.5/manifests"},{"name":"v1.1.4","sha":"76433318a73b388d17507bfd4fc956e3d07ff560","kind":"tag","published_at":"2011-11-23T17:05:30.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.1.4","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.1.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.1.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.4/manifests"},{"name":"v1.1.3","sha":"ea3e6975ea96cf154e45268fbbbd27e34e5ab017","kind":"commit","published_at":"2011-07-25T18:25:07.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.1.3","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.1.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.3/manifests"},{"name":"v1.1.2","sha":"8752b5886be1076e02fdcb14b9ee27ce58ae7c3e","kind":"commit","published_at":"2011-05-24T15:42:27.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.1.2","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.2/manifests"},{"name":"v1.1.1","sha":"6cd56ba465a2ade7e0c9cc6884cb9b99a0bf4f4c","kind":"commit","published_at":"2011-05-13T16:42:09.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.1.1","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.1/manifests"},{"name":"v1.1.0","sha":"c89315dcda35aafaff2790ef361337273d502ed1","kind":"commit","published_at":"2011-01-11T16:50:39.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.1.0","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.1.0/manifests"},{"name":"v1.0.1","sha":"e640d5a2cd3a4fe3342e95b8286be6188d03d2e8","kind":"commit","published_at":"2010-04-27T16:28:39.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.0.1","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.0.1/manifests"},{"name":"v1.0","sha":"b4d7cc51cdea9587673866992083f65148865e7e","kind":"commit","published_at":"2009-02-12T17:52:19.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/v1.0","html_url":"https://github.com/socketry/multipart-post/releases/tag/v1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@v1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/v1.0/manifests"},{"name":"0.1","sha":"726081db47151a140f2205fc4deb8cfcdfaedd36","kind":"commit","published_at":"2008-08-13T05:55:16.000Z","download_url":"https://codeload.github.com/socketry/multipart-post/tar.gz/0.1","html_url":"https://github.com/socketry/multipart-post/releases/tag/0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/socketry/multipart-post@0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/tags/0.1/manifests"}]},"repo_metadata_updated_at":"2026-04-24T23:02:54.196Z","dependent_packages_count":275,"downloads":871569206,"downloads_period":"total","dependent_repos_count":470132,"rankings":{"downloads":0.016725950870306976,"dependent_repos_count":0.03456696513196775,"dependent_packages_count":0.15332121631114728,"stargazers_count":3.302817765189951,"forks_count":3.119947369007928,"docker_downloads_count":0.09032013469965768,"average":1.1196165668684932},"purl":"pkg:gem/multipart-post","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/rubygems/multipart-post","docker_dependents_count":2421,"docker_downloads_count":1356977955,"usage_url":"https://repos.ecosyste.ms/usage/rubygems/multipart-post","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/rubygems/multipart-post/dependencies","status":null,"funding_links":[],"critical":true,"issue_metadata":{"last_synced_at":"2026-04-16T19:01:35.456Z","issues_count":37,"pull_requests_count":68,"avg_time_to_close_issue":76015473.72413793,"avg_time_to_close_pull_request":8520477.909090908,"issues_closed_count":29,"pull_requests_closed_count":66,"pull_request_authors_count":38,"issue_authors_count":36,"avg_comments_per_issue":3.972972972972973,"avg_comments_per_pull_request":1.3235294117647058,"merged_pull_requests_count":56,"bot_issues_count":0,"bot_pull_requests_count":1,"past_year_issues_count":1,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":1.0,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":1,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/issues","maintainers":[{"login":"ioquatix","count":16,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ioquatix"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/multipart-post/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/multipart-post/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/multipart-post/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/multipart-post/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/multipart-post/codemeta","maintainers":[{"uuid":"44200","login":"ioquatix","name":null,"email":null,"url":null,"packages_count":250,"html_url":"https://rubygems.org/profiles/ioquatix","role":null,"created_at":"2022-11-09T09:41:24.268Z","updated_at":"2022-11-09T09:41:24.268Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/ioquatix/packages"}],"registry":{"name":"rubygems.org","url":"https://rubygems.org","ecosystem":"rubygems","default":true,"packages_count":205454,"maintainers_count":68445,"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":19327,"full_name":"socketry/multipart-post","default_branch":"main","total_commits":168,"total_committers":38,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":4.421052631578948,"dds":0.7261904761904762,"past_year_total_commits":0,"past_year_total_committers":0,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":0.0,"past_year_dds":0.0,"last_synced_at":"2026-04-24T23:03:10.944Z","last_synced_commit":"cce3634876b74e08a6c51d02db00070a82dc8cc4","created_at":"2023-03-07T11:40:45.436Z","updated_at":"2026-04-24T23:01:53.794Z","committers":[{"name":"Nick Sieger","email":"nick@nicksieger.com","login":"nicksieger","count":46},{"name":"Samuel Williams","email":"samuel.williams@oriontransfer.co.nz","login":"ioquatix","count":41},{"name":"Olle Jonsson","email":"olle.jonsson@gmail.com","login":"olleolleolle","count":15},{"name":"McClain Looney","email":"m@loonsoft.com","login":"mlooney","count":9},{"name":"Lewis Cowles","email":"lewis+github@cowles.uk","login":"Lewiscowles1986","count":8},{"name":"Patrick Davey","email":"patrick.davey@gmail.com","login":"patrickdavey","count":5},{"name":"Gustav Ernberg","email":"github@minpunkt.se","login":"gernberg","count":4},{"name":"Steven Davidovitz","email":"sdavidovitz@zendesk.com","login":"steved","count":3},{"name":"Tohru Hashimoto","email":"sulky.to@gmail.com","login":"hasimo","count":2},{"name":"Jason York","email":"jason.york@gmail.com","login":"jasonyork","count":2},{"name":"Jagtesh Chadha","email":"jagtesh@gmail.com","login":"jagtesh","count":2},{"name":"Ethan Turkeltaub","email":"ethan.turkeltaub@gmail.com","login":"ethnt","count":2},{"name":"Alex Koppel","email":"alex+git@alexkoppel.com","login":"arsduo","count":2},{"name":"hexfet","email":"jpublic123@yahoo.com","login":null,"count":2},{"name":"Vincent Pellé","email":"vincentp@webwag.com","login":null,"count":2},{"name":"Socrates Vicente","email":"socratesvicente@notonthehighstreet.com","login":null,"count":1},{"name":"Gerrit Riessen","email":"gerrit.riessen@gmail.com","login":null,"count":1},{"name":"David Moles","email":"david.moles@ucop.edu","login":null,"count":1},{"name":"Christine Yen","email":"cyen@christineyen.com","login":"christineyen","count":1},{"name":"Tim Barkley","email":"Timothyjbarkley@gmail.com","login":"Timothyjb","count":1},{"name":"Takuya Noguchi","email":"takninnovationresearch@gmail.com","login":"tnir","count":1},{"name":"Steffen Grunwald","email":"steffen.grunwald@gmail.com","login":"steffeng","count":1},{"name":"Peter Goldstein","email":"peter.m.goldstein@gmail.com","login":"petergoldstein","count":1},{"name":"Mislav Marohnić","email":"mislav.marohnic@gmail.com","login":"mislav","count":1},{"name":"Matt Colyer","email":"matt@colyer.name","login":"mcolyer","count":1},{"name":"Masato Nakamura","email":"masato.nakamura145@gmail.com","login":"m-nakamura145","count":1},{"name":"Luke Redpath","email":"luke@lukeredpath.co.uk","login":"lukeredpath","count":1},{"name":"Lonre Wang","email":"lonre","login":"lonre","count":1},{"name":"Leo Cassarani","email":"leo.cassarani@me.com","login":"leocassarani","count":1},{"name":"Lachlan Priest","email":"lachlanpriest@gmail.com","login":"lcpriest","count":1},{"name":"Jordi Massaguer Pla","email":"jmassaguerpla@suse.de","login":"jordimassaguerpla","count":1},{"name":"Johannes Wagener","email":"johannes@soundcloud.com","login":"jwagener","count":1},{"name":"Jeff Hodges","email":"jeff@somethingsimilar.com","login":"jmhodges","count":1},{"name":"Jason Moore","email":"jason@contextoptional.com","login":"captainbeardo","count":1},{"name":"Jan-Joost Spanjers","email":"jspanjers","login":"jspanjers","count":1},{"name":"Jan Piotrowski","email":"piotrowski+github@gmail.com","login":"janpio","count":1},{"name":"Feuda Nan","email":"feuda.nan@gmail.com","login":"Feuda","count":1},{"name":"Eric Hutzelman","email":"ehutzelman@gmail.com","login":"ehutzelman","count":1}],"past_year_committers":[],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-27T00:00:06.983Z","repositories_count":6219145,"commits_count":899455028,"contributors_count":34873843,"owners_count":1145803,"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":"socketry/multipart-post","html_url":"https://github.com/socketry/multipart-post","last_synced_at":"2026-04-16T19:01:35.456Z","status":"error","issues_count":37,"pull_requests_count":68,"avg_time_to_close_issue":76015473.72413793,"avg_time_to_close_pull_request":8520477.909090908,"issues_closed_count":29,"pull_requests_closed_count":66,"pull_request_authors_count":38,"issue_authors_count":36,"avg_comments_per_issue":3.972972972972973,"avg_comments_per_pull_request":1.3235294117647058,"merged_pull_requests_count":56,"bot_issues_count":0,"bot_pull_requests_count":1,"past_year_issues_count":1,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":1.0,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":1,"past_year_merged_pull_requests_count":0,"created_at":"2023-05-10T21:58:32.541Z","updated_at":"2026-04-16T19:01:35.457Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/socketry%2Fmultipart-post/issues","issue_labels_count":{},"pull_request_labels_count":{"dependencies":2},"issue_author_associations_count":{"NONE":31,"CONTRIBUTOR":5,"MEMBER":1},"pull_request_author_associations_count":{"CONTRIBUTOR":46,"MEMBER":15,"NONE":11},"issue_authors":{"olleolleolle":2,"arsduo":1,"koshigoe":1,"ts-3156":1,"gavinkou":1,"Domon":1,"ajinkya-bhosale":1,"huacnlee":1,"joankaradimov":1,"edgedalmacio":1,"jrochkind":1,"jonkelleyatrackspace":1,"xiconet":1,"ioquatix":1,"jimtsay":1,"dnrce":1,"DariuszMusielak":1,"voxik":1,"Whitespace":1,"jspanjers":1,"dmolesUC":1,"sauron":1,"dbrouard":1,"ldonnet":1,"jwoertink":1,"tnir":1,"prathamesh-sonpatki":1,"heygambo":1,"graaff":1,"stepheneb":1,"timrogers":1,"h3xstream":1,"shrkw":1,"aaronjensen":1,"apepper":1,"kris-at-tout":1},"pull_request_authors":{"ioquatix":15,"olleolleolle":14,"Lewiscowles1986":4,"m-nakamura145":2,"steffeng":2,"patrickdavey":2,"dependabot[bot]":2,"captainbeardo":1,"mislav":1,"jspanjers":1,"dmolesUC":1,"lukeredpath":1,"Phitherek":1,"jordimassaguerpla":1,"jaimeiniesta":1,"Timothyjb":1,"lonre":1,"Feuda":1,"ethnt":1,"jagtesh":1,"gernberg":1,"arsduo":1,"jmhodges":1,"tnir":1,"petergoldstein":1,"mcolyer":1,"leocassarani":1,"pinchtools":1,"bcoe":1,"hexfet":1,"snowblink":1,"jasonyork":1,"steved":1,"ehutzelman":1,"lcpriest":1,"gorenje":1,"janpio":1,"lou":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-24T00:00:07.455Z","repositories_count":14384588,"issues_count":34427778,"pull_requests_count":112751995,"authors_count":11244454,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{"NONE":1},"past_year_pull_request_author_associations_count":{},"past_year_issue_authors":{"jrochkind":1},"past_year_pull_request_authors":{},"maintainers":[{"login":"ioquatix","count":16,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ioquatix"}],"active_maintainers":[]},"events":{"total":{"WatchEvent":6,"IssueCommentEvent":1},"last_year":{"IssueCommentEvent":1}},"keywords":[],"dependencies":[{"ecosystem":"rubygems","filepath":"gems.rb","sha":null,"kind":"manifest","created_at":"2022-07-04T15:30:40.732Z","updated_at":"2022-07-04T15:30:40.732Z","repository_link":"https://github.com/socketry/multipart-post/blob/main/gems.rb","dependencies":[{"id":105440425,"package_name":"bake","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":105440426,"package_name":"bake-gem","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":105440427,"package_name":"bake-modernize","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"rubygems","filepath":"multipart-post.gemspec","sha":null,"kind":"manifest","created_at":"2022-07-04T15:30:40.740Z","updated_at":"2022-07-04T15:30:40.740Z","repository_link":"https://github.com/socketry/multipart-post/blob/main/multipart-post.gemspec","dependencies":[{"id":105440428,"package_name":"bundler","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":105440429,"package_name":"rspec","ecosystem":"rubygems","requirements":"~\u003e 3.4","direct":true,"kind":"development","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/coverage.yaml","sha":null,"kind":"manifest","created_at":"2023-02-14T13:01:04.858Z","updated_at":"2023-02-14T13:01:04.858Z","repository_link":"https://github.com/socketry/multipart-post/blob/main/.github/workflows/coverage.yaml","dependencies":[{"id":7659501832,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":7659501833,"package_name":"ruby/setup-ruby","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":7659501834,"package_name":"actions/upload-artifact","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7659501835,"package_name":"actions/download-artifact","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/test-external.yaml","sha":null,"kind":"manifest","created_at":"2023-02-14T13:01:04.933Z","updated_at":"2023-02-14T13:01:04.933Z","repository_link":"https://github.com/socketry/multipart-post/blob/main/.github/workflows/test-external.yaml","dependencies":[{"id":7659502103,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":7659502104,"package_name":"ruby/setup-ruby","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/test.yaml","sha":null,"kind":"manifest","created_at":"2023-02-14T13:01:05.076Z","updated_at":"2023-02-14T13:01:05.076Z","repository_link":"https://github.com/socketry/multipart-post/blob/main/.github/workflows/test.yaml","dependencies":[{"id":7659502112,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":7659502113,"package_name":"ruby/setup-ruby","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/documentation.yaml","sha":null,"kind":"manifest","created_at":"2024-02-07T11:27:48.360Z","updated_at":"2024-02-07T11:27:48.360Z","repository_link":"https://github.com/socketry/multipart-post/blob/main/.github/workflows/documentation.yaml","dependencies":[{"id":16089950371,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":16089950372,"package_name":"ruby/setup-ruby","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":16089950373,"package_name":"actions/upload-pages-artifact","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":16089950374,"package_name":"actions/deploy-pages","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false}]}],"score":31.5757696736016,"created_at":"2024-12-15T21:38:08.352Z","updated_at":"2026-04-30T01:30:20.617Z","avatar_url":"https://github.com/socketry.png","language":"Ruby","monthly_downloads":0,"readme":"# Multipart::Post\n\nAdds a streamy multipart form post capability to `Net::HTTP`. Also supports other\nmethods besides `POST`.\n\n[![Development Status](https://github.com/socketry/multipart-post/workflows/Test/badge.svg)](https://github.com/socketry/multipart-post/actions?workflow=Test)\n\n## Features/Problems\n\n  - Appears to actually work. A good feature to have.\n  - Encapsulates posting of file/binary parts and name/value parameter parts, similar to\n    most browsers' file upload forms.\n  - Provides an `UploadIO` helper class to prepare IO objects for inclusion in the params\n    hash of the multipart post object.\n\n## Installation\n\n``` shell\nbundle add multipart-post\n```\n\n## Usage\n\n``` ruby\nrequire 'net/http/post/multipart'\n\nurl = URI.parse('http://www.example.com/upload')\nFile.open(\"./image.jpg\") do |jpg|\n  req = Net::HTTP::Post::Multipart.new url.path,\n    \"file\" =\u003e UploadIO.new(jpg, \"image/jpeg\", \"image.jpg\")\n  res = Net::HTTP.start(url.host, url.port) do |http|\n    http.request(req)\n  end\nend\n```\n\nTo post multiple files or attachments, simply include multiple parameters with\n`UploadIO` values:\n\n``` ruby\nrequire 'net/http/post/multipart'\n\nurl = URI.parse('http://www.example.com/upload')\nreq = Net::HTTP::Post::Multipart.new url.path,\n  \"file1\" =\u003e UploadIO.new(File.new(\"./image.jpg\"), \"image/jpeg\", \"image.jpg\"),\n  \"file2\" =\u003e UploadIO.new(File.new(\"./image2.jpg\"), \"image/jpeg\", \"image2.jpg\")\nres = Net::HTTP.start(url.host, url.port) do |http|\n  http.request(req)\nend\n```\n\nTo post files with other normal, non-file params such as input values, you need to pass hashes to the `Multipart.new` method.\n\nIn Rails 4 for example:\n\n``` ruby\ndef model_params\n  require_params = params.require(:model).permit(:param_one, :param_two, :param_three, :avatar)\n  require_params[:avatar] = model_params[:avatar].present? ? UploadIO.new(model_params[:avatar].tempfile, model_params[:avatar].content_type, model_params[:avatar].original_filename) : nil\n  require_params\nend\n\nrequire 'net/http/post/multipart'\n\nurl = URI.parse('http://www.example.com/upload')\nNet::HTTP.start(url.host, url.port) do |http|\n  req = Net::HTTP::Post::Multipart.new(url, model_params)\n  key = \"authorization_key\"\n  req.add_field(\"Authorization\", key) #add to Headers\n  http.use_ssl = (url.scheme == \"https\")\n  http.request(req)\nend\n```\n\nOr in plain ruby:\n\n``` ruby\ndef params(file)\n  params = { \"description\" =\u003e \"A nice picture!\" }\n  params[:datei] = UploadIO.new(file, \"image/jpeg\", \"image.jpg\")\n  params\nend\n\nurl = URI.parse('http://www.example.com/upload')\nFile.open(\"./image.jpg\") do |file|\n  req = Net::HTTP::Post::Multipart.new(url.path, params(file))\n  res = Net::HTTP.start(url.host, url.port) do |http|\n    return http.request(req).body\n  end\nend\n```\n\n### Parts Headers\n\nBy default, all individual parts will include the header `Content-Disposition` as well as `Content-Length`, `Content-Transfer-Encoding` and `Content-Type` for the File Parts.\n\nYou may optionally configure the headers `Content-Type` and `Content-ID` for both ParamPart and FilePart by passing in a `parts` header.\n\nFor example:\n\n``` ruby\nurl = URI.parse('http://www.example.com/upload')\n\nparams = {\n  \"file_metadata_01\" =\u003e { \"description\" =\u003e \"A nice picture!\" },\n  \"file_content_01\"  =\u003e UploadIO.new(file, \"image/jpeg\", \"image.jpg\")\n}\n\nheaders = {\n  'parts': {\n    'file_metadata_01': {\n      'Content-Type' =\u003e \"application/json\"\n      }\n    }\n  }\n\nreq = Net::HTTP::Post::Multipart.new(uri, params, headers)\n```\n\nThis would configure the `file_metadata_01` part to include `Content-Type`\n\n    Content-Disposition: form-data; name=\"file_metadata_01\"\n    Content-Type: application/json\n      {\n        \"description\" =\u003e \"A nice picture!\" \n      }\n\n#### Custom Parts Headers\n\n*For FileParts only.*\n\nYou can include any number of custom parts headers in addition to `Content-Type` and `Content-ID`.\n\n``` ruby\nheaders = {\n  'parts': {\n    'file_metadata_01': {\n      'Content-Type' =\u003e \"application/json\",\n      'My-Custom-Header' =\u003e \"Yo Yo!\"\n    }\n  }\n}\n```\n\n### Debugging\n\nYou can debug requests and responses (e.g. status codes) for all requests by adding the following code:\n\n``` ruby\nhttp = Net::HTTP.new(uri.host, uri.port)\nhttp.set_debug_output($stdout)\n```\n\n## Versioning\n\nThis library aims to adhere to [Semantic Versioning 2.0.0](http://semver.org/).\nViolations of this scheme should be reported as bugs. Specifically,\nif a minor or patch version is released that breaks backward\ncompatibility, a new version should be immediately released that\nrestores compatibility. Breaking changes to the public API will\nonly be introduced with new major versions.\n\nAs a result of this policy, you can (and should) specify a\ndependency on this gem using the [Pessimistic Version Constraint](http://guides.rubygems.org/patterns/#pessimistic-version-constraint) with two digits of precision.\n\nFor example:\n\n``` ruby\nspec.add_dependency 'multipart-post', '~\u003e 2.1'\n```\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["rubygems","activerecord","activejob","mvc","rspec","rack","ruby-gem","sinatra","pagination","crash-reporting"],"project_url":"https://ruby.ecosyste.ms/api/v1/projects/556","html_url":"https://ruby.ecosyste.ms/projects/556"}