{"id":263,"name":null,"description":"A Ruby CSS parser that's fully compliant with the CSS Syntax Level 3 specification.","url":"https://github.com/rgrove/crass","last_synced_at":"2026-04-30T16:30:22.182Z","repository":{"id":10878230,"uuid":"13166823","full_name":"rgrove/crass","owner":"rgrove","description":"A Ruby CSS parser that's fully compliant with the CSS Syntax Level 3 specification.","archived":false,"fork":false,"pushed_at":"2024-05-23T20:22:52.000Z","size":192,"stargazers_count":142,"open_issues_count":2,"forks_count":14,"subscribers_count":10,"default_branch":"main","last_synced_at":"2026-03-09T18:41:21.010Z","etag":null,"topics":["css","parser","ruby"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rgrove.png","metadata":{"files":{"readme":"README.md","changelog":"HISTORY.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-09-28T04:05:19.000Z","updated_at":"2025-06-15T03:27:21.000Z","dependencies_parsed_at":"2024-02-26T00:59:46.908Z","dependency_job_id":"40f70019-c62f-41a0-8faa-d35ad4cfa303","html_url":"https://github.com/rgrove/crass","commit_stats":{"total_commits":106,"total_committers":10,"mean_commits":10.6,"dds":"0.10377358490566035","last_synced_commit":"b51a88e541a3ba8657f03e63fe4c4f65fcaa04ca"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/rgrove/crass","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rgrove","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/sbom","scorecard":{"id":773818,"data":{"date":"2025-08-11","repo":{"name":"github.com/rgrove/crass","commit":"b51a88e541a3ba8657f03e63fe4c4f65fcaa04ca"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4,"checks":[{"name":"Code-Review","score":2,"reason":"Found 7/26 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"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":"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":"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":"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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/tests.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":"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/tests.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/rgrove/crass/tests.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/rgrove/crass/tests.yml/main?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 12 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-23T02:59:28.294Z","repository_id":10878230,"created_at":"2025-08-23T02:59:28.294Z","updated_at":"2025-08-23T02:59:28.294Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30554436,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-15T23:04:10.583Z","status":"ssl_error","status_checked_at":"2026-03-15T23:00:23.757Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"rgrove","name":"Ryan Grove","uuid":"1465","kind":"user","description":"I like pie.","email":"","website":"https://wonko.com","location":"Portland, OR","twitter":null,"company":"SmugMug","icon_url":"https://avatars.githubusercontent.com/u/1465?u=1e86f1faa0a945cc1ef91c86c86428dc0bf603d4\u0026v=4","repositories_count":88,"last_synced_at":"2024-04-08T15:11:43.710Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/rgrove","funding_links":[],"total_stars":8034,"followers":793,"following":47,"created_at":"2022-11-02T16:43:30.650Z","updated_at":"2024-04-08T15:11:53.065Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rgrove","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rgrove/repositories"},"packages":[{"id":13778629,"name":"ruby-crass","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/rgrove/crass/","licenses":null,"normalized_licenses":[],"repository_url":"https://github.com/rgrove/crass","keywords_array":["universe/misc"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-13T13:14:52.131Z","latest_release_published_at":"2026-02-13T13:14:52.131Z","latest_release_number":"1.0.2-3","last_synced_at":"2026-03-13T13:37:56.090Z","created_at":"2026-02-13T13:14:51.994Z","updated_at":"2026-03-13T13:37:56.090Z","registry_url":"https://launchpad.net/ubuntu/+source/ruby-crass","install_command":"apt-get install ruby-crass","documentation_url":null,"metadata":{"component":"universe","architecture":"all","priority":"optional","binary":"ruby-crass","standards_version":"4.6.0","maintainer":"Debian Ruby Team \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper-compat (= 13), gem2deb, rake, ruby-minitest","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{},"repo_metadata_updated_at":"2026-02-13T13:14:52.764Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:deb/ubuntu/ruby-crass?arch=source\u0026distro=ubuntu-22.04\u0026repository_url=https://launchpad.net/ubuntu/jammy","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/ruby-crass","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/ruby-crass","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/ruby-crass/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/ruby-crass/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/ruby-crass/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/ruby-crass/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/ruby-crass/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages/ruby-crass/codemeta","maintainers":[],"registry":{"name":"ubuntu-22.04","url":"https://launchpad.net/ubuntu/jammy","ecosystem":"ubuntu","default":false,"packages_count":34289,"maintainers_count":0,"namespaces_count":4,"keywords_count":0,"github":"ubuntu","metadata":{"codename":"jammy"},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:46.486Z","updated_at":"2026-04-27T18:20:36.155Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-22.04/namespaces"}},{"id":13406485,"name":"ruby-crass","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/rgrove/crass/","licenses":null,"normalized_licenses":[],"repository_url":"https://github.com/rgrove/crass","keywords_array":["universe/misc"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-06T15:02:49.356Z","latest_release_published_at":"2026-02-06T15:02:49.356Z","latest_release_number":"1.0.2-3","last_synced_at":"2026-03-06T15:58:00.418Z","created_at":"2026-02-06T15:02:48.907Z","updated_at":"2026-03-06T16:04:51.157Z","registry_url":"https://launchpad.net/ubuntu/+source/ruby-crass","install_command":"apt-get install ruby-crass","documentation_url":null,"metadata":{"component":"universe","architecture":"all","priority":"optional","binary":"ruby-crass","standards_version":"4.6.0","maintainer":"Debian Ruby Team \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper-compat (= 13), gem2deb, rake, ruby-minitest","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{},"repo_metadata_updated_at":null,"dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:deb/ubuntu/ruby-crass?arch=source\u0026distro=ubuntu-24.04","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/ruby-crass","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/ruby-crass","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/ruby-crass/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/ruby-crass/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/ruby-crass/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/ruby-crass/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/ruby-crass/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages/ruby-crass/codemeta","maintainers":[],"registry":{"name":"ubuntu-24.04","url":"https://launchpad.net/ubuntu/noble","ecosystem":"ubuntu","default":true,"packages_count":37306,"maintainers_count":0,"namespaces_count":4,"keywords_count":0,"github":"ubuntu","metadata":{"codename":"noble"},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:45.928Z","updated_at":"2026-04-27T18:20:35.701Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.04/namespaces"}},{"id":13804142,"name":"ruby-crass","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/rgrove/crass/","licenses":null,"normalized_licenses":[],"repository_url":"https://github.com/rgrove/crass","keywords_array":["universe/misc"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-13T18:17:32.740Z","latest_release_published_at":"2026-02-13T18:17:32.740Z","latest_release_number":"1.0.2-3","last_synced_at":"2026-03-13T19:23:22.348Z","created_at":"2026-02-13T18:17:32.540Z","updated_at":"2026-03-13T19:23:22.348Z","registry_url":"https://launchpad.net/ubuntu/+source/ruby-crass","install_command":"apt-get install ruby-crass","documentation_url":null,"metadata":{"component":"universe","architecture":"all","priority":"optional","binary":"ruby-crass","standards_version":"4.6.0","maintainer":"Debian Ruby Team \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper-compat (= 13), gem2deb, rake, ruby-minitest","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{},"repo_metadata_updated_at":"2026-02-13T18:19:28.915Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:deb/ubuntu/ruby-crass?arch=source\u0026distro=ubuntu-23.10\u0026repository_url=https://launchpad.net/ubuntu/mantic","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/ruby-crass","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/ruby-crass","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/ruby-crass/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/ruby-crass/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/ruby-crass/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/ruby-crass/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/ruby-crass/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages/ruby-crass/codemeta","maintainers":[],"registry":{"name":"ubuntu-23.10","url":"https://launchpad.net/ubuntu/mantic","ecosystem":"ubuntu","default":false,"packages_count":36642,"maintainers_count":0,"namespaces_count":4,"keywords_count":0,"github":"ubuntu","metadata":{"codename":"mantic","mirror":"http://old-releases.ubuntu.com/ubuntu"},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:48.636Z","updated_at":"2026-04-27T18:20:38.051Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.10/namespaces"}},{"id":13750898,"name":"ruby-crass","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/rgrove/crass/","licenses":null,"normalized_licenses":[],"repository_url":"https://github.com/rgrove/crass","keywords_array":["universe/misc"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-13T07:12:01.116Z","latest_release_published_at":"2026-02-13T07:12:01.116Z","latest_release_number":"1.0.2-2","last_synced_at":"2026-03-13T13:25:00.965Z","created_at":"2026-02-13T07:12:00.942Z","updated_at":"2026-03-13T13:25:00.966Z","registry_url":"https://launchpad.net/ubuntu/+source/ruby-crass","install_command":"apt-get install ruby-crass","documentation_url":null,"metadata":{"component":"universe","architecture":"all","priority":"optional","binary":"ruby-crass","standards_version":"3.9.6","maintainer":"Debian Ruby Extras Maintainers \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper (\u003e= 7.0.50~), gem2deb, locales, rake, ruby-minitest","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{},"repo_metadata_updated_at":"2026-02-13T07:12:32.476Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:deb/ubuntu/ruby-crass?arch=source\u0026distro=ubuntu-20.04\u0026repository_url=https://launchpad.net/ubuntu/focal","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/ruby-crass","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/ruby-crass","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/ruby-crass/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/packages/ruby-crass/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/packages/ruby-crass/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/packages/ruby-crass/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/packages/ruby-crass/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/packages/ruby-crass/codemeta","maintainers":[],"registry":{"name":"ubuntu-20.04","url":"https://launchpad.net/ubuntu/focal","ecosystem":"ubuntu","default":false,"packages_count":30789,"maintainers_count":0,"namespaces_count":4,"keywords_count":0,"github":"ubuntu","metadata":{"codename":"focal"},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:47.233Z","updated_at":"2026-04-27T18:20:36.874Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-20.04/namespaces"}},{"id":13466496,"name":"ruby-crass","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/rgrove/crass/","licenses":null,"normalized_licenses":[],"repository_url":"https://github.com/rgrove/crass","keywords_array":["universe/misc"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-09T16:21:59.425Z","latest_release_published_at":"2026-02-09T16:21:59.425Z","latest_release_number":"1.0.2-3ubuntu1","last_synced_at":"2026-03-09T17:03:59.133Z","created_at":"2026-02-09T16:21:58.967Z","updated_at":"2026-03-09T17:32:32.727Z","registry_url":"https://launchpad.net/ubuntu/+source/ruby-crass","install_command":"apt-get install ruby-crass","documentation_url":null,"metadata":{"component":"universe","architecture":"all","priority":"optional","binary":"ruby-crass","standards_version":"4.6.0","maintainer":"Ubuntu Developers \u003cubuntu-devel-discuss@lists.ubuntu.com\u003e","build_depends":"debhelper-compat (= 13), gem2deb, rake, ruby-minitest","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{},"repo_metadata_updated_at":null,"dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:deb/ubuntu/ruby-crass?arch=source\u0026distro=ubuntu-24.10\u0026repository_url=https://launchpad.net/ubuntu/oracular","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/ruby-crass","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/ruby-crass","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/ruby-crass/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/ruby-crass/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/ruby-crass/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/ruby-crass/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/ruby-crass/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages/ruby-crass/codemeta","maintainers":[],"registry":{"name":"ubuntu-24.10","url":"https://launchpad.net/ubuntu/oracular","ecosystem":"ubuntu","default":false,"packages_count":38437,"maintainers_count":0,"namespaces_count":4,"keywords_count":0,"github":"ubuntu","metadata":{"codename":"oracular","mirror":"http://old-releases.ubuntu.com/ubuntu"},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:48.028Z","updated_at":"2026-04-27T18:20:37.303Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-24.10/namespaces"}},{"id":13605275,"name":"ruby-crass","ecosystem":"debian","description":null,"homepage":"https://github.com/rgrove/crass/","licenses":null,"normalized_licenses":[],"repository_url":"https://github.com/rgrove/crass","keywords_array":["misc"],"namespace":"main","versions_count":1,"first_release_published_at":"2026-02-11T11:19:29.893Z","latest_release_published_at":"2026-02-11T11:19:29.893Z","latest_release_number":"1.0.2-2","last_synced_at":"2026-03-14T03:01:19.408Z","created_at":"2026-02-11T11:19:29.709Z","updated_at":"2026-03-14T03:01:19.408Z","registry_url":"https://tracker.debian.org/pkg/ruby-crass","install_command":"apt-get install ruby-crass","documentation_url":"https://packages.debian.org/buster/ruby-crass","metadata":{"component":"main","architecture":"all","priority":"optional","binary":"ruby-crass","standards_version":"3.9.6","maintainer":"Debian Ruby Extras Maintainers \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper (\u003e= 7.0.50~), gem2deb, locales, rake, ruby-minitest","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{},"repo_metadata_updated_at":"2026-02-11T15:15:03.839Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:deb/debian/ruby-crass?arch=source\u0026distro=debian-10\u0026repository_url=https://packages.debian.org/buster","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/debian/ruby-crass","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/debian/ruby-crass","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/debian/ruby-crass/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/debian-10/packages/ruby-crass/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-10/packages/ruby-crass/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-10/packages/ruby-crass/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-10/packages/ruby-crass/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/debian-10/packages/ruby-crass/codemeta","maintainers":[],"registry":{"name":"debian-10","url":"https://packages.debian.org/buster","ecosystem":"debian","default":false,"packages_count":28836,"maintainers_count":0,"namespaces_count":3,"keywords_count":915,"github":"debian","metadata":{"codename":"buster","mirror":"http://archive.debian.org/debian"},"icon_url":"https://github.com/debian.png","created_at":"2026-02-04T11:01:50.156Z","updated_at":"2026-04-27T18:20:39.693Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-10/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-10/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/debian-10/namespaces"}},{"id":13530127,"name":"ruby-crass","ecosystem":"debian","description":null,"homepage":"https://github.com/rgrove/crass/","licenses":null,"normalized_licenses":[],"repository_url":"https://github.com/rgrove/crass","keywords_array":["misc"],"namespace":"main","versions_count":1,"first_release_published_at":"2026-02-10T23:28:36.437Z","latest_release_published_at":"2026-02-10T23:28:36.437Z","latest_release_number":"1.0.2-2.1","last_synced_at":"2026-03-14T06:21:51.080Z","created_at":"2026-02-10T23:28:36.248Z","updated_at":"2026-03-14T06:21:51.081Z","registry_url":"https://tracker.debian.org/pkg/ruby-crass","install_command":"apt-get install ruby-crass","documentation_url":"https://packages.debian.org/bullseye/ruby-crass","metadata":{"component":"main","architecture":"all","priority":"optional","binary":"ruby-crass","standards_version":"3.9.6","maintainer":"Debian Ruby Extras Maintainers \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper (\u003e= 7.0.50~), gem2deb, locales, rake, ruby-minitest","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{},"repo_metadata_updated_at":"2026-02-11T14:26:33.203Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:deb/debian/ruby-crass?arch=source\u0026distro=debian-11\u0026repository_url=https://packages.debian.org/bullseye","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/debian/ruby-crass","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/debian/ruby-crass","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/debian/ruby-crass/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages/ruby-crass/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages/ruby-crass/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages/ruby-crass/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages/ruby-crass/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages/ruby-crass/codemeta","maintainers":[],"registry":{"name":"debian-11","url":"https://packages.debian.org/bullseye","ecosystem":"debian","default":false,"packages_count":31268,"maintainers_count":0,"namespaces_count":3,"keywords_count":0,"github":"debian","metadata":{"codename":"bullseye"},"icon_url":"https://github.com/debian.png","created_at":"2026-02-04T11:01:49.702Z","updated_at":"2026-04-27T18:20:39.352Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/debian-11/namespaces"}},{"id":13566248,"name":"ruby-crass","ecosystem":"ubuntu","description":null,"homepage":"https://github.com/rgrove/crass/","licenses":null,"normalized_licenses":[],"repository_url":"https://github.com/rgrove/crass","keywords_array":["universe/misc"],"namespace":"universe","versions_count":1,"first_release_published_at":"2026-02-11T06:37:31.227Z","latest_release_published_at":"2026-02-11T06:37:31.227Z","latest_release_number":"1.0.2-3","last_synced_at":"2026-03-11T14:11:03.533Z","created_at":"2026-02-11T06:37:31.016Z","updated_at":"2026-03-11T14:11:03.533Z","registry_url":"https://launchpad.net/ubuntu/+source/ruby-crass","install_command":"apt-get install ruby-crass","documentation_url":null,"metadata":{"component":"universe","architecture":"all","priority":"optional","binary":"ruby-crass","standards_version":"4.6.0","maintainer":"Debian Ruby Team \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper-compat (= 13), gem2deb, rake, ruby-minitest","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{},"repo_metadata_updated_at":"2026-02-11T14:56:14.821Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:deb/ubuntu/ruby-crass?arch=source\u0026distro=ubuntu-23.04\u0026repository_url=https://launchpad.net/ubuntu/lunar","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/ubuntu/ruby-crass","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/ubuntu/ruby-crass","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/ubuntu/ruby-crass/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/ruby-crass/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/ruby-crass/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/ruby-crass/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/ruby-crass/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages/ruby-crass/codemeta","maintainers":[],"registry":{"name":"ubuntu-23.04","url":"https://launchpad.net/ubuntu/lunar","ecosystem":"ubuntu","default":false,"packages_count":36116,"maintainers_count":0,"namespaces_count":4,"keywords_count":0,"github":"ubuntu","metadata":{"codename":"lunar","mirror":"http://old-releases.ubuntu.com/ubuntu"},"icon_url":"https://github.com/ubuntu.png","created_at":"2026-02-04T11:01:49.117Z","updated_at":"2026-04-27T18:20:38.741Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/ubuntu-23.04/namespaces"}},{"id":13712175,"name":"ruby-crass","ecosystem":"debian","description":null,"homepage":"https://github.com/rgrove/crass/","licenses":null,"normalized_licenses":[],"repository_url":"https://github.com/rgrove/crass","keywords_array":["misc"],"namespace":"main","versions_count":1,"first_release_published_at":"2026-02-12T23:27:33.722Z","latest_release_published_at":"2026-02-12T23:27:33.722Z","latest_release_number":"1.0.2-3","last_synced_at":"2026-03-13T15:46:51.593Z","created_at":"2026-02-12T23:27:33.536Z","updated_at":"2026-03-13T15:46:51.593Z","registry_url":"https://tracker.debian.org/pkg/ruby-crass","install_command":"apt-get install ruby-crass","documentation_url":"https://packages.debian.org/bookworm/ruby-crass","metadata":{"component":"main","architecture":"all","priority":"optional","binary":"ruby-crass","standards_version":"4.6.0","maintainer":"Debian Ruby Team \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper-compat (= 13), gem2deb, rake, ruby-minitest","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{},"repo_metadata_updated_at":"2026-02-12T23:27:34.266Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:deb/debian/ruby-crass?arch=source\u0026distro=debian-12","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/debian/ruby-crass","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/debian/ruby-crass","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/debian/ruby-crass/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/ruby-crass/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/ruby-crass/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/ruby-crass/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/ruby-crass/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages/ruby-crass/codemeta","maintainers":[],"registry":{"name":"debian-12","url":"https://packages.debian.org/bookworm","ecosystem":"debian","default":true,"packages_count":34734,"maintainers_count":0,"namespaces_count":4,"keywords_count":0,"github":"debian","metadata":{"codename":"bookworm"},"icon_url":"https://github.com/debian.png","created_at":"2026-02-04T11:01:49.459Z","updated_at":"2026-04-27T18:20:38.992Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/debian-12/namespaces"}},{"id":183375,"name":"crass","ecosystem":"rubygems","description":"Crass is a pure Ruby CSS parser based on the CSS Syntax Level 3 spec.","homepage":"https://github.com/rgrove/crass/","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/rgrove/crass","keywords_array":[],"namespace":null,"versions_count":12,"first_release_published_at":"2013-09-28T04:17:27.164Z","latest_release_published_at":"2020-01-12T22:24:38.894Z","latest_release_number":"1.0.6","last_synced_at":"2026-04-27T15:02:36.032Z","created_at":"2022-04-05T20:01:26.905Z","updated_at":"2026-04-27T15:03:03.290Z","registry_url":"https://rubygems.org/gems/crass","install_command":"gem install crass -s https://rubygems.org","documentation_url":"http://www.rubydoc.info/gems/crass/","metadata":{"funding":null},"repo_metadata":{"id":10878230,"uuid":"13166823","full_name":"rgrove/crass","owner":"rgrove","description":"A Ruby CSS parser that's fully compliant with the CSS Syntax Level 3 specification.","archived":false,"fork":false,"pushed_at":"2024-05-23T20:22:52.000Z","size":192,"stargazers_count":142,"open_issues_count":2,"forks_count":14,"subscribers_count":10,"default_branch":"main","last_synced_at":"2026-03-09T18:41:21.010Z","etag":null,"topics":["css","parser","ruby"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rgrove.png","metadata":{"files":{"readme":"README.md","changelog":"HISTORY.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-09-28T04:05:19.000Z","updated_at":"2025-06-15T03:27:21.000Z","dependencies_parsed_at":"2024-02-26T00:59:46.908Z","dependency_job_id":"40f70019-c62f-41a0-8faa-d35ad4cfa303","html_url":"https://github.com/rgrove/crass","commit_stats":{"total_commits":106,"total_committers":10,"mean_commits":10.6,"dds":"0.10377358490566035","last_synced_commit":"b51a88e541a3ba8657f03e63fe4c4f65fcaa04ca"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/rgrove/crass","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rgrove","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/sbom","scorecard":{"id":773818,"data":{"date":"2025-08-11","repo":{"name":"github.com/rgrove/crass","commit":"b51a88e541a3ba8657f03e63fe4c4f65fcaa04ca"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4,"checks":[{"name":"Code-Review","score":2,"reason":"Found 7/26 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"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":"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":"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":"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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/tests.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":"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/tests.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/rgrove/crass/tests.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/rgrove/crass/tests.yml/main?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 12 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-23T02:59:28.294Z","repository_id":10878230,"created_at":"2025-08-23T02:59:28.294Z","updated_at":"2025-08-23T02:59:28.294Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30554436,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-15T23:04:10.583Z","status":"ssl_error","status_checked_at":"2026-03-15T23:00:23.757Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"rgrove","name":"Ryan Grove","uuid":"1465","kind":"user","description":"I like pie.","email":"","website":"https://wonko.com","location":"Portland, OR","twitter":null,"company":"SmugMug","icon_url":"https://avatars.githubusercontent.com/u/1465?u=1e86f1faa0a945cc1ef91c86c86428dc0bf603d4\u0026v=4","repositories_count":88,"last_synced_at":"2024-04-08T15:11:43.710Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/rgrove","funding_links":[],"total_stars":8034,"followers":793,"following":47,"created_at":"2022-11-02T16:43:30.650Z","updated_at":"2024-04-08T15:11:53.065Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rgrove","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rgrove/repositories"},"tags":[{"name":"v1.0.6","sha":"87f642e80670dc1093eddf4d3a93cbd40a9551c6","kind":"commit","published_at":"2020-01-12T22:21:48.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v1.0.6","html_url":"https://github.com/rgrove/crass/releases/tag/v1.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v1.0.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.6/manifests"},{"name":"v1.0.5","sha":"30b9aa48458a5dd015fc86909c03707512cc3d96","kind":"commit","published_at":"2019-10-16T03:41:28.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v1.0.5","html_url":"https://github.com/rgrove/crass/releases/tag/v1.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v1.0.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.5/manifests"},{"name":"v1.0.4","sha":"cbc966c41de64d6a810d0d5d3f7bd0295326aadb","kind":"tag","published_at":"2018-04-08T20:31:46.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v1.0.4","html_url":"https://github.com/rgrove/crass/releases/tag/v1.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v1.0.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.4/manifests"},{"name":"v1.0.3","sha":"65e26d6d8baf602151d716bf51da5d3c88bca561","kind":"commit","published_at":"2017-11-13T22:25:02.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v1.0.3","html_url":"https://github.com/rgrove/crass/releases/tag/v1.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v1.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.3/manifests"},{"name":"v1.0.2","sha":"3a93c4f4a5a4ca5376d916aec90e9954d038e8ff","kind":"commit","published_at":"2015-04-18T04:16:46.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v1.0.2","html_url":"https://github.com/rgrove/crass/releases/tag/v1.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v1.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.2/manifests"},{"name":"v1.0.1","sha":"2c1158efa7c92277e0e2dd06466eb46787b06ede","kind":"commit","published_at":"2014-11-17T01:37:24.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v1.0.1","html_url":"https://github.com/rgrove/crass/releases/tag/v1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v1.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.1/manifests"},{"name":"v1.0.0","sha":"319013721cc7b76362edb973f38e9559e882a1ef","kind":"commit","published_at":"2014-11-16T22:18:09.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v1.0.0","html_url":"https://github.com/rgrove/crass/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.0/manifests"},{"name":"v0.2.1","sha":"1a9c2e58e90d4880828d4f0f51ec2c070d715ff3","kind":"commit","published_at":"2014-07-22T16:33:56.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v0.2.1","html_url":"https://github.com/rgrove/crass/releases/tag/v0.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v0.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v0.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v0.2.1/manifests"},{"name":"v0.2.0","sha":"e7bb073a3e5025846770ecef729f4c65473caa30","kind":"tag","published_at":"2013-10-10T17:11:40.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v0.2.0","html_url":"https://github.com/rgrove/crass/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v0.2.0/manifests"},{"name":"v0.1.0","sha":"b59c97b10adc5decc1acf21863a68118f0b69c0b","kind":"tag","published_at":"2013-10-04T22:07:46.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v0.1.0","html_url":"https://github.com/rgrove/crass/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v0.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v0.1.0/manifests"},{"name":"v0.0.2","sha":"e44596e2d522f6f38dcebe4b1b62771e57a7b549","kind":"tag","published_at":"2013-09-30T23:20:03.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v0.0.2","html_url":"https://github.com/rgrove/crass/releases/tag/v0.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v0.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v0.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v0.0.2/manifests"},{"name":"v0.0.1","sha":"a10a5743e764c41c1cd3e470a02bd69051c3ec64","kind":"commit","published_at":"2013-09-28T04:23:12.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v0.0.1","html_url":"https://github.com/rgrove/crass/releases/tag/v0.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v0.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v0.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v0.0.1/manifests"}]},"repo_metadata_updated_at":"2026-04-27T15:03:03.289Z","dependent_packages_count":13,"downloads":563176878,"downloads_period":"total","dependent_repos_count":345725,"rankings":{"downloads":0.04292994056712124,"dependent_repos_count":0.05965589143742822,"dependent_packages_count":1.5359998215898574,"stargazers_count":4.729541374427136,"forks_count":7.71902632664667,"docker_downloads_count":0.1505335578327628,"average":2.3729478187501627},"purl":"pkg:gem/crass","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/rubygems/crass","docker_dependents_count":1251,"docker_downloads_count":804267774,"usage_url":"https://repos.ecosyste.ms/usage/rubygems/crass","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/rubygems/crass/dependencies","status":null,"funding_links":[],"critical":true,"issue_metadata":{"last_synced_at":"2026-04-21T12:01:36.042Z","issues_count":9,"pull_requests_count":9,"avg_time_to_close_issue":83007.42857142857,"avg_time_to_close_pull_request":131318.88888888888,"issues_closed_count":7,"pull_requests_closed_count":9,"pull_request_authors_count":9,"issue_authors_count":6,"avg_comments_per_issue":2.888888888888889,"avg_comments_per_pull_request":1.5555555555555556,"merged_pull_requests_count":9,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/issues","maintainers":[{"login":"rgrove","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/rgrove"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/crass/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/crass/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/crass/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/crass/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/crass/codemeta","maintainers":[{"uuid":"763","login":"rgrove","name":null,"email":null,"url":null,"packages_count":9,"html_url":"https://rubygems.org/profiles/rgrove","role":null,"created_at":"2022-11-07T14:44:27.059Z","updated_at":"2022-11-07T14:44:27.059Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/rgrove/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"}},{"id":13668744,"name":"ruby-crass","ecosystem":"debian","description":null,"homepage":"https://github.com/rgrove/crass/","licenses":null,"normalized_licenses":[],"repository_url":"https://github.com/rgrove/crass","keywords_array":["misc"],"namespace":"main","versions_count":1,"first_release_published_at":"2026-02-12T12:19:40.190Z","latest_release_published_at":"2026-02-12T12:19:40.190Z","latest_release_number":"1.0.6-1","last_synced_at":"2026-03-14T15:02:11.537Z","created_at":"2026-02-12T12:19:39.945Z","updated_at":"2026-03-14T15:02:11.537Z","registry_url":"https://tracker.debian.org/pkg/ruby-crass","install_command":"apt-get install ruby-crass","documentation_url":"https://packages.debian.org/trixie/ruby-crass","metadata":{"component":"main","architecture":"all","priority":"optional","binary":"ruby-crass","standards_version":"4.7.0","maintainer":"Debian Ruby Team \u003cpkg-ruby-extras-maintainers@lists.alioth.debian.org\u003e","build_depends":"debhelper-compat (= 13), gem2deb, rake, ruby-minitest","build_depends_indep":null,"build_depends_arch":null},"repo_metadata":{},"repo_metadata_updated_at":"2026-02-12T12:19:51.064Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:deb/debian/ruby-crass?arch=source\u0026distro=debian-13\u0026repository_url=https://packages.debian.org/trixie","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/debian/ruby-crass","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/debian/ruby-crass","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/debian/ruby-crass/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/ruby-crass/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/ruby-crass/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/ruby-crass/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/ruby-crass/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages/ruby-crass/codemeta","maintainers":[],"registry":{"name":"debian-13","url":"https://packages.debian.org/trixie","ecosystem":"debian","default":false,"packages_count":38024,"maintainers_count":0,"namespaces_count":4,"keywords_count":0,"github":"debian","metadata":{"codename":"trixie"},"icon_url":"https://github.com/debian.png","created_at":"2026-02-04T11:01:50.448Z","updated_at":"2026-04-27T18:20:39.853Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/debian-13/namespaces"}},{"id":13950220,"name":"ruby-crass","ecosystem":"guix","description":"Pure Ruby CSS parser","homepage":"https://github.com/rgrove/crass","licenses":"expat","normalized_licenses":["Other"],"repository_url":"https://github.com/rgrove/crass","keywords_array":[],"namespace":null,"versions_count":1,"first_release_published_at":"2026-03-02T18:52:59.473Z","latest_release_published_at":"2026-03-02T18:52:59.473Z","latest_release_number":"1.0.6","last_synced_at":"2026-04-27T16:19:59.891Z","created_at":"2026-03-02T18:52:59.192Z","updated_at":"2026-04-27T16:20:00.168Z","registry_url":"https://packages.guix.gnu.org/packages/ruby-crass/1.0.6/","install_command":"guix install ruby-crass","documentation_url":"https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/ruby-xyz.scm#n7770","metadata":{"location":"gnu/packages/ruby-xyz.scm:7770","variable_name":"ruby-crass"},"repo_metadata":{"id":10878230,"uuid":"13166823","full_name":"rgrove/crass","owner":"rgrove","description":"A Ruby CSS parser that's fully compliant with the CSS Syntax Level 3 specification.","archived":false,"fork":false,"pushed_at":"2024-05-23T20:22:52.000Z","size":192,"stargazers_count":142,"open_issues_count":2,"forks_count":14,"subscribers_count":10,"default_branch":"main","last_synced_at":"2026-03-09T18:41:21.010Z","etag":null,"topics":["css","parser","ruby"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rgrove.png","metadata":{"files":{"readme":"README.md","changelog":"HISTORY.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-09-28T04:05:19.000Z","updated_at":"2025-06-15T03:27:21.000Z","dependencies_parsed_at":"2024-02-26T00:59:46.908Z","dependency_job_id":"40f70019-c62f-41a0-8faa-d35ad4cfa303","html_url":"https://github.com/rgrove/crass","commit_stats":{"total_commits":106,"total_committers":10,"mean_commits":10.6,"dds":"0.10377358490566035","last_synced_commit":"b51a88e541a3ba8657f03e63fe4c4f65fcaa04ca"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/rgrove/crass","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rgrove","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/sbom","scorecard":{"id":773818,"data":{"date":"2025-08-11","repo":{"name":"github.com/rgrove/crass","commit":"b51a88e541a3ba8657f03e63fe4c4f65fcaa04ca"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4,"checks":[{"name":"Code-Review","score":2,"reason":"Found 7/26 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"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":"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":"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":"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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/tests.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":"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/tests.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/rgrove/crass/tests.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/rgrove/crass/tests.yml/main?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 12 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-23T02:59:28.294Z","repository_id":10878230,"created_at":"2025-08-23T02:59:28.294Z","updated_at":"2025-08-23T02:59:28.294Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30554436,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-15T23:04:10.583Z","status":"ssl_error","status_checked_at":"2026-03-15T23:00:23.757Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"rgrove","name":"Ryan Grove","uuid":"1465","kind":"user","description":"I like pie.","email":"","website":"https://wonko.com","location":"Portland, OR","twitter":null,"company":"SmugMug","icon_url":"https://avatars.githubusercontent.com/u/1465?u=1e86f1faa0a945cc1ef91c86c86428dc0bf603d4\u0026v=4","repositories_count":88,"last_synced_at":"2024-04-08T15:11:43.710Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/rgrove","funding_links":[],"total_stars":8034,"followers":793,"following":47,"created_at":"2022-11-02T16:43:30.650Z","updated_at":"2024-04-08T15:11:53.065Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rgrove","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rgrove/repositories"},"tags":[{"name":"v1.0.6","sha":"87f642e80670dc1093eddf4d3a93cbd40a9551c6","kind":"commit","published_at":"2020-01-12T22:21:48.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v1.0.6","html_url":"https://github.com/rgrove/crass/releases/tag/v1.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v1.0.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.6/manifests"},{"name":"v1.0.5","sha":"30b9aa48458a5dd015fc86909c03707512cc3d96","kind":"commit","published_at":"2019-10-16T03:41:28.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v1.0.5","html_url":"https://github.com/rgrove/crass/releases/tag/v1.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v1.0.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.5/manifests"},{"name":"v1.0.4","sha":"cbc966c41de64d6a810d0d5d3f7bd0295326aadb","kind":"tag","published_at":"2018-04-08T20:31:46.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v1.0.4","html_url":"https://github.com/rgrove/crass/releases/tag/v1.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v1.0.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.4/manifests"},{"name":"v1.0.3","sha":"65e26d6d8baf602151d716bf51da5d3c88bca561","kind":"commit","published_at":"2017-11-13T22:25:02.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v1.0.3","html_url":"https://github.com/rgrove/crass/releases/tag/v1.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v1.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.3/manifests"},{"name":"v1.0.2","sha":"3a93c4f4a5a4ca5376d916aec90e9954d038e8ff","kind":"commit","published_at":"2015-04-18T04:16:46.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v1.0.2","html_url":"https://github.com/rgrove/crass/releases/tag/v1.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v1.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.2/manifests"},{"name":"v1.0.1","sha":"2c1158efa7c92277e0e2dd06466eb46787b06ede","kind":"commit","published_at":"2014-11-17T01:37:24.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v1.0.1","html_url":"https://github.com/rgrove/crass/releases/tag/v1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v1.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.1/manifests"},{"name":"v1.0.0","sha":"319013721cc7b76362edb973f38e9559e882a1ef","kind":"commit","published_at":"2014-11-16T22:18:09.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v1.0.0","html_url":"https://github.com/rgrove/crass/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.0/manifests"},{"name":"v0.2.1","sha":"1a9c2e58e90d4880828d4f0f51ec2c070d715ff3","kind":"commit","published_at":"2014-07-22T16:33:56.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v0.2.1","html_url":"https://github.com/rgrove/crass/releases/tag/v0.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v0.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v0.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v0.2.1/manifests"},{"name":"v0.2.0","sha":"e7bb073a3e5025846770ecef729f4c65473caa30","kind":"tag","published_at":"2013-10-10T17:11:40.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v0.2.0","html_url":"https://github.com/rgrove/crass/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v0.2.0/manifests"},{"name":"v0.1.0","sha":"b59c97b10adc5decc1acf21863a68118f0b69c0b","kind":"tag","published_at":"2013-10-04T22:07:46.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v0.1.0","html_url":"https://github.com/rgrove/crass/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v0.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v0.1.0/manifests"},{"name":"v0.0.2","sha":"e44596e2d522f6f38dcebe4b1b62771e57a7b549","kind":"tag","published_at":"2013-09-30T23:20:03.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v0.0.2","html_url":"https://github.com/rgrove/crass/releases/tag/v0.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v0.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v0.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v0.0.2/manifests"},{"name":"v0.0.1","sha":"a10a5743e764c41c1cd3e470a02bd69051c3ec64","kind":"commit","published_at":"2013-09-28T04:23:12.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v0.0.1","html_url":"https://github.com/rgrove/crass/releases/tag/v0.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v0.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v0.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v0.0.1/manifests"}]},"repo_metadata_updated_at":"2026-04-27T16:20:00.167Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:guix/ruby-crass","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/guix/ruby-crass","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/guix/ruby-crass","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/guix/ruby-crass/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/ruby-crass/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/ruby-crass/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/ruby-crass/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/ruby-crass/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages/ruby-crass/codemeta","maintainers":[],"registry":{"name":"guix","url":"https://guix.gnu.org","ecosystem":"guix","default":true,"packages_count":31189,"maintainers_count":0,"namespaces_count":0,"keywords_count":0,"github":"guix-mirror","metadata":{"funded_packages_count":286},"icon_url":"https://github.com/guix-mirror.png","created_at":"2026-03-02T16:23:46.981Z","updated_at":"2026-04-03T06:23:21.396Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/guix/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/guix/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/guix/namespaces"}},{"id":8614723,"name":"github.com/rgrove/crass","ecosystem":"go","description":null,"homepage":null,"licenses":"mit","normalized_licenses":["MIT"],"repository_url":"https://github.com/rgrove/crass","keywords_array":[],"namespace":null,"versions_count":12,"first_release_published_at":"2023-12-02T02:14:56.841Z","latest_release_published_at":"2020-01-12T22:21:48.000Z","latest_release_number":"v1.0.6","last_synced_at":"2026-04-27T23:31:20.900Z","created_at":"2023-12-02T02:14:54.450Z","updated_at":"2026-04-27T23:31:20.900Z","registry_url":"https://pkg.go.dev/github.com/rgrove/crass","install_command":"go get github.com/rgrove/crass","documentation_url":"https://pkg.go.dev/github.com/rgrove/crass#section-documentation","metadata":{},"repo_metadata":{"id":10878230,"uuid":"13166823","full_name":"rgrove/crass","owner":"rgrove","description":"A Ruby CSS parser that's fully compliant with the CSS Syntax Level 3 specification.","archived":false,"fork":false,"pushed_at":"2024-05-23T20:22:52.000Z","size":192,"stargazers_count":142,"open_issues_count":2,"forks_count":14,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-10-01T03:48:01.121Z","etag":null,"topics":["css","parser","ruby"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rgrove.png","metadata":{"files":{"readme":"README.md","changelog":"HISTORY.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-09-28T04:05:19.000Z","updated_at":"2025-06-15T03:27:21.000Z","dependencies_parsed_at":"2024-02-26T00:59:46.908Z","dependency_job_id":"40f70019-c62f-41a0-8faa-d35ad4cfa303","html_url":"https://github.com/rgrove/crass","commit_stats":{"total_commits":106,"total_committers":10,"mean_commits":10.6,"dds":"0.10377358490566035","last_synced_commit":"b51a88e541a3ba8657f03e63fe4c4f65fcaa04ca"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/rgrove/crass","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rgrove","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/sbom","scorecard":{"id":773818,"data":{"date":"2025-08-11","repo":{"name":"github.com/rgrove/crass","commit":"b51a88e541a3ba8657f03e63fe4c4f65fcaa04ca"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4,"checks":[{"name":"Code-Review","score":2,"reason":"Found 7/26 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"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":"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":"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":"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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/tests.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":"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/tests.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/rgrove/crass/tests.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/rgrove/crass/tests.yml/main?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 12 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-23T02:59:28.294Z","repository_id":10878230,"created_at":"2025-08-23T02:59:28.294Z","updated_at":"2025-08-23T02:59:28.294Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278576553,"owners_count":26009622,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"rgrove","name":"Ryan Grove","uuid":"1465","kind":"user","description":"I like pie.","email":"","website":"https://wonko.com","location":"Portland, OR","twitter":null,"company":"SmugMug","icon_url":"https://avatars.githubusercontent.com/u/1465?u=1e86f1faa0a945cc1ef91c86c86428dc0bf603d4\u0026v=4","repositories_count":88,"last_synced_at":"2024-04-08T15:11:43.710Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/rgrove","funding_links":[],"total_stars":8034,"followers":793,"following":47,"created_at":"2022-11-02T16:43:30.650Z","updated_at":"2024-04-08T15:11:53.065Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rgrove","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rgrove/repositories"},"tags":[{"name":"v1.0.6","sha":"87f642e80670dc1093eddf4d3a93cbd40a9551c6","kind":"commit","published_at":"2020-01-12T22:21:48.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v1.0.6","html_url":"https://github.com/rgrove/crass/releases/tag/v1.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v1.0.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.6/manifests"},{"name":"v1.0.5","sha":"30b9aa48458a5dd015fc86909c03707512cc3d96","kind":"commit","published_at":"2019-10-16T03:41:28.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v1.0.5","html_url":"https://github.com/rgrove/crass/releases/tag/v1.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v1.0.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.5/manifests"},{"name":"v1.0.4","sha":"cbc966c41de64d6a810d0d5d3f7bd0295326aadb","kind":"tag","published_at":"2018-04-08T20:31:46.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v1.0.4","html_url":"https://github.com/rgrove/crass/releases/tag/v1.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v1.0.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.4/manifests"},{"name":"v1.0.3","sha":"65e26d6d8baf602151d716bf51da5d3c88bca561","kind":"commit","published_at":"2017-11-13T22:25:02.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v1.0.3","html_url":"https://github.com/rgrove/crass/releases/tag/v1.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v1.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.3/manifests"},{"name":"v1.0.2","sha":"3a93c4f4a5a4ca5376d916aec90e9954d038e8ff","kind":"commit","published_at":"2015-04-18T04:16:46.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v1.0.2","html_url":"https://github.com/rgrove/crass/releases/tag/v1.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v1.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.2/manifests"},{"name":"v1.0.1","sha":"2c1158efa7c92277e0e2dd06466eb46787b06ede","kind":"commit","published_at":"2014-11-17T01:37:24.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v1.0.1","html_url":"https://github.com/rgrove/crass/releases/tag/v1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v1.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.1/manifests"},{"name":"v1.0.0","sha":"319013721cc7b76362edb973f38e9559e882a1ef","kind":"commit","published_at":"2014-11-16T22:18:09.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v1.0.0","html_url":"https://github.com/rgrove/crass/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v1.0.0/manifests"},{"name":"v0.2.1","sha":"1a9c2e58e90d4880828d4f0f51ec2c070d715ff3","kind":"commit","published_at":"2014-07-22T16:33:56.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v0.2.1","html_url":"https://github.com/rgrove/crass/releases/tag/v0.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v0.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v0.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v0.2.1/manifests"},{"name":"v0.2.0","sha":"e7bb073a3e5025846770ecef729f4c65473caa30","kind":"tag","published_at":"2013-10-10T17:11:40.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v0.2.0","html_url":"https://github.com/rgrove/crass/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v0.2.0/manifests"},{"name":"v0.1.0","sha":"b59c97b10adc5decc1acf21863a68118f0b69c0b","kind":"tag","published_at":"2013-10-04T22:07:46.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v0.1.0","html_url":"https://github.com/rgrove/crass/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v0.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v0.1.0/manifests"},{"name":"v0.0.2","sha":"e44596e2d522f6f38dcebe4b1b62771e57a7b549","kind":"tag","published_at":"2013-09-30T23:20:03.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v0.0.2","html_url":"https://github.com/rgrove/crass/releases/tag/v0.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v0.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v0.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v0.0.2/manifests"},{"name":"v0.0.1","sha":"a10a5743e764c41c1cd3e470a02bd69051c3ec64","kind":"commit","published_at":"2013-09-28T04:23:12.000Z","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/v0.0.1","html_url":"https://github.com/rgrove/crass/releases/tag/v0.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rgrove/crass@v0.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v0.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags/v0.0.1/manifests"}]},"repo_metadata_updated_at":"2025-10-10T04:25:28.902Z","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":4.064473804502999,"forks_count":5.764912834124137,"docker_downloads_count":null,"average":7.551677373222745},"purl":"pkg:golang/github.com/rgrove/crass","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/rgrove/crass","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/rgrove/crass","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/rgrove/crass/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-09-01T02:44:37.275Z","issues_count":9,"pull_requests_count":9,"avg_time_to_close_issue":83007.42857142857,"avg_time_to_close_pull_request":131318.88888888888,"issues_closed_count":7,"pull_requests_closed_count":9,"pull_request_authors_count":9,"issue_authors_count":6,"avg_comments_per_issue":2.888888888888889,"avg_comments_per_pull_request":1.5555555555555556,"merged_pull_requests_count":9,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/issues","maintainers":[{"login":"rgrove","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/rgrove"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Frgrove%2Fcrass/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Frgrove%2Fcrass/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Frgrove%2Fcrass/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Frgrove%2Fcrass/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Frgrove%2Fcrass/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":2117336,"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":12207618,"name":"crass","ecosystem":"rubygems","description":"Crass is a pure Ruby CSS parser based on the CSS Syntax Level 3 spec.","homepage":"https://github.com/rgrove/crass/","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/rgrove/crass","keywords_array":[],"namespace":null,"versions_count":12,"first_release_published_at":"2013-09-28T04:17:27.164Z","latest_release_published_at":"2020-01-12T22:24:38.894Z","latest_release_number":"1.0.6","last_synced_at":"2026-04-27T23:31:18.352Z","created_at":"2025-10-07T02:15:55.131Z","updated_at":"2026-04-27T23:33:43.009Z","registry_url":"https://gem.coop/gems/crass","install_command":"gem install crass -s https://gem.coop","documentation_url":"http://www.rubydoc.info/gems/crass/","metadata":{"funding":null},"repo_metadata":{"id":10878230,"uuid":"13166823","full_name":"rgrove/crass","owner":"rgrove","description":"A Ruby CSS parser that's fully compliant with the CSS Syntax Level 3 specification.","archived":false,"fork":false,"pushed_at":"2024-05-23T20:22:52.000Z","size":192,"stargazers_count":142,"open_issues_count":2,"forks_count":14,"subscribers_count":10,"default_branch":"main","last_synced_at":"2026-03-09T18:41:21.010Z","etag":null,"topics":["css","parser","ruby"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rgrove.png","metadata":{"files":{"readme":"README.md","changelog":"HISTORY.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-09-28T04:05:19.000Z","updated_at":"2025-06-15T03:27:21.000Z","dependencies_parsed_at":"2024-02-26T00:59:46.908Z","dependency_job_id":"40f70019-c62f-41a0-8faa-d35ad4cfa303","html_url":"https://github.com/rgrove/crass","commit_stats":{"total_commits":106,"total_committers":10,"mean_commits":10.6,"dds":"0.10377358490566035","last_synced_commit":"b51a88e541a3ba8657f03e63fe4c4f65fcaa04ca"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/rgrove/crass","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rgrove","download_url":"https://codeload.github.com/rgrove/crass/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/sbom","scorecard":{"id":773818,"data":{"date":"2025-08-11","repo":{"name":"github.com/rgrove/crass","commit":"b51a88e541a3ba8657f03e63fe4c4f65fcaa04ca"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4,"checks":[{"name":"Code-Review","score":2,"reason":"Found 7/26 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"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":"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":"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":"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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/tests.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":"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/tests.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/rgrove/crass/tests.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/rgrove/crass/tests.yml/main?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 12 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-23T02:59:28.294Z","repository_id":10878230,"created_at":"2025-08-23T02:59:28.294Z","updated_at":"2025-08-23T02:59:28.294Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30554436,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-15T23:04:10.583Z","status":"ssl_error","status_checked_at":"2026-03-15T23:00:23.757Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"tags":[]},"repo_metadata_updated_at":"2026-04-27T23:33:43.009Z","dependent_packages_count":0,"downloads":563348450,"downloads_period":"total","dependent_repos_count":0,"rankings":{"downloads":0.042714016144816735,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":0.11624700596374175,"average":0.039740255527139626},"purl":"pkg:gem/crass?repository_url=https://gem.coop","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/rubygems/crass","docker_dependents_count":1251,"docker_downloads_count":804267774,"usage_url":"https://repos.ecosyste.ms/usage/rubygems/crass","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/rubygems/crass/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-04-06T05:00:20.669Z","issues_count":9,"pull_requests_count":9,"avg_time_to_close_issue":83007.42857142857,"avg_time_to_close_pull_request":131318.88888888888,"issues_closed_count":7,"pull_requests_closed_count":9,"pull_request_authors_count":9,"issue_authors_count":6,"avg_comments_per_issue":2.888888888888889,"avg_comments_per_pull_request":1.5555555555555556,"merged_pull_requests_count":9,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/issues","maintainers":[{"login":"rgrove","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/rgrove"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/crass/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/crass/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/crass/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/crass/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/packages/crass/codemeta","maintainers":[{"uuid":"763","login":"rgrove","name":null,"email":null,"url":null,"packages_count":9,"html_url":"https://gem.coop/profiles/rgrove","role":null,"created_at":"2025-10-07T15:03:39.482Z","updated_at":"2025-10-07T15:03:39.482Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/gem.coop/maintainers/rgrove/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"}}],"commits":{"id":865142,"full_name":"rgrove/crass","default_branch":"main","total_commits":106,"total_committers":10,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":10.6,"dds":0.10377358490566035,"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-27T15:06:06.897Z","last_synced_commit":"b51a88e541a3ba8657f03e63fe4c4f65fcaa04ca","created_at":"2023-03-09T20:39:40.415Z","updated_at":"2026-04-27T15:05:53.077Z","committers":[{"name":"Ryan Grove","email":"ryan@wonko.com","login":"rgrove","count":95},{"name":"Simon","email":"simon.toivo@telhaug.no","login":"stoivo","count":2},{"name":"Mike Dalessio","email":"mike.dalessio@gmail.com","login":"flavorjones","count":2},{"name":"Yasuo Honda","email":"yasuo.honda@gmail.com","login":"yahonda","count":1},{"name":"Vít Ondruch","email":"vondruch@redhat.com","login":"voxik","count":1},{"name":"Tom Richards","email":"tom@tomrichards.net","login":"t-richards","count":1},{"name":"Peter Goldstein","email":"peter.m.goldstein@gmail.com","login":"petergoldstein","count":1},{"name":"Orien Madgwick","email":"_@orien.io","login":"orien","count":1},{"name":"Nicolas Leger","email":"nicolasleger","login":"nicolasleger","count":1},{"name":"Adam Bachman","email":"adam.bachman@gmail.com","login":"abachman","count":1}],"past_year_committers":[],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-27T00:00:06.983Z","repositories_count":6220619,"commits_count":899896165,"contributors_count":34880731,"owners_count":1146487,"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":"rgrove/crass","html_url":"https://github.com/rgrove/crass","last_synced_at":"2026-04-28T12:01:17.736Z","status":"error","issues_count":9,"pull_requests_count":9,"avg_time_to_close_issue":83007.42857142857,"avg_time_to_close_pull_request":131318.88888888888,"issues_closed_count":7,"pull_requests_closed_count":9,"pull_request_authors_count":9,"issue_authors_count":6,"avg_comments_per_issue":2.888888888888889,"avg_comments_per_pull_request":1.5555555555555556,"merged_pull_requests_count":9,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"created_at":"2023-05-12T09:25:06.363Z","updated_at":"2026-04-28T12:01:17.736Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgrove%2Fcrass/issues","issue_labels_count":{"bug":2},"pull_request_labels_count":{},"issue_author_associations_count":{"NONE":6,"CONTRIBUTOR":3},"pull_request_author_associations_count":{"CONTRIBUTOR":7,"OWNER":1,"NONE":1},"issue_authors":{"stoivo":3,"Fustrate":2,"abachman":1,"bf4":1,"veesahni":1,"wlipa":1},"pull_request_authors":{"rgrove":1,"voxik":1,"nicolasleger":1,"petergoldstein":1,"stoivo":1,"t-richards":1,"yahonda":1,"flavorjones":1,"orien":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-29T00:00:10.439Z","repositories_count":14445583,"issues_count":34197746,"pull_requests_count":112298743,"authors_count":11248747,"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":[{"login":"rgrove","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/rgrove"}],"active_maintainers":[]},"events":{"total":{"WatchEvent":3},"last_year":{"WatchEvent":1}},"keywords":["css","parser","ruby"],"dependencies":[{"ecosystem":"rubygems","filepath":"crass.gemspec","sha":null,"kind":"manifest","created_at":"2022-08-31T12:40:50.656Z","updated_at":"2022-08-31T12:40:50.656Z","repository_link":"https://github.com/rgrove/crass/blob/main/crass.gemspec","dependencies":[{"id":3407207347,"package_name":"minitest","ecosystem":"rubygems","requirements":"~\u003e 5.0.8","direct":true,"kind":"development","optional":false},{"id":3407207348,"package_name":"rake","ecosystem":"rubygems","requirements":"~\u003e 10.1.0","direct":true,"kind":"development","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/tests.yml","sha":null,"kind":"manifest","created_at":"2023-01-13T16:12:35.879Z","updated_at":"2023-01-13T16:12:35.879Z","repository_link":"https://github.com/rgrove/crass/blob/main/.github/workflows/tests.yml","dependencies":[{"id":6890132733,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":6890132734,"package_name":"ruby/setup-ruby","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"rubygems","filepath":"Gemfile","sha":null,"kind":"manifest","created_at":"2024-02-26T00:59:46.898Z","updated_at":"2024-02-26T00:59:46.898Z","repository_link":"https://github.com/rgrove/crass/blob/main/Gemfile","dependencies":[]}],"score":29.00194523994397,"created_at":"2024-12-15T21:38:07.456Z","updated_at":"2026-04-30T16:30:22.182Z","avatar_url":"https://github.com/rgrove.png","language":"Ruby","monthly_downloads":0,"readme":"# Crass\n\nCrass is a Ruby CSS parser that's fully compliant with the [CSS Syntax Level 3](http://dev.w3.org/csswg/css-syntax/) specification.\n\n[![Gem Version](https://badge.fury.io/rb/crass.svg)](http://badge.fury.io/rb/crass)\n[![Tests](https://github.com/rgrove/crass/actions/workflows/tests.yml/badge.svg)](https://github.com/rgrove/crass/actions/workflows/tests.yml)\n\n## Links\n\n- [Home](https://github.com/rgrove/crass/)\n- [API Docs](https://rubydoc.info/github/rgrove/crass/Crass)\n\n\n## Features\n\n- Pure Ruby, with no runtime dependencies other than Ruby 1.9.x or higher.\n\n- Tokenizes and parses CSS according to the rules defined in the 14 November 2014 editor's draft of the [CSS Syntax Level 3](http://dev.w3.org/csswg/css-syntax/) specification.\n\n- Extremely tolerant of broken or invalid CSS. If a browser can handle it, Crass should be able to handle it too.\n\n- Optionally includes comments in the token stream.\n\n- Optionally preserves certain CSS hacks, such as the IE \"*\" hack, which would otherwise be discarded according to CSS3 tokenizing rules.\n\n- Capable of serializing the parse tree back to CSS while maintaining all original whitespace, comments, and indentation.\n\n## Problems\n\n- Crass isn't terribly fast. I mean, it's Ruby, and it's not really slow by Ruby standards. But compared to the CSS parser in your average browser? Yeah, it's slow.\n\n- Crass only parses the CSS syntax; it doesn't understand what any of it means, doesn't coalesce selectors, etc. You can do this yourself by consuming the parse tree, though.\n\n- While any node in the parse tree (or the parse tree as a whole) can be serialized back to CSS with perfect fidelity, changes made to those nodes (except for wholesale removal of nodes) are not reflected in the serialized output.\n\n- Crass only supports UTF-8 input and doesn't respect `@charset` rules. Input in any other encoding will be converted to UTF-8.\n\n## Installing\n\n```\ngem install crass\n```\n\n## Examples\n\nSay you have a string containing some CSS:\n\n```css\n/* Comment! */\na:hover {\n  color: #0d8bfa;\n  text-decoration: underline;\n}\n```\n\nParsing it is simple:\n\n```ruby\ntree = Crass.parse(css, :preserve_comments =\u003e true)\n```\n\nThis returns a big beautiful parse tree, which looks like this:\n\n```ruby\n[{:node=\u003e:comment, :pos=\u003e0, :raw=\u003e\"/* Comment! */\", :value=\u003e\" Comment! \"},\n {:node=\u003e:whitespace, :pos=\u003e14, :raw=\u003e\"\\n\"},\n {:node=\u003e:style_rule,\n  :selector=\u003e\n   {:node=\u003e:selector,\n    :value=\u003e\"a:hover\",\n    :tokens=\u003e\n     [{:node=\u003e:ident, :pos=\u003e15, :raw=\u003e\"a\", :value=\u003e\"a\"},\n      {:node=\u003e:colon, :pos=\u003e16, :raw=\u003e\":\"},\n      {:node=\u003e:ident, :pos=\u003e17, :raw=\u003e\"hover\", :value=\u003e\"hover\"},\n      {:node=\u003e:whitespace, :pos=\u003e22, :raw=\u003e\" \"}]},\n  :children=\u003e\n   [{:node=\u003e:whitespace, :pos=\u003e24, :raw=\u003e\"\\n  \"},\n    {:node=\u003e:property,\n     :name=\u003e\"color\",\n     :value=\u003e\"#0d8bfa\",\n     :children=\u003e\n      [{:node=\u003e:whitespace, :pos=\u003e33, :raw=\u003e\" \"},\n       {:node=\u003e:hash,\n        :pos=\u003e34,\n        :raw=\u003e\"#0d8bfa\",\n        :type=\u003e:unrestricted,\n        :value=\u003e\"0d8bfa\"}],\n     :important=\u003efalse,\n     :tokens=\u003e\n      [{:node=\u003e:ident, :pos=\u003e27, :raw=\u003e\"color\", :value=\u003e\"color\"},\n       {:node=\u003e:colon, :pos=\u003e32, :raw=\u003e\":\"},\n       {:node=\u003e:whitespace, :pos=\u003e33, :raw=\u003e\" \"},\n       {:node=\u003e:hash,\n        :pos=\u003e34,\n        :raw=\u003e\"#0d8bfa\",\n        :type=\u003e:unrestricted,\n        :value=\u003e\"0d8bfa\"}]},\n    {:node=\u003e:semicolon, :pos=\u003e41, :raw=\u003e\";\"},\n    {:node=\u003e:whitespace, :pos=\u003e42, :raw=\u003e\"\\n  \"},\n    {:node=\u003e:property,\n     :name=\u003e\"text-decoration\",\n     :value=\u003e\"underline\",\n     :children=\u003e\n      [{:node=\u003e:whitespace, :pos=\u003e61, :raw=\u003e\" \"},\n       {:node=\u003e:ident, :pos=\u003e62, :raw=\u003e\"underline\", :value=\u003e\"underline\"}],\n     :important=\u003efalse,\n     :tokens=\u003e\n      [{:node=\u003e:ident,\n        :pos=\u003e45,\n        :raw=\u003e\"text-decoration\",\n        :value=\u003e\"text-decoration\"},\n       {:node=\u003e:colon, :pos=\u003e60, :raw=\u003e\":\"},\n       {:node=\u003e:whitespace, :pos=\u003e61, :raw=\u003e\" \"},\n       {:node=\u003e:ident, :pos=\u003e62, :raw=\u003e\"underline\", :value=\u003e\"underline\"}]},\n    {:node=\u003e:semicolon, :pos=\u003e71, :raw=\u003e\";\"},\n    {:node=\u003e:whitespace, :pos=\u003e72, :raw=\u003e\"\\n\"}]}]\n```\n\nIf you want, you can stringify the parse tree:\n\n```ruby\ncss = Crass::Parser.stringify(tree)\n```\n\n...which gives you back exactly what you put in!\n\n```css\n/* Comment! */\na:hover {\n  color: #0d8bfa;\n  text-decoration: underline;\n}\n```\n\nWasn't that exciting?\n\n## Versioning\n\nAs of version 1.0.0, Crass adheres strictly to [SemVer 2.0](http://semver.org/spec/v2.0.0.html).\n\n## Contributing\n\nThe best way to contribute is to use Crass and [create issues](https://github.com/rgrove/crass/issues/new) when you run into problems.\n\nPull requests that fix bugs are more than welcome as long as they include tests. Please adhere to the style and format of the surrounding code, or I might ask you to change things.\n\nIf you want to add a feature or refactor something, please get in touch first to make sure I'm on board with your idea and approach; I'm pretty picky, and I'd hate to have to turn down a pull request you spent a lot of time on.\n\n## Acknowledgments\n\nI'm deeply grateful to [Simon Sapin](http://exyr.org/about/) for his wonderfully comprehensive [CSS parsing tests](https://github.com/SimonSapin/css-parsing-tests/), which I adapted to create many of Crass's tests. They've been invaluable in helping me fix bugs and handle weird edge cases, and Crass would be much crappier without them.\n\nI'm also grateful to [Tab Atkins-Bittner](https://www.xanthir.com/contact/) and Simon Sapin (again!) for their work on the [CSS Syntax Level 3](http://www.w3.org/TR/css-syntax-3/) specification, which defines the tokenizing and parsing rules that Crass implements.\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["activerecord","rubygems","ruby-gem","gem","activejob","mvc","sinatra","polyglot-release","cucumber","crash-reporting"],"project_url":"https://ruby.ecosyste.ms/api/v1/projects/263","html_url":"https://ruby.ecosyste.ms/projects/263"}