{"id":169,"name":null,"description":"Terminal output styling with intuitive and clean API.","url":"https://github.com/piotrmurach/pastel","last_synced_at":"2026-04-30T16:30:24.758Z","repository":{"id":21775027,"uuid":"25097327","full_name":"piotrmurach/pastel","owner":"piotrmurach","description":"Terminal output styling with intuitive and clean API.","archived":false,"fork":false,"pushed_at":"2024-04-09T22:41:23.000Z","size":245,"stargazers_count":666,"open_issues_count":0,"forks_count":23,"subscribers_count":13,"default_branch":"master","last_synced_at":"2026-04-23T13:04:36.503Z","etag":null,"topics":["colors","escape-sequences","ruby","ruby-gem","string-styling","style","terminal-emulators","terminal-themes"],"latest_commit_sha":null,"homepage":"https://ttytoolkit.org","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/piotrmurach.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","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},"funding":{"github":"piotrmurach"}},"created_at":"2014-10-11T22:15:23.000Z","updated_at":"2026-04-22T10:12:03.000Z","dependencies_parsed_at":"2024-04-08T23:33:28.219Z","dependency_job_id":"1a730208-191d-4d5f-ad65-44a6b45e56d5","html_url":"https://github.com/piotrmurach/pastel","commit_stats":{"total_commits":257,"total_committers":12,"mean_commits":"21.416666666666668","dds":"0.046692607003890996","last_synced_commit":"7f90586be01aa30b5f6c86a747b3319a1d7e99b1"},"previous_names":["peter-murach/pastel"],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/piotrmurach/pastel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/piotrmurach","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/sbom","scorecard":{"id":734814,"data":{"date":"2025-08-11","repo":{"name":"github.com/piotrmurach/pastel","commit":"97d656f0d7ebb8b5c7f39d2020b43c28bb50eb71"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"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":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:50: update your workflow using https://app.stepsecurity.io/secureworkflow/piotrmurach/pastel/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/piotrmurach/pastel/ci.yml/master?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-22T15:28:18.633Z","repository_id":21775027,"created_at":"2025-08-22T15:28:18.633Z","updated_at":"2025-08-22T15:28:18.633Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32432917,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T13:34:34.882Z","status":"ssl_error","status_checked_at":"2026-04-29T13:34:29.830Z","response_time":110,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"piotrmurach","name":"Piotr Murach","uuid":"444312","kind":"user","description":"Tender loving command line.","email":"","website":"https://piotrmurach.com","location":"Sheffield / Olsztyn","twitter":"piotr_murach","company":null,"icon_url":"https://avatars.githubusercontent.com/u/444312?v=4","repositories_count":89,"last_synced_at":"2025-11-23T03:03:05.684Z","metadata":{"has_sponsors_listing":true},"html_url":"https://github.com/piotrmurach","funding_links":["https://github.com/sponsors/piotrmurach"],"total_stars":12891,"followers":648,"following":42,"created_at":"2022-11-02T16:41:01.260Z","updated_at":"2025-11-23T03:03:05.684Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/piotrmurach","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/piotrmurach/repositories"},"packages":[{"id":5302819,"name":"rb-pastel","ecosystem":"conda","description":null,"homepage":"https://rubygems.org/gems/pastel","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/piotrmurach/pastel","keywords_array":[],"namespace":null,"versions_count":3,"first_release_published_at":"2019-09-17T23:19:59.000Z","latest_release_published_at":"2020-07-27T16:20:14.000Z","latest_release_number":"0.8.0","last_synced_at":"2026-03-05T04:46:33.919Z","created_at":"2022-10-03T16:13:30.204Z","updated_at":"2026-03-05T04:46:33.920Z","registry_url":"https://anaconda.org/conda-forge/rb-pastel","install_command":"conda install -c conda-forge rb-pastel","documentation_url":null,"metadata":{},"repo_metadata":{"id":21775027,"uuid":"25097327","full_name":"piotrmurach/pastel","owner":"piotrmurach","description":"Terminal output styling with intuitive and clean API.","archived":false,"fork":false,"pushed_at":"2024-04-09T22:41:23.000Z","size":245,"stargazers_count":657,"open_issues_count":0,"forks_count":23,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-09-07T19:46:52.847Z","etag":null,"topics":["colors","escape-sequences","ruby","ruby-gem","string-styling","style","terminal-emulators","terminal-themes"],"latest_commit_sha":null,"homepage":"https://ttytoolkit.org","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/piotrmurach.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","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},"funding":{"github":"piotrmurach"}},"created_at":"2014-10-11T22:15:23.000Z","updated_at":"2025-09-06T05:41:17.000Z","dependencies_parsed_at":"2024-04-08T23:33:28.219Z","dependency_job_id":"1a730208-191d-4d5f-ad65-44a6b45e56d5","html_url":"https://github.com/piotrmurach/pastel","commit_stats":{"total_commits":257,"total_committers":12,"mean_commits":"21.416666666666668","dds":"0.046692607003890996","last_synced_commit":"7f90586be01aa30b5f6c86a747b3319a1d7e99b1"},"previous_names":["peter-murach/pastel"],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/piotrmurach/pastel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/piotrmurach","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/sbom","scorecard":{"id":734814,"data":{"date":"2025-08-11","repo":{"name":"github.com/piotrmurach/pastel","commit":"97d656f0d7ebb8b5c7f39d2020b43c28bb50eb71"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"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":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:50: update your workflow using https://app.stepsecurity.io/secureworkflow/piotrmurach/pastel/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/piotrmurach/pastel/ci.yml/master?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-22T15:28:18.633Z","repository_id":21775027,"created_at":"2025-08-22T15:28:18.633Z","updated_at":"2025-08-22T15:28:18.633Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274100607,"owners_count":25222443,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-07T02:00:09.463Z","response_time":67,"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":"piotrmurach","name":"Piotr Murach","uuid":"444312","kind":"user","description":"Tender loving command line.","email":"","website":"https://piotrmurach.com","location":"Sheffield / Olsztyn","twitter":"piotr_murach","company":null,"icon_url":"https://avatars.githubusercontent.com/u/444312?v=4","repositories_count":89,"last_synced_at":"2025-09-08T01:53:45.531Z","metadata":{"has_sponsors_listing":true},"html_url":"https://github.com/piotrmurach","funding_links":["https://github.com/sponsors/piotrmurach"],"total_stars":12797,"followers":641,"following":42,"created_at":"2022-11-02T16:41:01.260Z","updated_at":"2025-09-08T01:53:45.531Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/piotrmurach","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/piotrmurach/repositories"},"tags":[{"name":"v0.8.0","sha":"afd82952076e605402a54dd0a142cdcebe34edc7","kind":"tag","published_at":"2020-07-04T14:12:40.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.8.0","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.8.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.8.0/manifests"},{"name":"v0.7.4","sha":"7e68639503f94dfb3d4b2df87a2fd7f733ebc287","kind":"tag","published_at":"2020-05-08T10:26:06.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.7.4","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.7.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.7.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.4/manifests"},{"name":"v0.7.3","sha":"27bef1876c88d688fc3d4900856c921f9b32a773","kind":"tag","published_at":"2019-06-16T22:49:10.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.7.3","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.7.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.7.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.3/manifests"},{"name":"v0.7.2","sha":"e3f31242d2a38a3869484ee84cb4bf8d8abf9a50","kind":"tag","published_at":"2017-11-09T23:07:08.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.7.2","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.7.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.2/manifests"},{"name":"v0.7.1","sha":"d27d0e908bc92334d9541a50945ab0d06d1e9bf0","kind":"tag","published_at":"2017-01-09T23:57:28.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.7.1","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.7.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.1/manifests"},{"name":"v0.7.0","sha":"37e28336883d4a9e38ba11faac40a729c1d20870","kind":"tag","published_at":"2016-12-27T23:11:48.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.7.0","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.0/manifests"},{"name":"v0.6.1","sha":"182c35024bcca992054786869c2de299d400ae9c","kind":"tag","published_at":"2016-04-09T17:29:40.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.6.1","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.6.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.6.1/manifests"},{"name":"v0.6.0","sha":"a5ccf5d9e3eb66f516d8a6b70cc811badfc9db9a","kind":"tag","published_at":"2016-01-15T22:47:11.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.6.0","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.6.0/manifests"},{"name":"v0.5.3","sha":"a0d1b9b631d62b92006fdfb63d84ce32fef6cc16","kind":"tag","published_at":"2016-01-05T20:54:20.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.5.3","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.5.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.5.3/manifests"},{"name":"v0.5.2","sha":"27c5a1a4ef308930d05e68ead5cfdbc631678050","kind":"tag","published_at":"2015-11-27T23:17:50.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.5.2","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.5.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.5.2/manifests"},{"name":"v0.5.1","sha":"c051c797b63a41b1cb1868081a91afc3d5bc265c","kind":"tag","published_at":"2015-09-18T20:26:21.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.5.1","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.5.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.5.1/manifests"},{"name":"v0.5.0","sha":"5ae1b32422c4922737d2cd6baa764cc9b772c8ac","kind":"tag","published_at":"2015-09-13T21:21:02.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.5.0","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.5.0/manifests"},{"name":"v0.4.0","sha":"b99eb629575f694436cdb6decf6d92d08479aa73","kind":"tag","published_at":"2014-11-22T21:03:47.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.4.0","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.4.0/manifests"},{"name":"v0.3.0","sha":"0c4158559c5c9383042537910935c3b7301a90f1","kind":"tag","published_at":"2014-11-08T19:21:01.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.3.0","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.3.0/manifests"},{"name":"v0.2.1","sha":"aec9b79715150808014717f39443a707169b9783","kind":"tag","published_at":"2014-10-13T22:21:32.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.2.1","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.2.1/manifests"},{"name":"v0.2.0","sha":"6462b1c0c4bb10568ef3867100e5f49e83b70ba9","kind":"tag","published_at":"2014-10-12T14:48:36.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.2.0","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.2.0/manifests"}]},"repo_metadata_updated_at":"2025-09-08T11:19:35.526Z","dependent_packages_count":1,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":34.025455452957324,"dependent_packages_count":28.819565759920142,"stargazers_count":14.664337409533317,"forks_count":32.03893186922885,"average":27.38707262290991},"purl":"pkg:conda/rb-pastel?repository_url=https://conda-forge.org","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/conda/rb-pastel","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/conda/rb-pastel","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/conda/rb-pastel/dependencies","status":null,"funding_links":["https://github.com/sponsors/piotrmurach"],"critical":null,"issue_metadata":{"last_synced_at":"2025-08-31T18:09:22.321Z","issues_count":13,"pull_requests_count":14,"avg_time_to_close_issue":2187299.3076923075,"avg_time_to_close_pull_request":1270365.357142857,"issues_closed_count":13,"pull_requests_closed_count":14,"pull_request_authors_count":14,"issue_authors_count":13,"avg_comments_per_issue":2.6153846153846154,"avg_comments_per_pull_request":2.357142857142857,"merged_pull_requests_count":11,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":400314.0,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":1,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":2.0,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/issues","maintainers":[],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/rb-pastel/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/rb-pastel/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/rb-pastel/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/rb-pastel/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/rb-pastel/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"},"icon_url":"https://github.com/conda-forge.png","created_at":"2022-10-03T15:37:08.743Z","updated_at":"2026-04-27T18:20:20.507Z","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":12291415,"name":"pastel","ecosystem":"rubygems","description":"Terminal strings styling with intuitive and clean API.","homepage":"https://ttytoolkit.org","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/piotrmurach/pastel","keywords_array":[],"namespace":null,"versions_count":17,"first_release_published_at":"2014-10-11T22:13:32.667Z","latest_release_published_at":"2020-07-04T14:13:49.341Z","latest_release_number":"0.8.0","last_synced_at":"2026-04-29T13:20:06.847Z","created_at":"2025-10-07T04:51:21.916Z","updated_at":"2026-04-29T13:20:06.847Z","registry_url":"https://gem.coop/gems/pastel","install_command":"gem install pastel -s https://gem.coop","documentation_url":"http://www.rubydoc.info/gems/pastel/","metadata":{"funding":null},"repo_metadata":{"id":21775027,"uuid":"25097327","full_name":"piotrmurach/pastel","owner":"piotrmurach","description":"Terminal output styling with intuitive and clean API.","archived":false,"fork":false,"pushed_at":"2024-04-09T22:41:23.000Z","size":245,"stargazers_count":666,"open_issues_count":0,"forks_count":23,"subscribers_count":13,"default_branch":"master","last_synced_at":"2026-04-23T13:04:36.503Z","etag":null,"topics":["colors","escape-sequences","ruby","ruby-gem","string-styling","style","terminal-emulators","terminal-themes"],"latest_commit_sha":null,"homepage":"https://ttytoolkit.org","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/piotrmurach.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","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},"funding":{"github":"piotrmurach"}},"created_at":"2014-10-11T22:15:23.000Z","updated_at":"2026-04-22T10:12:03.000Z","dependencies_parsed_at":"2024-04-08T23:33:28.219Z","dependency_job_id":"1a730208-191d-4d5f-ad65-44a6b45e56d5","html_url":"https://github.com/piotrmurach/pastel","commit_stats":{"total_commits":257,"total_committers":12,"mean_commits":"21.416666666666668","dds":"0.046692607003890996","last_synced_commit":"7f90586be01aa30b5f6c86a747b3319a1d7e99b1"},"previous_names":["peter-murach/pastel"],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/piotrmurach/pastel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/piotrmurach","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/sbom","scorecard":{"id":734814,"data":{"date":"2025-08-11","repo":{"name":"github.com/piotrmurach/pastel","commit":"97d656f0d7ebb8b5c7f39d2020b43c28bb50eb71"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"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":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:50: update your workflow using https://app.stepsecurity.io/secureworkflow/piotrmurach/pastel/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/piotrmurach/pastel/ci.yml/master?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-22T15:28:18.633Z","repository_id":21775027,"created_at":"2025-08-22T15:28:18.633Z","updated_at":"2025-08-22T15:28:18.633Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32264431,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T09:15:33.318Z","status":"ssl_error","status_checked_at":"2026-04-25T09:15:31.997Z","response_time":59,"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":"piotrmurach","name":"Piotr Murach","uuid":"444312","kind":"user","description":"Tender loving command line.","email":"","website":"https://piotrmurach.com","location":"Sheffield / Olsztyn","twitter":"piotr_murach","company":null,"icon_url":"https://avatars.githubusercontent.com/u/444312?v=4","repositories_count":89,"last_synced_at":"2025-11-23T03:03:05.684Z","metadata":{"has_sponsors_listing":true},"html_url":"https://github.com/piotrmurach","funding_links":["https://github.com/sponsors/piotrmurach"],"total_stars":12891,"followers":648,"following":42,"created_at":"2022-11-02T16:41:01.260Z","updated_at":"2025-11-23T03:03:05.684Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/piotrmurach","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/piotrmurach/repositories"},"tags":[{"name":"v0.8.0","sha":"afd82952076e605402a54dd0a142cdcebe34edc7","kind":"tag","published_at":"2020-07-04T14:12:40.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.8.0","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.8.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.8.0/manifests"},{"name":"v0.7.4","sha":"7e68639503f94dfb3d4b2df87a2fd7f733ebc287","kind":"tag","published_at":"2020-05-08T10:26:06.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.7.4","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.7.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.7.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.4/manifests"},{"name":"v0.7.3","sha":"27bef1876c88d688fc3d4900856c921f9b32a773","kind":"tag","published_at":"2019-06-16T22:49:10.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.7.3","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.7.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.7.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.3/manifests"},{"name":"v0.7.2","sha":"e3f31242d2a38a3869484ee84cb4bf8d8abf9a50","kind":"tag","published_at":"2017-11-09T23:07:08.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.7.2","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.7.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.2/manifests"},{"name":"v0.7.1","sha":"d27d0e908bc92334d9541a50945ab0d06d1e9bf0","kind":"tag","published_at":"2017-01-09T23:57:28.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.7.1","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.7.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.1/manifests"},{"name":"v0.7.0","sha":"37e28336883d4a9e38ba11faac40a729c1d20870","kind":"tag","published_at":"2016-12-27T23:11:48.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.7.0","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.0/manifests"},{"name":"v0.6.1","sha":"182c35024bcca992054786869c2de299d400ae9c","kind":"tag","published_at":"2016-04-09T17:29:40.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.6.1","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.6.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.6.1/manifests"},{"name":"v0.6.0","sha":"a5ccf5d9e3eb66f516d8a6b70cc811badfc9db9a","kind":"tag","published_at":"2016-01-15T22:47:11.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.6.0","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.6.0/manifests"},{"name":"v0.5.3","sha":"a0d1b9b631d62b92006fdfb63d84ce32fef6cc16","kind":"tag","published_at":"2016-01-05T20:54:20.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.5.3","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.5.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.5.3/manifests"},{"name":"v0.5.2","sha":"27c5a1a4ef308930d05e68ead5cfdbc631678050","kind":"tag","published_at":"2015-11-27T23:17:50.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.5.2","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.5.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.5.2/manifests"},{"name":"v0.5.1","sha":"c051c797b63a41b1cb1868081a91afc3d5bc265c","kind":"tag","published_at":"2015-09-18T20:26:21.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.5.1","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.5.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.5.1/manifests"},{"name":"v0.5.0","sha":"5ae1b32422c4922737d2cd6baa764cc9b772c8ac","kind":"tag","published_at":"2015-09-13T21:21:02.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.5.0","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.5.0/manifests"},{"name":"v0.4.0","sha":"b99eb629575f694436cdb6decf6d92d08479aa73","kind":"tag","published_at":"2014-11-22T21:03:47.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.4.0","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.4.0/manifests"},{"name":"v0.3.0","sha":"0c4158559c5c9383042537910935c3b7301a90f1","kind":"tag","published_at":"2014-11-08T19:21:01.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.3.0","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.3.0/manifests"},{"name":"v0.2.1","sha":"aec9b79715150808014717f39443a707169b9783","kind":"tag","published_at":"2014-10-13T22:21:32.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.2.1","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.2.1/manifests"},{"name":"v0.2.0","sha":"6462b1c0c4bb10568ef3867100e5f49e83b70ba9","kind":"tag","published_at":"2014-10-12T14:48:36.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.2.0","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.2.0/manifests"}]},"repo_metadata_updated_at":"2026-04-27T15:02:54.318Z","dependent_packages_count":0,"downloads":106141521,"downloads_period":"total","dependent_repos_count":0,"rankings":{"downloads":0.27032579665012274,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":0.209232166607195,"average":0.11988949081432944},"purl":"pkg:gem/pastel?repository_url=https://gem.coop","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/rubygems/pastel","docker_dependents_count":258,"docker_downloads_count":482875349,"usage_url":"https://repos.ecosyste.ms/usage/rubygems/pastel","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/rubygems/pastel/dependencies","status":null,"funding_links":["https://github.com/sponsors/piotrmurach"],"critical":null,"issue_metadata":{"last_synced_at":"2026-04-19T11:00:55.041Z","issues_count":13,"pull_requests_count":14,"avg_time_to_close_issue":2187299.3076923075,"avg_time_to_close_pull_request":1270365.357142857,"issues_closed_count":13,"pull_requests_closed_count":14,"pull_request_authors_count":14,"issue_authors_count":13,"avg_comments_per_issue":2.6153846153846154,"avg_comments_per_pull_request":2.357142857142857,"merged_pull_requests_count":11,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":400314.0,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":1,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":2.0,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/issues","maintainers":[],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/pastel/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/pastel/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/pastel/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/pastel/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/pastel/codemeta","maintainers":[{"uuid":"54662","login":"piotrmurach","name":null,"email":null,"url":null,"packages_count":65,"html_url":"https://gem.coop/profiles/piotrmurach","role":null,"created_at":"2025-10-08T01:44:38.333Z","updated_at":"2025-10-08T01:44:38.333Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/piotrmurach/packages"}],"registry":{"name":"gem.coop","url":"https://gem.coop","ecosystem":"rubygems","default":false,"packages_count":190389,"maintainers_count":67476,"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":8614433,"name":"github.com/piotrmurach/pastel","ecosystem":"go","description":null,"homepage":null,"licenses":"mit","normalized_licenses":["MIT"],"repository_url":"https://github.com/piotrmurach/pastel","keywords_array":[],"namespace":null,"versions_count":16,"first_release_published_at":"2023-12-02T02:14:24.771Z","latest_release_published_at":"2020-07-04T12:43:56.000Z","latest_release_number":"v0.8.0","last_synced_at":"2026-04-27T15:02:26.799Z","created_at":"2023-12-02T02:14:18.529Z","updated_at":"2026-04-27T15:02:26.799Z","registry_url":"https://pkg.go.dev/github.com/piotrmurach/pastel","install_command":"go get github.com/piotrmurach/pastel","documentation_url":"https://pkg.go.dev/github.com/piotrmurach/pastel#section-documentation","metadata":{},"repo_metadata":{"id":21775027,"uuid":"25097327","full_name":"piotrmurach/pastel","owner":"piotrmurach","description":"Terminal output styling with intuitive and clean API.","archived":false,"fork":false,"pushed_at":"2024-04-09T22:41:23.000Z","size":245,"stargazers_count":657,"open_issues_count":0,"forks_count":23,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-09-07T19:46:52.847Z","etag":null,"topics":["colors","escape-sequences","ruby","ruby-gem","string-styling","style","terminal-emulators","terminal-themes"],"latest_commit_sha":null,"homepage":"https://ttytoolkit.org","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/piotrmurach.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","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},"funding":{"github":"piotrmurach"}},"created_at":"2014-10-11T22:15:23.000Z","updated_at":"2025-09-06T05:41:17.000Z","dependencies_parsed_at":"2024-04-08T23:33:28.219Z","dependency_job_id":"1a730208-191d-4d5f-ad65-44a6b45e56d5","html_url":"https://github.com/piotrmurach/pastel","commit_stats":{"total_commits":257,"total_committers":12,"mean_commits":"21.416666666666668","dds":"0.046692607003890996","last_synced_commit":"7f90586be01aa30b5f6c86a747b3319a1d7e99b1"},"previous_names":["peter-murach/pastel"],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/piotrmurach/pastel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/piotrmurach","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/sbom","scorecard":{"id":734814,"data":{"date":"2025-08-11","repo":{"name":"github.com/piotrmurach/pastel","commit":"97d656f0d7ebb8b5c7f39d2020b43c28bb50eb71"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"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":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:50: update your workflow using https://app.stepsecurity.io/secureworkflow/piotrmurach/pastel/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/piotrmurach/pastel/ci.yml/master?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-22T15:28:18.633Z","repository_id":21775027,"created_at":"2025-08-22T15:28:18.633Z","updated_at":"2025-08-22T15:28:18.633Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274100607,"owners_count":25222443,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-07T02:00:09.463Z","response_time":67,"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":"piotrmurach","name":"Piotr Murach","uuid":"444312","kind":"user","description":"Tender loving command line.","email":"","website":"https://piotrmurach.com","location":"Sheffield / Olsztyn","twitter":"piotr_murach","company":null,"icon_url":"https://avatars.githubusercontent.com/u/444312?v=4","repositories_count":89,"last_synced_at":"2025-09-08T01:53:45.531Z","metadata":{"has_sponsors_listing":true},"html_url":"https://github.com/piotrmurach","funding_links":["https://github.com/sponsors/piotrmurach"],"total_stars":12797,"followers":641,"following":42,"created_at":"2022-11-02T16:41:01.260Z","updated_at":"2025-09-08T01:53:45.531Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/piotrmurach","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/piotrmurach/repositories"},"tags":[{"name":"v0.8.0","sha":"afd82952076e605402a54dd0a142cdcebe34edc7","kind":"tag","published_at":"2020-07-04T14:12:40.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.8.0","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.8.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.8.0/manifests"},{"name":"v0.7.4","sha":"7e68639503f94dfb3d4b2df87a2fd7f733ebc287","kind":"tag","published_at":"2020-05-08T10:26:06.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.7.4","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.7.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.7.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.4/manifests"},{"name":"v0.7.3","sha":"27bef1876c88d688fc3d4900856c921f9b32a773","kind":"tag","published_at":"2019-06-16T22:49:10.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.7.3","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.7.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.7.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.3/manifests"},{"name":"v0.7.2","sha":"e3f31242d2a38a3869484ee84cb4bf8d8abf9a50","kind":"tag","published_at":"2017-11-09T23:07:08.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.7.2","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.7.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.2/manifests"},{"name":"v0.7.1","sha":"d27d0e908bc92334d9541a50945ab0d06d1e9bf0","kind":"tag","published_at":"2017-01-09T23:57:28.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.7.1","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.7.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.1/manifests"},{"name":"v0.7.0","sha":"37e28336883d4a9e38ba11faac40a729c1d20870","kind":"tag","published_at":"2016-12-27T23:11:48.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.7.0","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.0/manifests"},{"name":"v0.6.1","sha":"182c35024bcca992054786869c2de299d400ae9c","kind":"tag","published_at":"2016-04-09T17:29:40.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.6.1","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.6.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.6.1/manifests"},{"name":"v0.6.0","sha":"a5ccf5d9e3eb66f516d8a6b70cc811badfc9db9a","kind":"tag","published_at":"2016-01-15T22:47:11.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.6.0","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.6.0/manifests"},{"name":"v0.5.3","sha":"a0d1b9b631d62b92006fdfb63d84ce32fef6cc16","kind":"tag","published_at":"2016-01-05T20:54:20.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.5.3","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.5.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.5.3/manifests"},{"name":"v0.5.2","sha":"27c5a1a4ef308930d05e68ead5cfdbc631678050","kind":"tag","published_at":"2015-11-27T23:17:50.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.5.2","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.5.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.5.2/manifests"},{"name":"v0.5.1","sha":"c051c797b63a41b1cb1868081a91afc3d5bc265c","kind":"tag","published_at":"2015-09-18T20:26:21.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.5.1","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.5.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.5.1/manifests"},{"name":"v0.5.0","sha":"5ae1b32422c4922737d2cd6baa764cc9b772c8ac","kind":"tag","published_at":"2015-09-13T21:21:02.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.5.0","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.5.0/manifests"},{"name":"v0.4.0","sha":"b99eb629575f694436cdb6decf6d92d08479aa73","kind":"tag","published_at":"2014-11-22T21:03:47.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.4.0","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.4.0/manifests"},{"name":"v0.3.0","sha":"0c4158559c5c9383042537910935c3b7301a90f1","kind":"tag","published_at":"2014-11-08T19:21:01.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.3.0","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.3.0/manifests"},{"name":"v0.2.1","sha":"aec9b79715150808014717f39443a707169b9783","kind":"tag","published_at":"2014-10-13T22:21:32.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.2.1","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.2.1/manifests"},{"name":"v0.2.0","sha":"6462b1c0c4bb10568ef3867100e5f49e83b70ba9","kind":"tag","published_at":"2014-10-12T14:48:36.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.2.0","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.2.0/manifests"}]},"repo_metadata_updated_at":"2025-09-08T11:19:35.540Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":10.801592556016239,"dependent_packages_count":9.575730298247606,"stargazers_count":2.430147051454982,"forks_count":4.405951088075822,"docker_downloads_count":null,"average":6.803355248448662},"purl":"pkg:golang/github.com/piotrmurach/pastel","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/piotrmurach/pastel","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/piotrmurach/pastel","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/piotrmurach/pastel/dependencies","status":null,"funding_links":["https://github.com/sponsors/piotrmurach"],"critical":null,"issue_metadata":{"last_synced_at":"2025-08-31T18:09:22.321Z","issues_count":13,"pull_requests_count":14,"avg_time_to_close_issue":2187299.3076923075,"avg_time_to_close_pull_request":1270365.357142857,"issues_closed_count":13,"pull_requests_closed_count":14,"pull_request_authors_count":14,"issue_authors_count":13,"avg_comments_per_issue":2.6153846153846154,"avg_comments_per_pull_request":2.357142857142857,"merged_pull_requests_count":11,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":400314.0,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":1,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":2.0,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/issues","maintainers":[],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fpiotrmurach%2Fpastel/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fpiotrmurach%2Fpastel/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fpiotrmurach%2Fpastel/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fpiotrmurach%2Fpastel/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fpiotrmurach%2Fpastel/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":2118292,"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":270426,"name":"pastel","ecosystem":"rubygems","description":"Terminal strings styling with intuitive and clean API.","homepage":"https://ttytoolkit.org","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/piotrmurach/pastel","keywords_array":[],"namespace":null,"versions_count":17,"first_release_published_at":"2014-10-11T22:13:32.667Z","latest_release_published_at":"2020-07-04T14:13:49.341Z","latest_release_number":"0.8.0","last_synced_at":"2026-04-28T13:30:41.708Z","created_at":"2022-04-06T06:39:20.431Z","updated_at":"2026-04-28T13:30:44.488Z","registry_url":"https://rubygems.org/gems/pastel","install_command":"gem install pastel -s https://rubygems.org","documentation_url":"http://www.rubydoc.info/gems/pastel/","metadata":{"funding":null},"repo_metadata":{"id":21775027,"uuid":"25097327","full_name":"piotrmurach/pastel","owner":"piotrmurach","description":"Terminal output styling with intuitive and clean API.","archived":false,"fork":false,"pushed_at":"2024-04-09T22:41:23.000Z","size":245,"stargazers_count":665,"open_issues_count":0,"forks_count":23,"subscribers_count":13,"default_branch":"master","last_synced_at":"2026-03-22T20:03:10.985Z","etag":null,"topics":["colors","escape-sequences","ruby","ruby-gem","string-styling","style","terminal-emulators","terminal-themes"],"latest_commit_sha":null,"homepage":"https://ttytoolkit.org","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/piotrmurach.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","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},"funding":{"github":"piotrmurach"}},"created_at":"2014-10-11T22:15:23.000Z","updated_at":"2026-03-06T15:09:32.000Z","dependencies_parsed_at":"2024-04-08T23:33:28.219Z","dependency_job_id":"1a730208-191d-4d5f-ad65-44a6b45e56d5","html_url":"https://github.com/piotrmurach/pastel","commit_stats":{"total_commits":257,"total_committers":12,"mean_commits":"21.416666666666668","dds":"0.046692607003890996","last_synced_commit":"7f90586be01aa30b5f6c86a747b3319a1d7e99b1"},"previous_names":["peter-murach/pastel"],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/piotrmurach/pastel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/piotrmurach","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/sbom","scorecard":{"id":734814,"data":{"date":"2025-08-11","repo":{"name":"github.com/piotrmurach/pastel","commit":"97d656f0d7ebb8b5c7f39d2020b43c28bb50eb71"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"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":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:50: update your workflow using https://app.stepsecurity.io/secureworkflow/piotrmurach/pastel/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/piotrmurach/pastel/ci.yml/master?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-22T15:28:18.633Z","repository_id":21775027,"created_at":"2025-08-22T15:28:18.633Z","updated_at":"2025-08-22T15:28:18.633Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31068453,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-27T22:49:25.097Z","status":"ssl_error","status_checked_at":"2026-03-27T22:49:22.599Z","response_time":164,"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":"piotrmurach","name":"Piotr Murach","uuid":"444312","kind":"user","description":"Tender loving command line.","email":"","website":"https://piotrmurach.com","location":"Sheffield / Olsztyn","twitter":"piotr_murach","company":null,"icon_url":"https://avatars.githubusercontent.com/u/444312?v=4","repositories_count":89,"last_synced_at":"2025-11-23T03:03:05.684Z","metadata":{"has_sponsors_listing":true},"html_url":"https://github.com/piotrmurach","funding_links":["https://github.com/sponsors/piotrmurach"],"total_stars":12891,"followers":648,"following":42,"created_at":"2022-11-02T16:41:01.260Z","updated_at":"2025-11-23T03:03:05.684Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/piotrmurach","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/piotrmurach/repositories"},"tags":[{"name":"v0.8.0","sha":"afd82952076e605402a54dd0a142cdcebe34edc7","kind":"tag","published_at":"2020-07-04T14:12:40.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.8.0","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.8.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.8.0/manifests"},{"name":"v0.7.4","sha":"7e68639503f94dfb3d4b2df87a2fd7f733ebc287","kind":"tag","published_at":"2020-05-08T10:26:06.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.7.4","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.7.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.7.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.4/manifests"},{"name":"v0.7.3","sha":"27bef1876c88d688fc3d4900856c921f9b32a773","kind":"tag","published_at":"2019-06-16T22:49:10.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.7.3","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.7.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.7.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.3/manifests"},{"name":"v0.7.2","sha":"e3f31242d2a38a3869484ee84cb4bf8d8abf9a50","kind":"tag","published_at":"2017-11-09T23:07:08.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.7.2","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.7.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.2/manifests"},{"name":"v0.7.1","sha":"d27d0e908bc92334d9541a50945ab0d06d1e9bf0","kind":"tag","published_at":"2017-01-09T23:57:28.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.7.1","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.7.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.1/manifests"},{"name":"v0.7.0","sha":"37e28336883d4a9e38ba11faac40a729c1d20870","kind":"tag","published_at":"2016-12-27T23:11:48.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.7.0","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.7.0/manifests"},{"name":"v0.6.1","sha":"182c35024bcca992054786869c2de299d400ae9c","kind":"tag","published_at":"2016-04-09T17:29:40.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.6.1","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.6.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.6.1/manifests"},{"name":"v0.6.0","sha":"a5ccf5d9e3eb66f516d8a6b70cc811badfc9db9a","kind":"tag","published_at":"2016-01-15T22:47:11.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.6.0","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.6.0/manifests"},{"name":"v0.5.3","sha":"a0d1b9b631d62b92006fdfb63d84ce32fef6cc16","kind":"tag","published_at":"2016-01-05T20:54:20.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.5.3","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.5.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.5.3/manifests"},{"name":"v0.5.2","sha":"27c5a1a4ef308930d05e68ead5cfdbc631678050","kind":"tag","published_at":"2015-11-27T23:17:50.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.5.2","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.5.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.5.2/manifests"},{"name":"v0.5.1","sha":"c051c797b63a41b1cb1868081a91afc3d5bc265c","kind":"tag","published_at":"2015-09-18T20:26:21.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.5.1","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.5.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.5.1/manifests"},{"name":"v0.5.0","sha":"5ae1b32422c4922737d2cd6baa764cc9b772c8ac","kind":"tag","published_at":"2015-09-13T21:21:02.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.5.0","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.5.0/manifests"},{"name":"v0.4.0","sha":"b99eb629575f694436cdb6decf6d92d08479aa73","kind":"tag","published_at":"2014-11-22T21:03:47.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.4.0","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.4.0/manifests"},{"name":"v0.3.0","sha":"0c4158559c5c9383042537910935c3b7301a90f1","kind":"tag","published_at":"2014-11-08T19:21:01.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.3.0","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.3.0/manifests"},{"name":"v0.2.1","sha":"aec9b79715150808014717f39443a707169b9783","kind":"tag","published_at":"2014-10-13T22:21:32.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.2.1","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.2.1/manifests"},{"name":"v0.2.0","sha":"6462b1c0c4bb10568ef3867100e5f49e83b70ba9","kind":"tag","published_at":"2014-10-12T14:48:36.000Z","download_url":"https://codeload.github.com/piotrmurach/pastel/tar.gz/v0.2.0","html_url":"https://github.com/piotrmurach/pastel/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/piotrmurach/pastel@v0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/tags/v0.2.0/manifests"}]},"repo_metadata_updated_at":"2026-04-28T13:30:44.467Z","dependent_packages_count":231,"downloads":105980745,"downloads_period":"total","dependent_repos_count":4891,"rankings":{"downloads":0.4092282646268441,"dependent_repos_count":0.4527157368896422,"dependent_packages_count":0.17450742074686948,"stargazers_count":2.286437483970964,"forks_count":5.279267626364559,"docker_downloads_count":0.25479198492434296,"average":1.4761580862538703},"purl":"pkg:gem/pastel","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/rubygems/pastel","docker_dependents_count":258,"docker_downloads_count":482875349,"usage_url":"https://repos.ecosyste.ms/usage/rubygems/pastel","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/rubygems/pastel/dependencies","status":null,"funding_links":["https://github.com/sponsors/piotrmurach"],"critical":true,"issue_metadata":{"last_synced_at":"2026-04-19T11:00:55.041Z","issues_count":13,"pull_requests_count":14,"avg_time_to_close_issue":2187299.3076923075,"avg_time_to_close_pull_request":1270365.357142857,"issues_closed_count":13,"pull_requests_closed_count":14,"pull_request_authors_count":14,"issue_authors_count":13,"avg_comments_per_issue":2.6153846153846154,"avg_comments_per_pull_request":2.357142857142857,"merged_pull_requests_count":11,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":400314.0,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":1,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":2.0,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/issues","maintainers":[],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/pastel/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/pastel/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/pastel/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/pastel/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/pastel/codemeta","maintainers":[{"uuid":"54662","login":"piotrmurach","name":null,"email":null,"url":null,"packages_count":65,"html_url":"https://rubygems.org/profiles/piotrmurach","role":null,"created_at":"2022-11-09T09:44:40.690Z","updated_at":"2022-11-09T09:44:40.690Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/piotrmurach/packages"}],"registry":{"name":"rubygems.org","url":"https://rubygems.org","ecosystem":"rubygems","default":true,"packages_count":205536,"maintainers_count":68468,"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":19373,"full_name":"piotrmurach/pastel","default_branch":"master","total_commits":264,"total_committers":12,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":22.0,"dds":0.045454545454545414,"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-28T06:39:17.421Z","last_synced_commit":"97d656f0d7ebb8b5c7f39d2020b43c28bb50eb71","created_at":"2023-03-07T11:40:53.841Z","updated_at":"2026-04-28T06:39:13.215Z","committers":[{"name":"Piotr Murach","email":"pmurach@gmail.com","login":"piotrmurach","count":252},{"name":"Jared Ning","email":"jared@redningja.com","login":"ordinaryzelig","count":2},{"name":"kbennett","email":"keithrbennett@gmail.com","login":"keithrbennett","count":1},{"name":"deepj","email":"deepjungle.maca@gmail.com","login":"deepj","count":1},{"name":"Viktor Vad","email":"vad.viktor@gmail.com","login":"vadviktor","count":1},{"name":"RKushnir","email":"RKushnir","login":"RKushnir","count":1},{"name":"Nick Pezza","email":"npezza93@gmail.com","login":"npezza93","count":1},{"name":"Michael Furtak","email":"michael.furtak@gmail.com","login":"mfurtak","count":1},{"name":"Matt Brictson","email":"mattbrictson","login":"mattbrictson","count":1},{"name":"Daniel Vartanov","email":"dan@vartanov.net","login":"DanielVartanov","count":1},{"name":"Andrea Longhi","email":"andrea@spaghetticode.it","login":"spaghetticode","count":1},{"name":"Igor Kapkov","email":"igasgeek@me.com","login":null,"count":1}],"past_year_committers":[],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-28T00:00:07.369Z","repositories_count":6221091,"commits_count":900018882,"contributors_count":34886007,"owners_count":1146694,"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":"piotrmurach/pastel","html_url":"https://github.com/piotrmurach/pastel","last_synced_at":"2026-04-19T11:00:55.041Z","status":"error","issues_count":13,"pull_requests_count":14,"avg_time_to_close_issue":2187299.3076923075,"avg_time_to_close_pull_request":1270365.357142857,"issues_closed_count":13,"pull_requests_closed_count":14,"pull_request_authors_count":14,"issue_authors_count":13,"avg_comments_per_issue":2.6153846153846154,"avg_comments_per_pull_request":2.357142857142857,"merged_pull_requests_count":11,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":400314.0,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":1,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":2.0,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"created_at":"2023-05-10T21:58:34.769Z","updated_at":"2026-04-19T11:00:55.042Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrmurach%2Fpastel/issues","issue_labels_count":{"enhancement":2,"bug":1},"pull_request_labels_count":{},"issue_author_associations_count":{"NONE":11,"CONTRIBUTOR":2},"pull_request_author_associations_count":{"CONTRIBUTOR":11,"NONE":3},"issue_authors":{"brandondrew":1,"ashayh":1,"keithrbennett":1,"vadviktor":1,"gtom":1,"kylekyle":1,"tophe":1,"pjvleeuwen":1,"swaathi":1,"jbasinger":1,"oliviermilla":1,"noraj":1,"jschank":1},"pull_request_authors":{"npezza93":1,"keithrbennett":1,"vadviktor":1,"deepj":1,"DanielVartanov":1,"tas50":1,"ordinaryzelig":1,"salbertson":1,"RKushnir":1,"spaghetticode":1,"igas":1,"mfurtak":1,"mattbrictson":1,"wiehann":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-21T00:00:07.919Z","repositories_count":14347796,"issues_count":34449597,"pull_requests_count":112772519,"authors_count":11241686,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{},"past_year_pull_request_author_associations_count":{},"past_year_issue_authors":{},"past_year_pull_request_authors":{},"maintainers":[],"active_maintainers":[]},"events":{"total":{"ForkEvent":1,"IssuesEvent":2,"WatchEvent":23,"IssueCommentEvent":2},"last_year":{"ForkEvent":1,"WatchEvent":10}},"keywords":["colors","escape-sequences","ruby","ruby-gem","string-styling","style","terminal-emulators","terminal-themes"],"dependencies":[{"ecosystem":"rubygems","filepath":"Gemfile","sha":null,"kind":"manifest","created_at":"2022-08-19T16:50:54.001Z","updated_at":"2022-08-19T16:50:54.001Z","repository_link":"https://github.com/piotrmurach/pastel/blob/master/Gemfile","dependencies":[{"id":2063145950,"package_name":"coveralls_reborn","ecosystem":"rubygems","requirements":"~\u003e 0.21.0","direct":true,"kind":"development","optional":false},{"id":2063145951,"package_name":"simplecov","ecosystem":"rubygems","requirements":"~\u003e 0.21.0","direct":true,"kind":"development","optional":false},{"id":2063145952,"package_name":"yardstick","ecosystem":"rubygems","requirements":"~\u003e 0.9.9","direct":true,"kind":"development","optional":false},{"id":2063145953,"package_name":"benchmark-ips","ecosystem":"rubygems","requirements":"~\u003e 2.7.2","direct":true,"kind":"development","optional":false}]},{"ecosystem":"rubygems","filepath":"pastel.gemspec","sha":null,"kind":"manifest","created_at":"2022-08-19T16:50:54.393Z","updated_at":"2022-08-19T16:50:54.393Z","repository_link":"https://github.com/piotrmurach/pastel/blob/master/pastel.gemspec","dependencies":[{"id":2063147858,"package_name":"tty-color","ecosystem":"rubygems","requirements":"~\u003e 0.5","direct":true,"kind":"runtime","optional":false},{"id":2063147859,"package_name":"rake","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":2063147860,"package_name":"rspec","ecosystem":"rubygems","requirements":"\u003e= 3.0","direct":true,"kind":"development","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/ci.yml","sha":null,"kind":"manifest","created_at":"2024-01-05T21:58:39.321Z","updated_at":"2024-01-05T21:58:39.321Z","repository_link":"https://github.com/piotrmurach/pastel/blob/master/.github/workflows/ci.yml","dependencies":[{"id":15452723568,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":15452723569,"package_name":"ruby/setup-ruby","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false}]}],"score":29.87317718456233,"created_at":"2024-12-15T21:38:07.178Z","updated_at":"2026-04-30T16:30:24.762Z","avatar_url":"https://github.com/piotrmurach.png","language":"Ruby","monthly_downloads":0,"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg width=\"215\" src=\"https://cdn.rawgit.com/piotrmurach/pastel/master/assets/pastel_logo.png\" alt=\"pastel logo\" /\u003e\n\u003c/div\u003e\n\n# Pastel\n\n[![Gem Version](https://badge.fury.io/rb/pastel.svg)][gem]\n[![Actions CI](https://github.com/piotrmurach/pastel/actions/workflows/ci.yml/badge.svg)][gh_actions_ci]\n[![Build status](https://ci.appveyor.com/api/projects/status/9blbjfq42o4v1rk4?svg=true)][appveyor]\n[![Code Climate](https://codeclimate.com/github/piotrmurach/pastel/badges/gpa.svg)][codeclimate]\n[![Coverage Status](https://coveralls.io/repos/github/piotrmurach/pastel/badge.svg)][coverage]\n\n[gem]: https://badge.fury.io/rb/pastel\n[gh_actions_ci]: https://github.com/piotrmurach/pastel/actions/workflows/ci.yml\n[appveyor]: https://ci.appveyor.com/project/piotrmurach/pastel\n[codeclimate]: https://codeclimate.com/github/piotrmurach/pastel\n[coverage]: https://coveralls.io/github/piotrmurach/pastel\n\n\u003e Terminal output styling with intuitive and clean API that doesn't monkey patch String class.\n\n**Pastel** is minimal and focused to work in all terminal emulators.\n\n![screenshot](https://github.com/piotrmurach/pastel/raw/master/assets/screenshot.png)\n\n**Pastel** provides independent coloring component for [TTY](https://github.com/piotrmurach/tty) toolkit.\n\n## Features\n\n* Doesn't monkey patch `String`\n* Intuitive and expressive API\n* Minimal and focused to work on all terminal emulators\n* Auto-detection of color support\n* Allows nested styles\n* Performant\n\n## Installation\n\nAdd this line to your application's Gemfile:\n\n    gem \"pastel\"\n\nAnd then execute:\n\n    $ bundle\n\nOr install it yourself as:\n\n    $ gem install pastel\n\n## Contents\n\n* [1. Usage](#1-usage)\n* [2. Interface](#2-interface)\n  * [2.1 Color](#21-color)\n  * [2.2 Decorate](#22-decorate)\n  * [2.3 Undecorate](#23-undecorate)\n  * [2.4 Detach](#24-detach)\n  * [2.5 Strip](#25-strip)\n  * [2.6 Styles](#26-styles)\n  * [2.7 Lookup](#27-lookup)\n  * [2.8 Valid?](#28-valid)\n  * [2.9 Colored?](#29-colored)\n  * [2.10 Enabled?](#210-enabled)\n  * [2.11 Eachline](#211-eachline)\n  * [2.12 Alias Color](#212-alias-color)\n* [3. Supported Colors](#3-supported-colors)\n* [4. Environment](#4-environment)\n* [5. Command line](#5-command-line)\n\n## 1 Usage\n\n**Pastel** provides a simple, minimal and intuitive API for styling your strings:\n\n```ruby\npastel = Pastel.new\n\nputs pastel.red(\"Unicorns!\")\n```\n\n**Pastel** doesn't print the colored string out, just returns it, you'll have to print it yourself.\n\nYou can compose multiple styles through chainable API:\n\n```ruby\npastel.red.on_green.bold(\"Unicorns!\")\n```\n\nIt allows you to combine styled strings with unstyled ones:\n\n```ruby\npastel.red(\"Unicorns\") + \" will rule \" + pastel.green(\"the World!\")\n```\n\nIt supports variable number of arguments:\n\n```ruby\npastel.red(\"Unicorns\", \"are\", \"running\", \"everywhere!\")\n```\n\nYou can also nest styles as follows:\n\n```ruby\npastel.red(\"Unicorns \", pastel.on_green(\"everywhere!\"))\n```\n\nNesting is smart enough to know where one color ends and another one starts:\n\n```ruby\npastel.red(\"Unicorns \" + pastel.green(\"everywhere\") + pastel.on_yellow(\"!\"))\n```\n\nYou can also nest styles inside blocks:\n\n```ruby\npastel.red.on_green(\"Unicorns\") {\n  green.on_red(\"will \", \"dominate\") {\n    yellow(\"the world!\")\n  }\n}\n```\n\nWhen dealing with multiline strings you can set `eachline` option(more info see [eachline](#211-eachline)):\n\n```ruby\npastel = Pastel.new(eachline: \"\\n\")\n```\n\nYou can also predefine needed styles and reuse them:\n\n```ruby\nerror    = pastel.red.bold.detach\nwarning  = pastel.yellow.detach\n\nputs error.(\"Error!\")\nputs warning.(\"Warning\")\n```\n\nIf your output is redirected to a file, you probably don't want Pastel to add color to your text.\nSee https://github.com/piotrmurach/pastel#210-enabled for a way to easily accomplish this.\n\n**Pastel** has companion library called `pastel-cli` that allows you to style text in terminal via `pastel` executable:\n\n```bash\n$ pastel green \"Unicorns \u0026 rainbows!\"\n```\n\n## 2 Interface\n\n### 2.1 Color\n\npastel.`\u003ccolor\u003e[.\u003ccolor\u003e...](string, [string...])`\n\nColor styles are invoked as method calls with a string argument. A given color can take any number of strings as arguments. Then it returns a colored string which isn't printed out to terminal. You need to print it yourself if you need to. This is done so that you can save it as a string, pass to something else, send it to a file handle and so on.\n\n```ruby\npastel.red(\"Unicorns \", pastel.bold.underline(\"everywhere\"), \"!\")\n```\n\nPlease refer to [3. Supported Colors](#3-supported-colors) section for full list of supported styles.\n\n### 2.2 Decorate\n\nThis method is a lower level string styling call that takes as the first argument the string to style followed by any number of color attributes, and returns string wrapped in styles.\n\n```ruby\npastel.decorate(\"Unicorn\", :green, :on_blue, :bold)\n```\n\nThis method will be useful in situations where colors are provided as a list of parameters that have been generated dynamically.\n\n### 2.3 Undecorate\n\nIt performs the opposite to `decorate` method by turning color escape sequences found in the string into a list of hash objects corresponding with the attribute names set by those sequences. Depending on the parsed string, each hash object may contain `:foreground`, `:background`, `:text` and/or `:style` keys.\n\n```ruby\npastel.undecorate(\"\\e[32mfoo\\e[0m \\e[31mbar\\e[0m\")\n# =\u003e [{foreground: :green, text: \"foo\"}, {text: \" \"}, {foreground: :red, text: \"bar\"}]\n```\n\nTo translate the color name into sequence use [lookup](#27-lookup)\n\n### 2.4 Detach\n\nThe `detach` method allows to keep all the associated colors with the detached instance for later reference. This method is useful when detached colors are being reused frequently and thus shorthand version is preferred. The detached object can be invoked using `call` method or it's shorthand `.()`, as well as array like access `[]`. For example, the following are equivalent examples of detaching colors:\n\n```ruby\nnotice = pastel.blue.bold.detach\n\nnotice.call(\"Unicorns running\")\nnotice.(\"Unicorns running\")\nnotice[\"Unicorns running\"]\n```\n\n### 2.5 Strip\n\nStrip only color sequence characters from the provided strings and preserve any movement codes or other escape sequences. The return value will be either array of modified strings or a single string. The arguments are not modified.\n\n```ruby\npastel.strip(\"\\e[1A\\e[1m\\e[34mbold blue text\\e[0m\")  # =\u003e \"\\e[1Abold blue text\"\n```\n\n### 2.6 Styles\n\nTo get a full list of supported styles with the corresponding color codes do:\n\n```ruby\npastel.styles\n```\n\n### 2.7 Lookup\n\nTo perform translation of color name into ansi escape code use `lookup`:\n\n```ruby\npastel.lookup(:red)   # =\u003e \"\\e[31m\"\npastel.lookup(:reset) # =\u003e \"\\e[0m\"\n```\n\n### 2.8 Valid?\n\nDetermine whether a color or a list of colors are valid. `valid?` takes one or more attribute strings or symbols and returns true if all attributes are known and false otherwise.\n\n```ruby\npastel.valid?(:red, :blue) # =\u003e true\npastel.valid?(:unicorn)    # =\u003e false\n```\n\n### 2.9 Colored?\n\nIn order to determine if string has color escape codes use `colored?` like so\n\n```ruby\npastel.colored?(\"\\e[31mcolorful\\e[0m\")  # =\u003e true\n```\n\n### 2.10 Enabled?\n\nIn order to detect if your terminal supports coloring do:\n\n```ruby\npastel.enabled?   # =\u003e false\n```\n\nIn cases when the color support is not provided no styling will be applied to the colored string. Moreover, you can force **Pastel** to always print out string with coloring switched on:\n\n```ruby\npastel = Pastel.new(enabled: true)\npastel.enabled?   # =\u003e true\n```\n\nIf you are outputting to stdout or stderr, and want to suppress color if output is redirected to a file, \nyou can set the enabled attribute dynamically, as in:\n\n```ruby\nstdout_pastel = Pastel.new(enabled: $stdout.tty?)\nstderr_pastel = Pastel.new(enabled: $stderr.tty?)\n```\n\n### 2.11 Eachline\n\nNormally **Pastel** colors string by putting color codes at the beginning and end of the string, but if you provide `eachline` option set to some string, that string will be considered the line delimiter. Consequently, each line will be separately colored with escape sequence and reset code at the end. This option is desirable if the output string contains newlines and you're using background colors. Since color code that spans more than one line is often interpreted by terminal as providing background for all the lines that follow. This in turn may cause programs such as pagers to spill the colors throughout the text. In most cases you will want to set `eachline` to `\\n` character like so:\n\n```ruby\npastel = Pastel.new(eachline: \"\\n\")\npastel.red(\"foo\\nbar\")  # =\u003e \"\\e[31mfoo\\e[0m\\n\\e[31mbar\\e[0m\"\n```\n\n### 2.12 Alias Color\n\nIn order to setup an alias for standard colors do:\n\n```ruby\npastel.alias_color(:funky, :red, :bold)\n```\n\nFrom that point forward, `:funky` alias can be passed to `decorate`, `valid?` with the same meaning as standard colors:\n\n```ruby\npastel.funky.on_green(\"unicorn\")   # =\u003e will use :red, :bold color\n```\n\nThis method allows you to give more meaningful names to existing colors.\n\nYou can also use the `PASTEL_COLORS_ALIASES` environment variable (see [Environment](#4-environment)) to specify aliases.\n\nNote: Aliases are global and affect all callers in the same process.\n\n## 3 Supported Colors\n\n**Pastel** works with terminal emulators that support minimum sixteen colors. It provides `16` basic colors and `8` styles with further `16` bright color pairs. The corresponding bright color is obtained by prepending the `bright` to the normal color name. For example, color `red` will have `bright_red` as its pair.\n\nThe variant with `on_` prefix will style the text background color.\n\nThe foreground colors:\n\n* `black`\n* `red`\n* `green`\n* `yellow`\n* `blue`\n* `magenta`\n* `cyan`\n* `white`\n* `bright_black`\n* `bright_red`\n* `bright_green`\n* `bright_yellow`\n* `bright_blue`\n* `bright_magenta`\n* `bright_cyan`\n* `bright_white`\n\nThe background colors:\n\n* `on_black`\n* `on_red`\n* `on_green`\n* `on_yellow`\n* `on_blue`\n* `on_magenta`\n* `on_cyan`\n* `on_white`\n* `on_bright_black`\n* `on_bright_red`\n* `on_bright_green`\n* `on_bright_yellow`\n* `on_bright_blue`\n* `on_bright_magenta`\n* `on_bright_cyan`\n* `on_bright_white`\n\nGeneric styles:\n\n* `clear`\n* `bold`\n* `dim`\n* `italic`\n* `underline`\n* `inverse`\n* `hidden`\n* `strikethrough`\n\n## 4 Environment\n\n### 4.1 PASTEL_COLORS_ALIASES\n\nThis environment variable allows you to specify custom color aliases at runtime that will be understood by **Pastel**. The environment variable is read and used when the instance of **Pastel** is created. You can also use `alias_color` to create aliases.\n\nOnly alphanumeric and `_` and `.` are allowed in the alias names with the following format:\n\n```ruby\nPASTEL_COLORS_ALIASES=\"newcolor_1=red,newcolor_2=on_green,funky=red.bold\"\n```\n\n## 5. Command line\n\nYou can also install [pastel-cli](https://github.com/piotrmurach/pastel-cli) to use `pastel` executable in terminal:\n\n```bash\n$ pastel green 'Unicorns \u0026 rainbows!'\n```\n\n## Contributing\n\n1. Fork it ( https://github.com/piotrmurach/pastel/fork )\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create a new Pull Request\n\n## Code of Conduct\n\nEveryone interacting in the Pastel project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/piotrmurach/pastel/blob/master/CODE_OF_CONDUCT.md).\n\n## Copyright\n\nCopyright (c) 2014 Piotr Murach. See LICENSE for further details.\n","funding_links":["https://github.com/sponsors/piotrmurach"],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["activerecord","rubygem","activejob","mvc","deployment","tty","tty-components","dry-rb","gem","capistrano"],"project_url":"https://ruby.ecosyste.ms/api/v1/projects/169","html_url":"https://ruby.ecosyste.ms/projects/169"}