{"schema_version":"2","scorer_version":"0.1.0","scoring_version":"prov-5+qual-2+sec-2","generated_at":"2026-11-14T14:52:00.524479Z","repo":{"ref":{"host":"github.com","owner":"FrictionalGames","name":"AmnesiaTheDarkDescent"},"default_branch":"master","clone_url":"https://github.com/FrictionalGames/AmnesiaTheDarkDescent.git","html_url":"https://github.com/FrictionalGames/AmnesiaTheDarkDescent","description":null,"stars":3684,"forks":408,"is_fork":false,"is_archived":false,"is_private":false,"size_kb":35115,"primary_language":"C++","license_spdx":"GPL-3.0","created_at":"2020-09-15T14:14:45Z","pushed_at":"2020-10-12T19:02:16Z","security_policy_url":null,"distribution":{"owner_created_at":"2010-05-11T16:58:10Z","owner_type":"Organization","release_assets":[]}},"commit_sha":"acc95cdedd6c94db89dc924eb9afa23185df562f","profile":{"lines_by_language":{"C++":353650,"C":109143,"C#":2105,"Objective-C":480,"Shell":202},"files_by_category":{"source":1523,"other":78,"docs":18,"binary":5,"test":4,"oversized":2,"config":1},"source_lines":464868,"test_lines":712},"pillars":{"ai_provenance":{"score":0.0,"confidence":0.4,"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,"style_index":0.002},"summary":"No AI attribution or AI-consistent velocity signals detected."},"quality":{"score":51.1,"confidence":0.9,"coverage":1.0,"label":"weak","breakdown":{"complexity":63.7,"duplication":24.6,"lint":99.8,"testing":30.1,"docs":45.0,"type_safety":null,"process":null},"summary":"Code quality is weak: test-to-source ratio 0.00, no CI test run detected; 15% of function code in complex or long functions; 23% duplicated lines. Weakest area: duplication."},"security":{"score":81.8,"confidence":0.85,"coverage":1.0,"label":"adequate","breakdown":{"secrets":100.0,"sast":100.0,"dependencies":null,"ci_actions":null,"posture":0.0,"scorecard":null},"summary":"Security posture is adequate: no high-impact findings. Weakest area: posture."}},"analyzer_results":[{"analyzer":"sec-scorecard","pillar":"security","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":"no published OpenSSF Scorecard result for this repo"},{"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":1.0,"attributed_commits":0.0,"attributed_commit_share":0.0,"effective_loc":465580.0,"attributed_loc":0.0,"attributed_loc_share":0.0,"tools_detected":0.0},"findings":[],"evidence":[],"data":{"attributed_loc_by_commit":{},"tools":{},"monthly":{"2020-09":{"loc":465580,"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":0.0,"flagged_units":0.0,"pre_ai_era_bursts":0.0,"pre_ai_era_measured_loc":0.0,"pre_ai_era_burst_loc":0.0,"measured_loc":0.0,"flagged_loc":0.0,"flagged_loc_share":0.0,"max_loc_per_hour":0.0,"median_loc_per_hour":0.0,"pr_timed_units":0.0,"excluded_import_loc":465580.0},"findings":[],"evidence":[],"data":{"flagged_loc_by_commit":{},"excluded_import_commits":["acc95cdedd6c94db89dc924eb9afa23185df562f"]},"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":441186.0,"index":0.002,"count:narrated_steps":1.0,"per_kloc:narrated_steps":0.002,"files:narrated_steps":1.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":[{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: //Now we chose the pixel format attributes:","ref":"HPL2/core/sources/impl/PBuffer.cpp:46","url":"https://github.com/FrictionalGames/AmnesiaTheDarkDescent/blob/acc95cdedd6c94db89dc924eb9afa23185df562f/HPL2/core/sources/impl/PBuffer.cpp#L46","weight":0.0}],"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":464388.0,"parse_errors":34.0},"findings":[],"evidence":[],"data":{"rulesets":["c","csharp","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":1.0,"signed_commit_share":0.0,"unpinned_manifests":0.0},"findings":[],"evidence":[],"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":19964.0,"function_nloc":191322.0,"mean_ccn":2.35,"p90_ccn":5.0,"complex_functions":238.0,"long_functions":113.0,"many_param_functions":86.0,"risky_nloc_share":0.1505},"findings":[],"evidence":[{"kind":"complex-function","description":"hpl::cKeyboardSDL::SDLToKey in HPL2/core/sources/impl/KeyboardSDL.cpp: complexity 248, 251 lines","ref":"HPL2/core/sources/impl/KeyboardSDL.cpp","url":"https://github.com/FrictionalGames/AmnesiaTheDarkDescent/blob/acc95cdedd6c94db89dc924eb9afa23185df562f/HPL2/core/sources/impl/KeyboardSDL.cpp#L192","weight":1.0},{"kind":"complex-function","description":"hpl::iKeyboard::StringToKey in HPL2/core/sources/input/Keyboard.cpp: complexity 231, 234 lines","ref":"HPL2/core/sources/input/Keyboard.cpp","url":"https://github.com/FrictionalGames/AmnesiaTheDarkDescent/blob/acc95cdedd6c94db89dc924eb9afa23185df562f/HPL2/core/sources/input/Keyboard.cpp#L313","weight":1.0},{"kind":"complex-function","description":"hpl::iKeyboard::KeyToString in HPL2/core/sources/input/Keyboard.cpp: complexity 231, 237 lines","ref":"HPL2/core/sources/input/Keyboard.cpp","url":"https://github.com/FrictionalGames/AmnesiaTheDarkDescent/blob/acc95cdedd6c94db89dc924eb9afa23185df562f/HPL2/core/sources/input/Keyboard.cpp#L57","weight":1.0},{"kind":"complex-function","description":"cLuxEnemy_ManPig::StateEventImplement in amnesia/src/game/LuxEnemy_ManPig.cpp: complexity 137, 843 lines","ref":"amnesia/src/game/LuxEnemy_ManPig.cpp","url":"https://github.com/FrictionalGames/AmnesiaTheDarkDescent/blob/acc95cdedd6c94db89dc924eb9afa23185df562f/amnesia/src/game/LuxEnemy_ManPig.cpp#L282","weight":1.0},{"kind":"complex-function","description":"hpl::cMeshLoaderFBX::LoadMeshData in HPL2/core/sources/impl/MeshLoaderFBX.cpp: complexity 110, 372 lines","ref":"HPL2/core/sources/impl/MeshLoaderFBX.cpp","url":"https://github.com/FrictionalGames/AmnesiaTheDarkDescent/blob/acc95cdedd6c94db89dc924eb9afa23185df562f/HPL2/core/sources/impl/MeshLoaderFBX.cpp#L730","weight":1.0},{"kind":"complex-function","description":"hpl::cMeshLoaderCollada::LoadMesh in HPL2/core/sources/impl/MeshLoaderCollada.cpp: complexity 84, 374 lines","ref":"HPL2/core/sources/impl/MeshLoaderCollada.cpp","url":"https://github.com/FrictionalGames/AmnesiaTheDarkDescent/blob/acc95cdedd6c94db89dc924eb9afa23185df562f/HPL2/core/sources/impl/MeshLoaderCollada.cpp#L179","weight":1.0},{"kind":"complex-function","description":"hpl::cWidgetTextBox::OnKeyPress in HPL2/core/sources/gui/WidgetTextBox.cpp: complexity 75, 268 lines","ref":"HPL2/core/sources/gui/WidgetTextBox.cpp","url":"https://github.com/FrictionalGames/AmnesiaTheDarkDescent/blob/acc95cdedd6c94db89dc924eb9afa23185df562f/HPL2/core/sources/gui/WidgetTextBox.cpp#L798","weight":1.0},{"kind":"complex-function","description":"hpl::cMeshEntity::UpdateLogic in HPL2/core/sources/scene/MeshEntity.cpp: complexity 71, 222 lines","ref":"HPL2/core/sources/scene/MeshEntity.cpp","url":"https://github.com/FrictionalGames/AmnesiaTheDarkDescent/blob/acc95cdedd6c94db89dc924eb9afa23185df562f/HPL2/core/sources/scene/MeshEntity.cpp#L363","weight":1.0},{"kind":"complex-function","description":"hpl::cEntityLoader_Object::Load in HPL2/core/sources/resources/EntityLoader_Object.cpp: complexity 69, 341 lines","ref":"HPL2/core/sources/resources/EntityLoader_Object.cpp","url":"https://github.com/FrictionalGames/AmnesiaTheDarkDescent/blob/acc95cdedd6c94db89dc924eb9afa23185df562f/HPL2/core/sources/resources/EntityLoader_Object.cpp#L297","weight":1.0},{"kind":"complex-function","description":"cEdEditPaneParticleEmitter::WindowSpecificInputCallback in HPL2/tools/NewEditors/MaterialEditor/EdEditPaneParticleEmitter.cpp: complexity 67, 180 lines","ref":"HPL2/tools/NewEditors/MaterialEditor/EdEditPaneParticleEmitter.cpp","url":"https://github.com/FrictionalGames/AmnesiaTheDarkDescent/blob/acc95cdedd6c94db89dc924eb9afa23185df562f/HPL2/tools/NewEditors/MaterialEditor/EdEditPaneParticleEmitter.cpp#L557","weight":1.0}],"data":{},"error":null},{"analyzer":"qual-duplication","pillar":"quality","status":"ok","tool_version":"repotrust-dup-w6","metrics":{"compared_lines":284050.0,"duplicated_lines":66311.0,"duplicated_share":0.2334,"files":1523.0},"findings":[],"evidence":[{"kind":"duplicate-code","description":"6+ duplicated lines: HPL2/core/include/BuildID_HPL2_0.h:2 and HPL2/core/include/ai/AI.h:2","ref":"HPL2/core/include/BuildID_HPL2_0.h","url":"https://github.com/FrictionalGames/AmnesiaTheDarkDescent/blob/acc95cdedd6c94db89dc924eb9afa23185df562f/HPL2/core/include/BuildID_HPL2_0.h#L2","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: HPL2/core/include/BuildID_HPL2_0.h:12 and HPL2/core/sources/BuildID_HPL2_0_Win32.cpp:12","ref":"HPL2/core/include/BuildID_HPL2_0.h","url":"https://github.com/FrictionalGames/AmnesiaTheDarkDescent/blob/acc95cdedd6c94db89dc924eb9afa23185df562f/HPL2/core/include/BuildID_HPL2_0.h#L12","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: HPL2/core/include/engine/Engine.h:37 and HPL2/core/include/engine/LowLevelEngineSetup.h:29","ref":"HPL2/core/include/engine/Engine.h","url":"https://github.com/FrictionalGames/AmnesiaTheDarkDescent/blob/acc95cdedd6c94db89dc924eb9afa23185df562f/HPL2/core/include/engine/Engine.h#L37","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: HPL2/core/include/engine/ScriptFuncs.h:61 and HPL2/core/sources/engine/ScriptFuncs.cpp:240","ref":"HPL2/core/include/engine/ScriptFuncs.h","url":"https://github.com/FrictionalGames/AmnesiaTheDarkDescent/blob/acc95cdedd6c94db89dc924eb9afa23185df562f/HPL2/core/include/engine/ScriptFuncs.h#L61","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: HPL2/core/include/generate/GenerateTypes.h:30 and HPL2/core/include/system/SystemTypes.h:169","ref":"HPL2/core/include/generate/GenerateTypes.h","url":"https://github.com/FrictionalGames/AmnesiaTheDarkDescent/blob/acc95cdedd6c94db89dc924eb9afa23185df562f/HPL2/core/include/generate/GenerateTypes.h#L30","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: HPL2/core/include/graphics/DecalCreator.h:28 and HPL2/core/include/graphics/MeshCreator.h:27","ref":"HPL2/core/include/graphics/DecalCreator.h","url":"https://github.com/FrictionalGames/AmnesiaTheDarkDescent/blob/acc95cdedd6c94db89dc924eb9afa23185df562f/HPL2/core/include/graphics/DecalCreator.h#L28","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: HPL2/core/include/graphics/Material.h:28 and HPL2/core/include/graphics/MaterialType.h:28","ref":"HPL2/core/include/graphics/Material.h","url":"https://github.com/FrictionalGames/AmnesiaTheDarkDescent/blob/acc95cdedd6c94db89dc924eb9afa23185df562f/HPL2/core/include/graphics/Material.h#L28","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: HPL2/core/include/graphics/MaterialType.h:30 and HPL2/core/include/graphics/ProgramComboManager.h:29","ref":"HPL2/core/include/graphics/MaterialType.h","url":"https://github.com/FrictionalGames/AmnesiaTheDarkDescent/blob/acc95cdedd6c94db89dc924eb9afa23185df562f/HPL2/core/include/graphics/MaterialType.h#L30","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: HPL2/core/include/graphics/MaterialType_BasicTranslucent.h:60 and HPL2/core/include/graphics/MaterialType_Decal.h:47","ref":"HPL2/core/include/graphics/MaterialType_BasicTranslucent.h","url":"https://github.com/FrictionalGames/AmnesiaTheDarkDescent/blob/acc95cdedd6c94db89dc924eb9afa23185df562f/HPL2/core/include/graphics/MaterialType_BasicTranslucent.h#L60","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: HPL2/core/include/graphics/MaterialType_Decal.h:56 and HPL2/core/include/graphics/MaterialType_Water.h:66","ref":"HPL2/core/include/graphics/MaterialType_Decal.h","url":"https://github.com/FrictionalGames/AmnesiaTheDarkDescent/blob/acc95cdedd6c94db89dc924eb9afa23185df562f/HPL2/core/include/graphics/MaterialType_Decal.h#L56","weight":0.3}],"data":{},"error":null},{"analyzer":"qual-lint","pillar":"quality","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":16.0,"weighted_findings":4.0,"scanned_lines":464388.0,"category:correctness":16.0},"findings":[{"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":"amnesia/src/BuildScripts/build-linux.sh","line":15,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:amnesia/src/BuildScripts/build-linux.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":"amnesia/src/BuildScripts/build-linux.sh","line":39,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:amnesia/src/BuildScripts/build-linux.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":"amnesia/src/BuildScripts/build-linux.sh","line":57,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:amnesia/src/BuildScripts/build-linux.sh:57"},{"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":"amnesia/src/BuildScripts/build-linux.sh","line":61,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:amnesia/src/BuildScripts/build-linux.sh:61"},{"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":"amnesia/src/BuildScripts/mock-prep.sh","line":33,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:amnesia/src/BuildScripts/mock-prep.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":"amnesia/src/BuildScripts/mock-prep.sh","line":37,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:amnesia/src/BuildScripts/mock-prep.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":"amnesia/src/BuildScripts/mock-shell.sh","line":24,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:amnesia/src/BuildScripts/mock-shell.sh:24"},{"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":"amnesia/src/BuildScripts/mock-sync.sh","line":45,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:amnesia/src/BuildScripts/mock-sync.sh:45"},{"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":"amnesia/src/BuildScripts/mock-sync.sh","line":53,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:amnesia/src/BuildScripts/mock-sync.sh:53"},{"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":"amnesia/src/BuildScripts/mock-sync.sh","line":54,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:amnesia/src/BuildScripts/mock-sync.sh:54"},{"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":"amnesia/src/BuildScripts/mock-sync.sh","line":57,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:amnesia/src/BuildScripts/mock-sync.sh:57"},{"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":"amnesia/src/BuildScripts/mock-sync.sh","line":58,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:amnesia/src/BuildScripts/mock-sync.sh:58"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-command-substitution-in-command","severity":"low","message":"The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or other separators specified by the IFS variable. You should surround it with double quotes to avoid splitting the result.","path":"amnesia/src/BuildScripts/mock-sync.sh","line":60,"fingerprint":"bash.lang.correctness.unquoted-command-substitution-in-command:amnesia/src/BuildScripts/mock-sync.sh: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":"amnesia/src/BuildScripts/mock-sync.sh","line":60,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:amnesia/src/BuildScripts/mock-sync.sh: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":"amnesia/src/BuildScripts/mock-sync.sh","line":61,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:amnesia/src/BuildScripts/mock-sync.sh:61"},{"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":"amnesia/src/BuildScripts/mock-sync.sh","line":68,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:amnesia/src/BuildScripts/mock-sync.sh:68"}],"evidence":[],"data":{},"error":null},{"analyzer":"qual-testing","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:has_tests":1.0,"check:test_ratio":0.0031,"check:ci_present":0.0,"check:ci_runs_tests":0.0,"check:ci_runs_lint":0.0,"check:tests_cochange":1.0,"test_lines":712.0,"source_lines":464868.0,"test_ratio":0.0015,"ci_files":0.0,"cochange_share":1.0,"cochange_commits":1.0},"findings":[],"evidence":[],"data":{"test_commands":[],"lint_commands":[]},"error":null},{"analyzer":"qual-docs","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:readme":0.5,"check:license":1.0,"check:contributing":0.0,"check:changelog":0.0,"readme_lines":11.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}],"data":{},"error":null},{"analyzer":"qual-type-safety","pillar":"quality","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":null}],"flags":[]}