{"schema_version":"2","scorer_version":"0.1.0","scoring_version":"prov-5+qual-2+sec-2","generated_at":"2026-11-14T14:52:04.218320Z","repo":{"ref":{"host":"github.com","owner":"elementalui","name":"elemental"},"default_branch":"master","clone_url":"https://github.com/elementalui/elemental.git","html_url":"https://github.com/elementalui/elemental","description":"A flexible and beautiful UI framework for React.js","stars":4277,"forks":211,"is_fork":false,"is_archived":false,"is_private":false,"size_kb":2043,"primary_language":"JavaScript","license_spdx":"MIT","created_at":"2015-04-10T03:02:59Z","pushed_at":"2018-12-17T13:44:14Z","security_policy_url":null,"distribution":{"owner_created_at":"2015-04-10T03:00:29Z","owner_type":"Organization","release_assets":[]}},"commit_sha":"43d25fdb280957ec382c88404b1a81c3101825ec","profile":{"lines_by_language":{"JavaScript":6066,"Shell":25},"files_by_category":{"other":73,"source":60,"config":9,"docs":5,"binary":5,"test":2,"vendored":1},"source_lines":5990,"test_lines":101},"pillars":{"ai_provenance":{"score":0.0,"confidence":0.65,"coverage":1.0,"label":"none-detected","breakdown":{"attributed_share":0.0,"suspected_share":0.0,"estimated_share":0.0,"ai_artifacts":0.0,"flagged_work_units":0.0,"flagged_releases":0.0,"style_index":0.0},"summary":"No AI attribution or AI-consistent velocity signals detected."},"quality":{"score":37.6,"confidence":0.9,"coverage":1.0,"label":"poor","breakdown":{"complexity":31.0,"duplication":27.7,"lint":63.8,"testing":21.1,"docs":85.0,"type_safety":null,"process":20.0},"summary":"Code quality is poor: test-to-source ratio 0.02, no CI test run detected; 39% of function code in complex or long functions; 21% duplicated lines. Weakest area: process."},"security":{"score":71.8,"confidence":0.85,"coverage":1.0,"label":"adequate","breakdown":{"secrets":100.0,"sast":95.7,"dependencies":null,"ci_actions":null,"posture":0.0,"scorecard":25.0},"summary":"Security posture is adequate: no high-impact findings. Weakest area: posture."}},"analyzer_results":[{"analyzer":"sec-scorecard","pillar":"security","status":"ok","tool_version":"scorecard v5.6.0","metrics":{"aggregate":2.6,"check:Code-Review":4.0,"check:Maintained":0.0,"check:Binary-Artifacts":10.0,"check:CII-Best-Practices":0.0,"check:Security-Policy":0.0,"check:License":10.0,"check:Fuzzing":0.0,"check:Branch-Protection":0.0,"check:SAST":0.0},"findings":[],"evidence":[{"kind":"scorecard-check","description":"Scorecard Code-Review: 4/10 (Found 9/19 approved changesets -- score normalized to 4)","ref":"Code-Review","url":"https://scorecard.dev/viewer/?uri=github.com/elementalui/elemental","weight":0.6},{"kind":"scorecard-check","description":"Scorecard Maintained: 0/10 (0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0)","ref":"Maintained","url":"https://scorecard.dev/viewer/?uri=github.com/elementalui/elemental","weight":1.0},{"kind":"scorecard-check","description":"Scorecard Binary-Artifacts: 10/10 (no binaries found in the repo)","ref":"Binary-Artifacts","url":"https://scorecard.dev/viewer/?uri=github.com/elementalui/elemental","weight":0.0},{"kind":"scorecard-check","description":"Scorecard CII-Best-Practices: 0/10 (no effort to earn an OpenSSF best practices badge detected)","ref":"CII-Best-Practices","url":"https://scorecard.dev/viewer/?uri=github.com/elementalui/elemental","weight":1.0},{"kind":"scorecard-check","description":"Scorecard Security-Policy: 0/10 (security policy file not detected)","ref":"Security-Policy","url":"https://scorecard.dev/viewer/?uri=github.com/elementalui/elemental","weight":1.0},{"kind":"scorecard-check","description":"Scorecard License: 10/10 (license file detected)","ref":"License","url":"https://scorecard.dev/viewer/?uri=github.com/elementalui/elemental","weight":0.0},{"kind":"scorecard-check","description":"Scorecard Fuzzing: 0/10 (project is not fuzzed)","ref":"Fuzzing","url":"https://scorecard.dev/viewer/?uri=github.com/elementalui/elemental","weight":1.0},{"kind":"scorecard-check","description":"Scorecard Branch-Protection: 0/10 (branch protection not enabled on development/release branches)","ref":"Branch-Protection","url":"https://scorecard.dev/viewer/?uri=github.com/elementalui/elemental","weight":1.0},{"kind":"scorecard-check","description":"Scorecard SAST: 0/10 (SAST tool is not run on all commits -- score normalized to 0)","ref":"SAST","url":"https://scorecard.dev/viewer/?uri=github.com/elementalui/elemental","weight":1.0}],"data":{"date":"2026-10-19","commit":"43d25fdb280957ec382c88404b1a81c3101825ec","matches_head":true},"error":null},{"analyzer":"sec-registry","pillar":"security","status":"ok","tool_version":null,"metrics":{"declared":20.0,"checked":20.0,"missing":0.0,"recent":0.0,"lookup_errors":0.0},"findings":[],"evidence":[],"data":{"phantom":false},"error":null},{"analyzer":"ai-attribution","pillar":"ai_provenance","status":"ok","tool_version":"signatures-v1","metrics":{"commits":723.0,"attributed_commits":0.0,"attributed_commit_share":0.0,"effective_loc":15885.0,"attributed_loc":0.0,"attributed_loc_share":0.0,"tools_detected":0.0},"findings":[],"evidence":[],"data":{"attributed_loc_by_commit":{},"tools":{},"monthly":{"2015-04":{"loc":5499,"attributed_loc":0},"2015-05":{"loc":2450,"attributed_loc":0},"2015-06":{"loc":1394,"attributed_loc":0},"2015-07":{"loc":2412,"attributed_loc":0},"2015-08":{"loc":1371,"attributed_loc":0},"2015-09":{"loc":736,"attributed_loc":0},"2015-10":{"loc":217,"attributed_loc":0},"2015-11":{"loc":121,"attributed_loc":0},"2015-12":{"loc":348,"attributed_loc":0},"2016-01":{"loc":64,"attributed_loc":0},"2016-02":{"loc":17,"attributed_loc":0},"2016-03":{"loc":26,"attributed_loc":0},"2016-04":{"loc":0,"attributed_loc":0},"2016-05":{"loc":48,"attributed_loc":0},"2016-07":{"loc":44,"attributed_loc":0},"2016-08":{"loc":111,"attributed_loc":0},"2016-09":{"loc":140,"attributed_loc":0},"2016-11":{"loc":10,"attributed_loc":0},"2017-05":{"loc":25,"attributed_loc":0},"2017-06":{"loc":1,"attributed_loc":0},"2017-09":{"loc":217,"attributed_loc":0},"2017-10":{"loc":627,"attributed_loc":0},"2017-11":{"loc":7,"attributed_loc":0}}},"error":null},{"analyzer":"ai-artifacts","pillar":"ai_provenance","status":"ok","tool_version":"signatures-v1","metrics":{"artifacts":0.0,"workflow_agents":0.0,"tools_configured":0.0},"findings":[],"evidence":[],"data":{"artifacts":[],"workflows":[],"tools":[]},"error":null},{"analyzer":"ai-velocity","pillar":"ai_provenance","status":"ok","tool_version":"prov-4","metrics":{"work_units":231.0,"flagged_units":0.0,"pre_ai_era_bursts":0.0,"pre_ai_era_measured_loc":15885.0,"pre_ai_era_burst_loc":0.0,"measured_loc":15885.0,"flagged_loc":0.0,"flagged_loc_share":0.0,"max_loc_per_hour":433.358773329633,"median_loc_per_hour":54.848148521844415,"pr_timed_units":0.0,"excluded_import_loc":0.0},"findings":[],"evidence":[],"data":{"flagged_loc_by_commit":{},"excluded_import_commits":[]},"error":null},{"analyzer":"ai-release-velocity","pillar":"ai_provenance","status":"ok","tool_version":"prov-4","metrics":{"releases":42.0,"flagged_releases":0.0,"max_loc_per_day":2038.6},"findings":[],"evidence":[],"data":{"releases":[{"from":"v0.0.2","to":"v0.0.3","loc":1766,"days":0.87,"loc_per_day":2038.6,"flagged":false},{"from":"v0.0.3","to":"v0.0.4","loc":574,"days":7.25,"loc_per_day":79.2,"flagged":false},{"from":"v0.0.4","to":"v0.0.5","loc":453,"days":1.74,"loc_per_day":259.7,"flagged":false},{"from":"v0.0.5","to":"v0.0.6","loc":111,"days":1.08,"loc_per_day":102.7,"flagged":false},{"from":"v0.0.6","to":"v0.0.7","loc":156,"days":1.82,"loc_per_day":85.6,"flagged":false},{"from":"v0.0.7","to":"v0.0.8","loc":335,"days":2.85,"loc_per_day":117.7,"flagged":false},{"from":"v0.0.8","to":"v0.0.9","loc":230,"days":1.15,"loc_per_day":199.5,"flagged":false},{"from":"v0.0.9","to":"v0.1.1","loc":584,"days":13.04,"loc_per_day":44.8,"flagged":false},{"from":"v0.1.1","to":"v0.2.0","loc":3256,"days":42.09,"loc_per_day":77.4,"flagged":false},{"from":"v0.2.0","to":"v0.2.1","loc":357,"days":18.1,"loc_per_day":19.7,"flagged":false},{"from":"v0.2.1","to":"v0.2.2","loc":32,"days":1.73,"loc_per_day":18.5,"flagged":false},{"from":"v0.2.2","to":"v0.2.3","loc":141,"days":0.27,"loc_per_day":516.3,"flagged":false},{"from":"v0.2.3","to":"v0.3.0","loc":166,"days":13.85,"loc_per_day":12.0,"flagged":false},{"from":"v0.3.0","to":"v0.3.1","loc":69,"days":5.05,"loc_per_day":13.7,"flagged":false},{"from":"v0.3.1","to":"v0.3.2","loc":94,"days":4.09,"loc_per_day":23.0,"flagged":false},{"from":"v0.3.2","to":"v0.3.3","loc":6,"days":1.0,"loc_per_day":6.0,"flagged":false},{"from":"v0.3.3","to":"v0.3.4","loc":3,"days":0.04,"loc_per_day":72.0,"flagged":false},{"from":"v0.3.4","to":"v0.4.0","loc":1049,"days":5.0,"loc_per_day":210.0,"flagged":false},{"from":"v0.4.0","to":"v0.4.1","loc":25,"days":5.68,"loc_per_day":4.4,"flagged":false},{"from":"v0.4.1","to":"v0.4.2","loc":230,"days":1.29,"loc_per_day":178.2,"flagged":false},{"from":"v0.4.2","to":"v0.4.3","loc":0,"days":4.71,"loc_per_day":0.0,"flagged":false},{"from":"v0.4.3","to":"v0.4.4","loc":5,"days":2.28,"loc_per_day":2.2,"flagged":false},{"from":"v0.4.4","to":"v0.4.5","loc":1,"days":4.55,"loc_per_day":0.2,"flagged":false},{"from":"v0.4.5","to":"v0.4.6","loc":70,"days":1.51,"loc_per_day":46.4,"flagged":false},{"from":"v0.4.6","to":"v0.4.7","loc":77,"days":0.78,"loc_per_day":98.2,"flagged":false},{"from":"v0.4.7","to":"v0.4.8","loc":215,"days":1.1,"loc_per_day":195.2,"flagged":false},{"from":"v0.4.8","to":"v0.5.0","loc":129,"days":23.05,"loc_per_day":5.6,"flagged":false},{"from":"v0.5.0","to":"v0.5.1","loc":53,"days":3.5,"loc_per_day":15.1,"flagged":false},{"from":"v0.5.1","to":"v0.5.2","loc":14,"days":0.19,"loc_per_day":75.2,"flagged":false},{"from":"v0.5.2","to":"v0.5.3","loc":0,"days":2.33,"loc_per_day":0.0,"flagged":false},{"from":"v0.5.3","to":"v0.5.4","loc":78,"days":20.59,"loc_per_day":3.8,"flagged":false},{"from":"v0.5.4","to":"v0.5.5","loc":14,"days":6.2,"loc_per_day":2.3,"flagged":false},{"from":"v0.5.5","to":"v0.5.6","loc":3,"days":6.29,"loc_per_day":0.5,"flagged":false},{"from":"v0.5.6","to":"v0.5.7","loc":91,"days":16.9,"loc_per_day":5.4,"flagged":false},{"from":"v0.5.7","to":"v0.5.8","loc":20,"days":6.08,"loc_per_day":3.3,"flagged":false},{"from":"v0.5.8","to":"v0.5.9","loc":14,"days":4.61,"loc_per_day":3.0,"flagged":false},{"from":"v0.5.9","to":"v0.5.10","loc":0,"days":4.3,"loc_per_day":0.0,"flagged":false},{"from":"v0.5.10","to":"v0.5.11","loc":338,"days":7.03,"loc_per_day":48.1,"flagged":false},{"from":"v0.5.11","to":"v0.5.12","loc":133,"days":48.78,"loc_per_day":2.7,"flagged":false},{"from":"v0.5.12","to":"v0.5.14","loc":31,"days":53.32,"loc_per_day":0.6,"flagged":false},{"from":"v0.5.14","to":"v0.6.0","loc":86,"days":107.49,"loc_per_day":0.8,"flagged":false},{"from":"v0.6.0","to":"v0.6.1","loc":36,"days":9.08,"loc_per_day":4.0,"flagged":false}]},"error":null},{"analyzer":"ai-stylometry","pillar":"ai_provenance","status":"ok","tool_version":null,"metrics":{"lines_scanned":5990.0,"index":0.0,"count:narrated_steps":0.0,"per_kloc:narrated_steps":0.0,"files:narrated_steps":0.0,"count:placeholder":0.0,"per_kloc:placeholder":0.0,"files:placeholder":0.0,"count:emoji_in_code":0.0,"per_kloc:emoji_in_code":0.0,"files:emoji_in_code":0.0,"count:assistant_voice":0.0,"per_kloc:assistant_voice":0.0,"files:assistant_voice":0.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-secrets","pillar":"security","status":"ok","tool_version":"gitleaks 8.30.1","metrics":{"secrets_current":0.0,"secrets_history":0.0,"secrets_nonprod":0.0,"secrets_low_confidence":0.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-sast","pillar":"security","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":3.0,"findings_high":0.0,"findings_medium":3.0,"findings_low":0.0,"weighted_findings":0.75,"scanned_lines":5990.0,"parse_errors":0.0},"findings":[{"rule_id":"opengrep/javascript.lang.security.html-in-template-string","severity":"medium","message":"This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS). [confidence low]","path":"site/src/pages/Buttons.js","line":87,"fingerprint":"javascript.lang.security.html-in-template-string:site/src/pages/Buttons.js:87"},{"rule_id":"opengrep/javascript.lang.security.html-in-template-string","severity":"medium","message":"This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS). [confidence low]","path":"site/src/pages/Glyphs.js","line":39,"fingerprint":"javascript.lang.security.html-in-template-string:site/src/pages/Glyphs.js:39"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-redos","severity":"medium","message":"Detected the use of a regular expression `^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$` which appears to be vulnerable to a Regular expression Denial-of-Service (ReDoS). For this reason, it is rec [confidence low]","path":"src/components/EmailInputGroup.js","line":9,"fingerprint":"javascript.lang.security.audit.detect-redos:src/components/EmailInputGroup.js:9"}],"evidence":[],"data":{"rulesets":["javascript","bash"]},"error":null},{"analyzer":"sec-deps","pillar":"security","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-actions","pillar":"security","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-posture","pillar":"security","status":"ok","tool_version":null,"metrics":{"check:security_policy":0.0,"check:dependency_updates":0.0,"check:signed_commits":0.0,"check:lockfiles":0.0,"signed_commit_share":0.005,"unpinned_manifests":1.0},"findings":[],"evidence":[{"kind":"posture","description":"package.json has no lockfile alongside it (unpinned dependencies)","ref":"package.json","url":null,"weight":0.3}],"data":{},"error":null},{"analyzer":"sec-distribution","pillar":"security","status":"ok","tool_version":null,"metrics":{"signals":0.0,"binary_assets":0.0,"suspicious":0.0},"findings":[],"evidence":[],"data":{"signals":[],"suspicious":false,"unusual_traction":false,"metadata":true},"error":null},{"analyzer":"qual-complexity","pillar":"quality","status":"ok","tool_version":"lizard 1.25.1","metrics":{"functions":228.0,"function_nloc":3314.0,"mean_ccn":2.04,"p90_ccn":4.0,"complex_functions":2.0,"long_functions":4.0,"many_param_functions":0.0,"risky_nloc_share":0.3902},"findings":[],"evidence":[{"kind":"complex-function","description":"render in src/components/Col.js: complexity 18, 35 lines","ref":"src/components/Col.js","url":"https://github.com/elementalui/elemental/blob/43d25fdb280957ec382c88404b1a81c3101825ec/src/components/Col.js#L45","weight":0.3},{"kind":"complex-function","description":"render in src/components/ResponsiveText.js: complexity 16, 25 lines","ref":"src/components/ResponsiveText.js","url":"https://github.com/elementalui/elemental/blob/43d25fdb280957ec382c88404b1a81c3101825ec/src/components/ResponsiveText.js#L35","weight":0.26666666666666666},{"kind":"complex-function","description":"render in site/src/pages/Modal.js: complexity 5, 185 lines","ref":"site/src/pages/Modal.js","url":"https://github.com/elementalui/elemental/blob/43d25fdb280957ec382c88404b1a81c3101825ec/site/src/pages/Modal.js#L38","weight":0.08333333333333333},{"kind":"complex-function","description":"render in site/src/pages/Forms.js: complexity 2, 723 lines","ref":"site/src/pages/Forms.js","url":"https://github.com/elementalui/elemental/blob/43d25fdb280957ec382c88404b1a81c3101825ec/site/src/pages/Forms.js#L75","weight":0.03333333333333333},{"kind":"complex-function","description":"render in site/src/pages/Grid.js: complexity 1, 210 lines","ref":"site/src/pages/Grid.js","url":"https://github.com/elementalui/elemental/blob/43d25fdb280957ec382c88404b1a81c3101825ec/site/src/pages/Grid.js#L11","weight":0.016666666666666666},{"kind":"complex-function","description":"render in site/src/pages/Spinner.js: complexity 1, 115 lines","ref":"site/src/pages/Spinner.js","url":"https://github.com/elementalui/elemental/blob/43d25fdb280957ec382c88404b1a81c3101825ec/site/src/pages/Spinner.js#L9","weight":0.016666666666666666}],"data":{},"error":null},{"analyzer":"qual-duplication","pillar":"quality","status":"ok","tool_version":"repotrust-dup-w6","metrics":{"compared_lines":4831.0,"duplicated_lines":1034.0,"duplicated_share":0.214,"files":60.0},"findings":[],"evidence":[{"kind":"duplicate-code","description":"6+ duplicated lines: site/src/pages/Buttons.js:146 and site/src/pages/Buttons.js:228","ref":"site/src/pages/Buttons.js","url":"https://github.com/elementalui/elemental/blob/43d25fdb280957ec382c88404b1a81c3101825ec/site/src/pages/Buttons.js#L146","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: site/src/pages/Buttons.js:190 and site/src/pages/Glyphs.js:104","ref":"site/src/pages/Buttons.js","url":"https://github.com/elementalui/elemental/blob/43d25fdb280957ec382c88404b1a81c3101825ec/site/src/pages/Buttons.js#L190","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: site/src/pages/Buttons.js:239 and site/src/pages/Misc.js:101","ref":"site/src/pages/Buttons.js","url":"https://github.com/elementalui/elemental/blob/43d25fdb280957ec382c88404b1a81c3101825ec/site/src/pages/Buttons.js#L239","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: site/src/pages/Buttons.js:337 and site/src/pages/Spinner.js:118","ref":"site/src/pages/Buttons.js","url":"https://github.com/elementalui/elemental/blob/43d25fdb280957ec382c88404b1a81c3101825ec/site/src/pages/Buttons.js#L337","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: site/src/pages/CSS.js:93 and site/src/pages/CSS.js:104","ref":"site/src/pages/CSS.js","url":"https://github.com/elementalui/elemental/blob/43d25fdb280957ec382c88404b1a81c3101825ec/site/src/pages/CSS.js#L93","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: site/src/pages/Forms.js:131 and site/src/pages/Forms.js:146","ref":"site/src/pages/Forms.js","url":"https://github.com/elementalui/elemental/blob/43d25fdb280957ec382c88404b1a81c3101825ec/site/src/pages/Forms.js#L131","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: site/src/pages/Forms.js:706 and site/src/pages/Glyphs.js:113","ref":"site/src/pages/Forms.js","url":"https://github.com/elementalui/elemental/blob/43d25fdb280957ec382c88404b1a81c3101825ec/site/src/pages/Forms.js#L706","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: site/src/pages/Grid.js:22 and site/src/pages/Grid.js:36","ref":"site/src/pages/Grid.js","url":"https://github.com/elementalui/elemental/blob/43d25fdb280957ec382c88404b1a81c3101825ec/site/src/pages/Grid.js#L22","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: site/src/pages/Misc.js:58 and site/src/pages/Misc.js:321","ref":"site/src/pages/Misc.js","url":"https://github.com/elementalui/elemental/blob/43d25fdb280957ec382c88404b1a81c3101825ec/site/src/pages/Misc.js#L58","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: site/src/pages/Misc.js:400 and site/src/pages/Spinner.js:117","ref":"site/src/pages/Misc.js","url":"https://github.com/elementalui/elemental/blob/43d25fdb280957ec382c88404b1a81c3101825ec/site/src/pages/Misc.js#L400","weight":0.3}],"data":{},"error":null},{"analyzer":"qual-lint","pillar":"quality","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":40.0,"weighted_findings":10.75,"scanned_lines":5990.0,"category:best-practice":1.0,"category:correctness":39.0},"findings":[{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"site/src/pages/Forms.js","line":60,"fingerprint":"javascript.lang.best-practice.javascript-alert:site/src/pages/Forms.js:60"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command","severity":"low","message":"Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may use a variable that starts with an underscore e.g. $_X instead of ","path":"scripts/bower.sh","line":8,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:scripts/bower.sh:8"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command","severity":"low","message":"Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may use a variable that starts with an underscore e.g. $_X instead of ","path":"scripts/bower.sh","line":9,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:scripts/bower.sh:9"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command","severity":"low","message":"Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may use a variable that starts with an underscore e.g. $_X instead of ","path":"scripts/bower.sh","line":10,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:scripts/bower.sh:10"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command","severity":"low","message":"Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may use a variable that starts with an underscore e.g. $_X instead of ","path":"scripts/bower.sh","line":11,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:scripts/bower.sh:11"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command","severity":"low","message":"Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may use a variable that starts with an underscore e.g. $_X instead of ","path":"scripts/bower.sh","line":14,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:scripts/bower.sh:14"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command","severity":"low","message":"Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may use a variable that starts with an underscore e.g. $_X instead of ","path":"scripts/bower.sh","line":15,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:scripts/bower.sh:15"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command","severity":"low","message":"Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may use a variable that starts with an underscore e.g. $_X instead of ","path":"scripts/bower.sh","line":16,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:scripts/bower.sh:16"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command","severity":"low","message":"Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may use a variable that starts with an underscore e.g. $_X instead of ","path":"scripts/bower.sh","line":18,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:scripts/bower.sh:18"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command","severity":"low","message":"Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may use a variable that starts with an underscore e.g. $_X instead of ","path":"scripts/bower.sh","line":19,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:scripts/bower.sh:19"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command","severity":"low","message":"Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may use a variable that starts with an underscore e.g. $_X instead of ","path":"scripts/bower.sh","line":20,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:scripts/bower.sh:20"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command","severity":"low","message":"Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may use a variable that starts with an underscore e.g. $_X instead of ","path":"scripts/bower.sh","line":23,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:scripts/bower.sh:23"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"site/src/pages/Buttons.js","line":259,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:site/src/pages/Buttons.js:259"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"site/src/pages/Buttons.js","line":259,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:site/src/pages/Buttons.js:259"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"site/src/pages/Buttons.js","line":270,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:site/src/pages/Buttons.js:270"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"site/src/pages/Buttons.js","line":270,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:site/src/pages/Buttons.js:270"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"site/src/pages/CSS.js","line":137,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:site/src/pages/CSS.js:137"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"site/src/pages/CSS.js","line":137,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:site/src/pages/CSS.js:137"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"site/src/pages/Forms.js","line":466,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:site/src/pages/Forms.js:466"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"site/src/pages/Forms.js","line":466,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:site/src/pages/Forms.js:466"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"site/src/pages/Forms.js","line":544,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:site/src/pages/Forms.js:544"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"site/src/pages/Forms.js","line":544,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:site/src/pages/Forms.js:544"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"site/src/pages/Forms.js","line":627,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:site/src/pages/Forms.js:627"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"site/src/pages/Forms.js","line":627,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:site/src/pages/Forms.js:627"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"site/src/pages/Forms.js","line":806,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:site/src/pages/Forms.js:806"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"site/src/pages/Forms.js","line":806,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:site/src/pages/Forms.js:806"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"site/src/pages/Home.js","line":88,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:site/src/pages/Home.js:88"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"site/src/pages/Home.js","line":88,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:site/src/pages/Home.js:88"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"site/src/pages/Misc.js","line":197,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:site/src/pages/Misc.js:197"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"site/src/pages/Misc.js","line":197,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:site/src/pages/Misc.js:197"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"site/src/pages/Misc.js","line":319,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:site/src/pages/Misc.js:319"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"site/src/pages/Misc.js","line":319,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:site/src/pages/Misc.js:319"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"site/src/pages/Misc.js","line":357,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:site/src/pages/Misc.js:357"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"site/src/pages/Misc.js","line":357,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:site/src/pages/Misc.js:357"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"site/src/pages/Modal.js","line":84,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:site/src/pages/Modal.js:84"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"site/src/pages/Modal.js","line":84,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:site/src/pages/Modal.js:84"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"site/src/pages/Modal.js","line":89,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:site/src/pages/Modal.js:89"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"site/src/pages/Modal.js","line":89,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:site/src/pages/Modal.js:89"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"site/src/pages/Modal.js","line":110,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:site/src/pages/Modal.js:110"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"site/src/pages/Modal.js","line":110,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:site/src/pages/Modal.js:110"}],"evidence":[],"data":{},"error":null},{"analyzer":"qual-testing","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:has_tests":1.0,"check:test_ratio":0.0337,"check:ci_present":0.0,"check:ci_runs_tests":0.0,"check:ci_runs_lint":0.0,"check:tests_cochange":0.0234,"test_lines":101.0,"source_lines":5990.0,"test_ratio":0.0169,"ci_files":0.0,"cochange_share":0.0058,"cochange_commits":171.0},"findings":[],"evidence":[],"data":{"test_commands":[],"lint_commands":[]},"error":null},{"analyzer":"qual-docs","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:readme":1.0,"check:license":1.0,"check:contributing":0.0,"check:changelog":1.0,"readme_lines":17.0},"findings":[],"evidence":[{"kind":"docs","description":"README.md","ref":"README.md","url":null,"weight":0.0},{"kind":"docs","description":"LICENSE","ref":"LICENSE","url":null,"weight":0.0},{"kind":"docs","description":"HISTORY.md","ref":"HISTORY.md","url":null,"weight":0.0}],"data":{},"error":null},{"analyzer":"qual-type-safety","pillar":"quality","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":null}],"flags":[]}