{"schema_version":"2","scorer_version":"0.1.0","scoring_version":"prov-4+qual-2+sec-2","generated_at":"2026-11-13T23:25:20.096079Z","repo":{"ref":{"host":"github.com","owner":"antimatter15","name":"ocrad.js"},"default_branch":"master","clone_url":"https://github.com/antimatter15/ocrad.js.git","html_url":"https://github.com/antimatter15/ocrad.js","description":"OCR in Javascript via Emscripten","stars":3513,"forks":379,"is_fork":false,"is_archived":false,"is_private":false,"size_kb":8166,"primary_language":"JavaScript","license_spdx":"GPL-3.0","created_at":"2013-12-30T18:52:36Z","pushed_at":"2020-09-02T20:34:54Z","security_policy_url":null,"distribution":{"owner_created_at":"2008-10-21T01:24:27Z","owner_type":"User","release_assets":[]}},"commit_sha":"41daf0d2c2d0fc46db0633a6c6516af779b9f0bc","profile":{"lines_by_language":{"C++":10510,"C":1567,"JavaScript":315,"Shell":202,"Python":13},"files_by_category":{"source":57,"other":27,"docs":6,"binary":6,"oversized":2,"config":1},"source_lines":12607,"test_lines":0},"pillars":{"ai_provenance":{"score":0.0,"confidence":0.47,"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":null},"summary":"No AI attribution or AI-consistent velocity signals detected."},"quality":{"score":36.8,"confidence":0.9,"coverage":1.0,"label":"poor","breakdown":{"complexity":17.6,"duplication":58.4,"lint":83.2,"testing":0.0,"docs":85.0,"type_safety":40.0,"process":15.0},"summary":"Code quality is poor: test-to-source ratio 0.00, no CI test run detected; 58% of function code in complex or long functions; 9% duplicated lines. Weakest area: testing."},"security":{"score":73.1,"confidence":0.85,"coverage":1.0,"label":"adequate","breakdown":{"secrets":100.0,"sast":100.0,"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.5,"check:Code-Review":3.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: 3/10 (Found 6/17 approved changesets -- score normalized to 3)","ref":"Code-Review","url":"https://scorecard.dev/viewer/?uri=github.com/antimatter15/ocrad.js","weight":0.7},{"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/antimatter15/ocrad.js","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/antimatter15/ocrad.js","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/antimatter15/ocrad.js","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/antimatter15/ocrad.js","weight":1.0},{"kind":"scorecard-check","description":"Scorecard License: 10/10 (license file detected)","ref":"License","url":"https://scorecard.dev/viewer/?uri=github.com/antimatter15/ocrad.js","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/antimatter15/ocrad.js","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/antimatter15/ocrad.js","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/antimatter15/ocrad.js","weight":1.0}],"data":{"date":"2026-11-09","commit":"41daf0d2c2d0fc46db0633a6c6516af779b9f0bc","matches_head":true},"error":null},{"analyzer":"sec-registry","pillar":"security","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":"no registry dependencies declared"},{"analyzer":"ai-attribution","pillar":"ai_provenance","status":"ok","tool_version":"signatures-v1","metrics":{"commits":28.0,"attributed_commits":0.0,"attributed_commit_share":0.0,"effective_loc":118360.0,"attributed_loc":0.0,"attributed_loc_share":0.0,"tools_detected":0.0},"findings":[],"evidence":[],"data":{"attributed_loc_by_commit":{},"tools":{},"monthly":{"2013-12":{"loc":19553,"attributed_loc":0},"2014-01":{"loc":46,"attributed_loc":0},"2014-04":{"loc":76,"attributed_loc":0},"2014-05":{"loc":178,"attributed_loc":0},"2014-11":{"loc":0,"attributed_loc":0},"2015-01":{"loc":1013,"attributed_loc":0},"2015-09":{"loc":0,"attributed_loc":0},"2016-08":{"loc":97488,"attributed_loc":0},"2018-07":{"loc":4,"attributed_loc":0},"2019-06":{"loc":2,"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":11.0,"flagged_units":0.0,"pre_ai_era_bursts":0.0,"pre_ai_era_measured_loc":1512.0,"pre_ai_era_burst_loc":0.0,"measured_loc":1512.0,"flagged_loc":0.0,"flagged_loc_share":0.0,"max_loc_per_hour":231.25,"median_loc_per_hour":130.5,"pr_timed_units":0.0,"excluded_import_loc":116848.0},"findings":[],"evidence":[],"data":{"flagged_loc_by_commit":{},"excluded_import_commits":["b317fe0713646966b0dcfa1d47f31c9dc1b08c42","c1d2b2735afc558c503b77fc9694ba1b5baf199e","c8e4c512497def4a8e564d874cde4deee7955ba7"]},"error":null},{"analyzer":"ai-release-velocity","pillar":"ai_provenance","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"ai-stylometry","pillar":"ai_provenance","status":"ok","tool_version":null,"metrics":{"lines_scanned":12607.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":0.0,"findings_high":0.0,"findings_medium":0.0,"findings_low":0.0,"weighted_findings":0.0,"scanned_lines":12607.0,"parse_errors":2.0},"findings":[],"evidence":[],"data":{"rulesets":["c","javascript","bash","python"]},"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.0357,"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":561.0,"function_nloc":8616.0,"mean_ccn":8.88,"p90_ccn":18.0,"complex_functions":77.0,"long_functions":10.0,"many_param_functions":0.0,"risky_nloc_share":0.5785},"findings":[],"evidence":[{"kind":"complex-function","description":"Textline::recognize2 in ocrad-0.25/textline_r2.cc: complexity 409, 660 lines","ref":"ocrad-0.25/textline_r2.cc","url":"https://github.com/antimatter15/ocrad.js/blob/41daf0d2c2d0fc46db0633a6c6516af779b9f0bc/ocrad-0.25/textline_r2.cc#L103","weight":1.0},{"kind":"complex-function","description":"Character::recognize12 in ocrad-0.25/character_r12.cc: complexity 144, 211 lines","ref":"ocrad-0.25/character_r12.cc","url":"https://github.com/antimatter15/ocrad.js/blob/41daf0d2c2d0fc46db0633a6c6516af779b9f0bc/ocrad-0.25/character_r12.cc#L37","weight":1.0},{"kind":"complex-function","description":"Features::test_EFIJLlT in ocrad-0.25/feats_test0.cc: complexity 143, 161 lines","ref":"ocrad-0.25/feats_test0.cc","url":"https://github.com/antimatter15/ocrad.js/blob/41daf0d2c2d0fc46db0633a6c6516af779b9f0bc/ocrad-0.25/feats_test0.cc#L159","weight":1.0},{"kind":"complex-function","description":"Textblock::Textblock in ocrad-0.25/textblock.cc: complexity 115, 233 lines","ref":"ocrad-0.25/textblock.cc","url":"https://github.com/antimatter15/ocrad.js/blob/41daf0d2c2d0fc46db0633a6c6516af779b9f0bc/ocrad-0.25/textblock.cc#L147","weight":1.0},{"kind":"complex-function","description":"Features::test_HKMNUuvwYy in ocrad-0.25/feats_test0.cc: complexity 106, 124 lines","ref":"ocrad-0.25/feats_test0.cc","url":"https://github.com/antimatter15/ocrad.js/blob/41daf0d2c2d0fc46db0633a6c6516af779b9f0bc/ocrad-0.25/feats_test0.cc#L511","weight":1.0},{"kind":"complex-function","description":"Character::recognize110 in ocrad-0.25/character_r11.cc: complexity 104, 156 lines","ref":"ocrad-0.25/character_r11.cc","url":"https://github.com/antimatter15/ocrad.js/blob/41daf0d2c2d0fc46db0633a6c6516af779b9f0bc/ocrad-0.25/character_r11.cc#L55","weight":1.0},{"kind":"complex-function","description":"Character::recognize112 in ocrad-0.25/character_r11.cc: complexity 89, 124 lines","ref":"ocrad-0.25/character_r11.cc","url":"https://github.com/antimatter15/ocrad.js/blob/41daf0d2c2d0fc46db0633a6c6516af779b9f0bc/ocrad-0.25/character_r11.cc#L271","weight":1.0},{"kind":"complex-function","description":"Features::test_235Esz in ocrad-0.25/feats_test0.cc: complexity 88, 116 lines","ref":"ocrad-0.25/feats_test0.cc","url":"https://github.com/antimatter15/ocrad.js/blob/41daf0d2c2d0fc46db0633a6c6516af779b9f0bc/ocrad-0.25/feats_test0.cc#L37","weight":1.0},{"kind":"complex-function","description":"Features::test_frst in ocrad-0.25/feats_test0.cc: complexity 87, 110 lines","ref":"ocrad-0.25/feats_test0.cc","url":"https://github.com/antimatter15/ocrad.js/blob/41daf0d2c2d0fc46db0633a6c6516af779b9f0bc/ocrad-0.25/feats_test0.cc#L357","weight":1.0},{"kind":"complex-function","description":"main in ocrad-0.25/main.cc: complexity 76, 160 lines","ref":"ocrad-0.25/main.cc","url":"https://github.com/antimatter15/ocrad.js/blob/41daf0d2c2d0fc46db0633a6c6516af779b9f0bc/ocrad-0.25/main.cc#L255","weight":1.0}],"data":{},"error":null},{"analyzer":"qual-duplication","pillar":"quality","status":"ok","tool_version":"repotrust-dup-w6","metrics":{"compared_lines":8276.0,"duplicated_lines":742.0,"duplicated_share":0.0897,"files":57.0},"findings":[],"evidence":[{"kind":"duplicate-code","description":"6+ duplicated lines: ocrad-0.25/arg_parser.cc:1 and ocrad-0.25/arg_parser.h:1","ref":"ocrad-0.25/arg_parser.cc","url":"https://github.com/antimatter15/ocrad.js/blob/41daf0d2c2d0fc46db0633a6c6516af779b9f0bc/ocrad-0.25/arg_parser.cc#L1","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: ocrad-0.25/bitmap.cc:1 and ocrad-0.25/bitmap.h:1","ref":"ocrad-0.25/bitmap.cc","url":"https://github.com/antimatter15/ocrad.js/blob/41daf0d2c2d0fc46db0633a6c6516af779b9f0bc/ocrad-0.25/bitmap.cc#L1","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: ocrad-0.25/bitmap.cc:326 and ocrad-0.25/bitmap.cc:358","ref":"ocrad-0.25/bitmap.cc","url":"https://github.com/antimatter15/ocrad.js/blob/41daf0d2c2d0fc46db0633a6c6516af779b9f0bc/ocrad-0.25/bitmap.cc#L326","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: ocrad-0.25/bitmap.h:35 and ocrad-0.25/blob.h:40","ref":"ocrad-0.25/bitmap.h","url":"https://github.com/antimatter15/ocrad.js/blob/41daf0d2c2d0fc46db0633a6c6516af779b9f0bc/ocrad-0.25/bitmap.h#L35","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: ocrad-0.25/blob.cc:10 and ocrad-0.25/common.cc:10","ref":"ocrad-0.25/blob.cc","url":"https://github.com/antimatter15/ocrad.js/blob/41daf0d2c2d0fc46db0633a6c6516af779b9f0bc/ocrad-0.25/blob.cc#L10","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: ocrad-0.25/ocradlib.cc:1 and ocrad-0.25/ocradlib.h:1","ref":"ocrad-0.25/ocradlib.cc","url":"https://github.com/antimatter15/ocrad.js/blob/41daf0d2c2d0fc46db0633a6c6516af779b9f0bc/ocrad-0.25/ocradlib.cc#L1","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: ocrad-0.25/page_image.cc:195 and ocrad-0.25/page_image.cc:234","ref":"ocrad-0.25/page_image.cc","url":"https://github.com/antimatter15/ocrad.js/blob/41daf0d2c2d0fc46db0633a6c6516af779b9f0bc/ocrad-0.25/page_image.cc#L195","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: ocrad-0.25/rational.cc:1 and ocrad-0.25/rational.h:1","ref":"ocrad-0.25/rational.cc","url":"https://github.com/antimatter15/ocrad.js/blob/41daf0d2c2d0fc46db0633a6c6516af779b9f0bc/ocrad-0.25/rational.cc#L1","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: ocrad-0.25/rectangle.cc:11 and ocrad-0.25/track.cc:11","ref":"ocrad-0.25/rectangle.cc","url":"https://github.com/antimatter15/ocrad.js/blob/41daf0d2c2d0fc46db0633a6c6516af779b9f0bc/ocrad-0.25/rectangle.cc#L11","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: ocrad-0.25/textline_r2.cc:76 and ocrad-0.25/textline_r2.cc:694","ref":"ocrad-0.25/textline_r2.cc","url":"https://github.com/antimatter15/ocrad.js/blob/41daf0d2c2d0fc46db0633a6c6516af779b9f0bc/ocrad-0.25/textline_r2.cc#L76","weight":0.3}],"data":{},"error":null},{"analyzer":"qual-lint","pillar":"quality","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":31.0,"weighted_findings":9.25,"scanned_lines":12607.0,"category:best-practice":2.0,"category:correctness":29.0},"findings":[{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"src/generate.py","line":2,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:src/generate.py:2"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"src/generate.py","line":12,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:src/generate.py:12"},{"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":"ocrad-0.25/testsuite/check.sh","line":33,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:ocrad-0.25/testsuite/check.sh:33"},{"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":"ocrad-0.25/testsuite/check.sh","line":35,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:ocrad-0.25/testsuite/check.sh:35"},{"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":"ocrad-0.25/testsuite/check.sh","line":37,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:ocrad-0.25/testsuite/check.sh:37"},{"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":"ocrad-0.25/testsuite/check.sh","line":39,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:ocrad-0.25/testsuite/check.sh:39"},{"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":"ocrad-0.25/testsuite/check.sh","line":42,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:ocrad-0.25/testsuite/check.sh:42"},{"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":"ocrad-0.25/testsuite/check.sh","line":43,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:ocrad-0.25/testsuite/check.sh:43"},{"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":"ocrad-0.25/testsuite/check.sh","line":46,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:ocrad-0.25/testsuite/check.sh:46"},{"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":"ocrad-0.25/testsuite/check.sh","line":48,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:ocrad-0.25/testsuite/check.sh:48"},{"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":"ocrad-0.25/testsuite/check.sh","line":49,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:ocrad-0.25/testsuite/check.sh:49"},{"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":"ocrad-0.25/testsuite/check.sh","line":52,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:ocrad-0.25/testsuite/check.sh:52"},{"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":"ocrad-0.25/testsuite/check.sh","line":55,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:ocrad-0.25/testsuite/check.sh:55"},{"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":"ocrad-0.25/testsuite/check.sh","line":56,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:ocrad-0.25/testsuite/check.sh:56"},{"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":"ocrad-0.25/testsuite/check.sh","line":58,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:ocrad-0.25/testsuite/check.sh:58"},{"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":"ocrad-0.25/testsuite/check.sh","line":59,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:ocrad-0.25/testsuite/check.sh:59"},{"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":"ocrad-0.25/testsuite/check.sh","line":62,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:ocrad-0.25/testsuite/check.sh:62"},{"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":"ocrad-0.25/testsuite/check.sh","line":63,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:ocrad-0.25/testsuite/check.sh:63"},{"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":"ocrad-0.25/testsuite/check.sh","line":66,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:ocrad-0.25/testsuite/check.sh:66"},{"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":"ocrad-0.25/testsuite/check.sh","line":69,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:ocrad-0.25/testsuite/check.sh:69"},{"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":"ocrad-0.25/testsuite/check.sh","line":70,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:ocrad-0.25/testsuite/check.sh:70"},{"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":"ocrad-0.25/testsuite/check.sh","line":73,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:ocrad-0.25/testsuite/check.sh:73"},{"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":"ocrad-0.25/testsuite/check.sh","line":76,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:ocrad-0.25/testsuite/check.sh:76"},{"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":"ocrad-0.25/testsuite/check.sh","line":77,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:ocrad-0.25/testsuite/check.sh:77"},{"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":"ocrad-0.25/testsuite/check.sh","line":78,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:ocrad-0.25/testsuite/check.sh:78"},{"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":"ocrad-0.25/testsuite/check.sh","line":90,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:ocrad-0.25/testsuite/check.sh:90"},{"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":"ocrad-0.25/testsuite/check.sh","line":175,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:ocrad-0.25/testsuite/check.sh:175"},{"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":"ocrad-0.25/testsuite/check.sh","line":176,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:ocrad-0.25/testsuite/check.sh:176"},{"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":"ocrad-0.25/testsuite/check.sh","line":178,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:ocrad-0.25/testsuite/check.sh:178"},{"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":"ocrad-0.25/testsuite/check.sh","line":179,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:ocrad-0.25/testsuite/check.sh:179"},{"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":"ocrad-0.25/testsuite/check.sh","line":189,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:ocrad-0.25/testsuite/check.sh:189"}],"evidence":[],"data":{},"error":null},{"analyzer":"qual-testing","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:has_tests":0.0,"check:test_ratio":0.0,"check:ci_present":0.0,"check:ci_runs_tests":0.0,"check:ci_runs_lint":0.0,"check:tests_cochange":0.0,"test_lines":0.0,"source_lines":12607.0,"test_ratio":0.0,"ci_files":0.0,"cochange_share":0.0,"cochange_commits":15.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":18.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":"CHANGELOG.md","ref":"CHANGELOG.md","url":null,"weight":0.0}],"data":{},"error":null},{"analyzer":"qual-type-safety","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:strict_config":0.0,"check:low_escape_density":1.0,"escapes":0.0,"escapes_per_kloc":0.0},"findings":[],"evidence":[],"data":{},"error":null}],"flags":[]}