{"schema_version":"2","scorer_version":"0.1.0","scoring_version":"prov-5+qual-2+sec-2","generated_at":"2026-11-14T15:21:15.068736Z","repo":{"ref":{"host":"github.com","owner":"DapperLib","name":"Dapper"},"default_branch":"main","clone_url":"https://github.com/DapperLib/Dapper.git","html_url":"https://github.com/DapperLib/Dapper","description":"Dapper - a simple object mapper for .Net","stars":18417,"forks":3653,"is_fork":false,"is_archived":false,"is_private":false,"size_kb":49967,"primary_language":"C#","license_spdx":"NOASSERTION","created_at":"2011-04-14T08:42:59Z","pushed_at":"2026-09-23T04:33:15Z","security_policy_url":null,"distribution":{"owner_created_at":"2021-04-23T13:44:29Z","owner_type":"Organization","release_assets":[]}},"commit_sha":"eb47546a408bbf6c178bda4f04dc205bc51ffbfe","profile":{"lines_by_language":{"C#":26790,"PowerShell":43},"files_by_category":{"source":103,"test":55,"other":28,"docs":23,"config":15,"binary":6},"source_lines":15808,"test_lines":11025},"pillars":{"ai_provenance":{"score":0.0,"confidence":0.65,"coverage":1.0,"label":"possible","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.063},"summary":"Weak signals consistent with AI-assisted development. 1 commit(s) carry explicit AI attribution, too few to characterize the codebase."},"quality":{"score":70.2,"confidence":0.9,"coverage":1.0,"label":"adequate","breakdown":{"complexity":50.8,"duplication":36.6,"lint":100.0,"testing":90.0,"docs":65.0,"type_safety":null,"process":null},"summary":"Code quality is adequate: test-to-source ratio 0.70, CI runs tests; 23% of function code in complex or long functions; 17% duplicated lines. Weakest area: duplication."},"security":{"score":57.4,"confidence":0.85,"coverage":1.0,"label":"weak","breakdown":{"secrets":100.0,"sast":64.4,"dependencies":null,"ci_actions":2.1,"posture":20.0,"scorecard":null},"summary":"Security posture is weak: 11 high-severity SAST findings; 19 high-severity workflow issues. Weakest area: ci actions."}},"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":1315.0,"attributed_commits":1.0,"attributed_commit_share":0.0007604562737642585,"effective_loc":83873.0,"attributed_loc":0.0,"attributed_loc_share":0.0,"tools_detected":1.0},"findings":[],"evidence":[{"kind":"attribution-summary","description":"Claude Code: 1 attributed commits, 0 lines added","ref":null,"url":null,"weight":1.0},{"kind":"attributed-commit","description":"Claude Code: message 'claude.ai/code'","ref":"c0b2097129a2dd0336a8569fdcc86b1fbd16c1ff","url":"https://github.com/DapperLib/Dapper/commit/c0b2097129a2dd0336a8569fdcc86b1fbd16c1ff","weight":0.9}],"data":{"attributed_loc_by_commit":{"c0b2097129a2dd0336a8569fdcc86b1fbd16c1ff":0},"tools":{"claude-code":{"name":"Claude Code","commits":1,"loc":0,"first_seen":1787060563,"last_seen":1787060563}},"monthly":{"2011-04":{"loc":11129,"attributed_loc":0},"2011-05":{"loc":3574,"attributed_loc":0},"2011-06":{"loc":2438,"attributed_loc":0},"2011-07":{"loc":1402,"attributed_loc":0},"2011-08":{"loc":46,"attributed_loc":0},"2011-09":{"loc":1234,"attributed_loc":0},"2011-10":{"loc":663,"attributed_loc":0},"2011-11":{"loc":171,"attributed_loc":0},"2011-12":{"loc":19,"attributed_loc":0},"2012-01":{"loc":888,"attributed_loc":0},"2012-02":{"loc":85,"attributed_loc":0},"2012-03":{"loc":698,"attributed_loc":0},"2012-04":{"loc":187,"attributed_loc":0},"2012-05":{"loc":109,"attributed_loc":0},"2012-06":{"loc":318,"attributed_loc":0},"2012-07":{"loc":71,"attributed_loc":0},"2012-08":{"loc":1009,"attributed_loc":0},"2012-09":{"loc":198,"attributed_loc":0},"2012-10":{"loc":1500,"attributed_loc":0},"2012-11":{"loc":74,"attributed_loc":0},"2012-12":{"loc":72,"attributed_loc":0},"2013-02":{"loc":6,"attributed_loc":0},"2013-04":{"loc":21,"attributed_loc":0},"2013-05":{"loc":736,"attributed_loc":0},"2013-07":{"loc":9,"attributed_loc":0},"2013-08":{"loc":230,"attributed_loc":0},"2013-09":{"loc":291,"attributed_loc":0},"2013-10":{"loc":20,"attributed_loc":0},"2013-11":{"loc":115,"attributed_loc":0},"2013-12":{"loc":50,"attributed_loc":0},"2014-01":{"loc":17,"attributed_loc":0},"2014-02":{"loc":21,"attributed_loc":0},"2014-05":{"loc":2529,"attributed_loc":0},"2014-06":{"loc":515,"attributed_loc":0},"2014-07":{"loc":1661,"attributed_loc":0},"2014-08":{"loc":2968,"attributed_loc":0},"2014-09":{"loc":1471,"attributed_loc":0},"2014-10":{"loc":962,"attributed_loc":0},"2014-11":{"loc":63,"attributed_loc":0},"2014-12":{"loc":66,"attributed_loc":0},"2015-01":{"loc":7,"attributed_loc":0},"2015-03":{"loc":534,"attributed_loc":0},"2015-04":{"loc":763,"attributed_loc":0},"2015-05":{"loc":3257,"attributed_loc":0},"2015-06":{"loc":356,"attributed_loc":0},"2015-07":{"loc":0,"attributed_loc":0},"2015-08":{"loc":10,"attributed_loc":0},"2015-09":{"loc":20,"attributed_loc":0},"2015-10":{"loc":900,"attributed_loc":0},"2015-11":{"loc":10961,"attributed_loc":0},"2015-12":{"loc":714,"attributed_loc":0},"2016-01":{"loc":375,"attributed_loc":0},"2016-02":{"loc":1259,"attributed_loc":0},"2016-03":{"loc":141,"attributed_loc":0},"2016-04":{"loc":1167,"attributed_loc":0},"2016-05":{"loc":165,"attributed_loc":0},"2016-06":{"loc":282,"attributed_loc":0},"2016-07":{"loc":141,"attributed_loc":0},"2016-08":{"loc":0,"attributed_loc":0},"2016-09":{"loc":151,"attributed_loc":0},"2016-10":{"loc":8,"attributed_loc":0},"2016-11":{"loc":243,"attributed_loc":0},"2016-12":{"loc":33,"attributed_loc":0},"2017-01":{"loc":0,"attributed_loc":0},"2017-02":{"loc":50,"attributed_loc":0},"2017-03":{"loc":5174,"attributed_loc":0},"2017-04":{"loc":104,"attributed_loc":0},"2017-05":{"loc":4142,"attributed_loc":0},"2017-06":{"loc":241,"attributed_loc":0},"2017-08":{"loc":3848,"attributed_loc":0},"2017-09":{"loc":32,"attributed_loc":0},"2017-10":{"loc":128,"attributed_loc":0},"2017-11":{"loc":93,"attributed_loc":0},"2018-02":{"loc":139,"attributed_loc":0},"2018-03":{"loc":208,"attributed_loc":0},"2018-04":{"loc":184,"attributed_loc":0},"2018-05":{"loc":2,"attributed_loc":0},"2018-06":{"loc":8,"attributed_loc":0},"2018-07":{"loc":65,"attributed_loc":0},"2018-08":{"loc":30,"attributed_loc":0},"2018-09":{"loc":415,"attributed_loc":0},"2018-11":{"loc":114,"attributed_loc":0},"2019-01":{"loc":0,"attributed_loc":0},"2019-02":{"loc":2,"attributed_loc":0},"2019-03":{"loc":402,"attributed_loc":0},"2019-04":{"loc":0,"attributed_loc":0},"2019-05":{"loc":4,"attributed_loc":0},"2019-06":{"loc":1133,"attributed_loc":0},"2019-08":{"loc":1239,"attributed_loc":0},"2019-09":{"loc":293,"attributed_loc":0},"2019-10":{"loc":44,"attributed_loc":0},"2019-11":{"loc":2,"attributed_loc":0},"2019-12":{"loc":46,"attributed_loc":0},"2020-01":{"loc":65,"attributed_loc":0},"2020-03":{"loc":0,"attributed_loc":0},"2020-04":{"loc":3,"attributed_loc":0},"2020-05":{"loc":478,"attributed_loc":0},"2020-06":{"loc":0,"attributed_loc":0},"2020-07":{"loc":1,"attributed_loc":0},"2020-08":{"loc":13,"attributed_loc":0},"2020-10":{"loc":1,"attributed_loc":0},"2020-11":{"loc":397,"attributed_loc":0},"2020-12":{"loc":42,"attributed_loc":0},"2021-01":{"loc":21,"attributed_loc":0},"2021-02":{"loc":31,"attributed_loc":0},"2021-04":{"loc":49,"attributed_loc":0},"2021-05":{"loc":78,"attributed_loc":0},"2021-07":{"loc":112,"attributed_loc":0},"2021-10":{"loc":32,"attributed_loc":0},"2021-11":{"loc":75,"attributed_loc":0},"2022-01":{"loc":1,"attributed_loc":0},"2022-03":{"loc":0,"attributed_loc":0},"2022-08":{"loc":6,"attributed_loc":0},"2023-06":{"loc":1085,"attributed_loc":0},"2023-07":{"loc":0,"attributed_loc":0},"2023-08":{"loc":788,"attributed_loc":0},"2023-09":{"loc":1487,"attributed_loc":0},"2023-10":{"loc":366,"attributed_loc":0},"2023-11":{"loc":146,"attributed_loc":0},"2023-12":{"loc":37,"attributed_loc":0},"2024-01":{"loc":64,"attributed_loc":0},"2024-02":{"loc":24,"attributed_loc":0},"2024-03":{"loc":119,"attributed_loc":0},"2024-04":{"loc":80,"attributed_loc":0},"2024-07":{"loc":158,"attributed_loc":0},"2024-10":{"loc":289,"attributed_loc":0},"2024-11":{"loc":0,"attributed_loc":0},"2025-01":{"loc":0,"attributed_loc":0},"2025-02":{"loc":54,"attributed_loc":0},"2025-04":{"loc":31,"attributed_loc":0},"2025-06":{"loc":0,"attributed_loc":0},"2026-03":{"loc":0,"attributed_loc":0},"2026-04":{"loc":71,"attributed_loc":0},"2026-05":{"loc":165,"attributed_loc":0},"2026-08":{"loc":218,"attributed_loc":0},"2026-09":{"loc":21,"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-5","metrics":{"work_units":659.0,"flagged_units":0.0,"pre_ai_era_bursts":6.0,"pre_ai_era_measured_loc":73272.0,"pre_ai_era_burst_loc":16571.0,"measured_loc":78701.0,"flagged_loc":0.0,"flagged_loc_share":0.0,"max_loc_per_hour":2038.095238095238,"median_loc_per_hour":50.125,"pr_timed_units":133.0,"excluded_import_loc":5172.0},"findings":[],"evidence":[],"data":{"flagged_loc_by_commit":{},"excluded_import_commits":["ae7a29a9f1ef7b13a67f05aaa59f3e9d9e653e7f"]},"error":null},{"analyzer":"ai-release-velocity","pillar":"ai_provenance","status":"ok","tool_version":"prov-5","metrics":{"releases":82.0,"flagged_releases":0.0,"max_loc_per_day":2606.6},"findings":[],"evidence":[],"data":{"releases":[{"from":"1.5","to":"1.6","loc":198,"days":7.75,"loc_per_day":25.6,"flagged":false},{"from":"1.6","to":"1.8","loc":11181,"days":176.93,"loc_per_day":63.2,"flagged":false},{"from":"1.8","to":"1.9","loc":935,"days":152.24,"loc_per_day":6.1,"flagged":false},{"from":"1.9","to":"1.10","loc":226,"days":15.38,"loc_per_day":14.7,"flagged":false},{"from":"1.10","to":"1.11","loc":1539,"days":68.52,"loc_per_day":22.5,"flagged":false},{"from":"1.11","to":"1.12","loc":127,"days":14.94,"loc_per_day":8.5,"flagged":false},{"from":"1.12","to":"1.12.1","loc":3,"days":0.04,"loc_per_day":72.0,"flagged":false},{"from":"1.12.1","to":"1.13","loc":2342,"days":247.22,"loc_per_day":9.5,"flagged":false},{"from":"1.13","to":"1.20","loc":2725,"days":348.98,"loc_per_day":7.8,"flagged":false},{"from":"1.20","to":"1.21","loc":119,"days":0.08,"loc_per_day":1447.9,"flagged":false},{"from":"1.21","to":"1.22","loc":116,"days":0.04,"loc_per_day":2606.6,"flagged":false},{"from":"1.22","to":"1.23","loc":87,"days":3.97,"loc_per_day":21.9,"flagged":false},{"from":"1.23","to":"1.24","loc":112,"days":2.03,"loc_per_day":55.3,"flagged":false},{"from":"1.24","to":"1.25","loc":93,"days":0.08,"loc_per_day":1178.7,"flagged":false},{"from":"1.25","to":"1.26","loc":1608,"days":49.99,"loc_per_day":32.2,"flagged":false},{"from":"1.26","to":"1.27","loc":305,"days":11.64,"loc_per_day":26.2,"flagged":false},{"from":"1.27","to":"1.28","loc":851,"days":22.35,"loc_per_day":38.1,"flagged":false},{"from":"1.28","to":"1.29","loc":45,"days":0.19,"loc_per_day":235.0,"flagged":false},{"from":"1.29","to":"1.30","loc":271,"days":7.56,"loc_per_day":35.9,"flagged":false},{"from":"1.30","to":"1.31","loc":174,"days":12.38,"loc_per_day":14.0,"flagged":false},{"from":"1.31","to":"1.32","loc":173,"days":1.55,"loc_per_day":111.9,"flagged":false},{"from":"1.32","to":"1.33","loc":80,"days":0.04,"loc_per_day":1920.0,"flagged":false},{"from":"1.33","to":"1.34","loc":34,"days":0.04,"loc_per_day":816.0,"flagged":false},{"from":"1.34","to":"1.35","loc":3054,"days":31.95,"loc_per_day":95.6,"flagged":false},{"from":"1.35","to":"1.36","loc":720,"days":15.28,"loc_per_day":47.1,"flagged":false},{"from":"1.36","to":"1.37","loc":75,"days":8.07,"loc_per_day":9.3,"flagged":false},{"from":"1.37","to":"1.38","loc":181,"days":7.94,"loc_per_day":22.8,"flagged":false},{"from":"1.38","to":"1.39","loc":390,"days":138.94,"loc_per_day":2.8,"flagged":false},{"from":"1.39","to":"1.40","loc":167,"days":15.79,"loc_per_day":10.6,"flagged":false},{"from":"1.40","to":"1.41-alpha","loc":173,"days":26.55,"loc_per_day":6.5,"flagged":false},{"from":"1.41-alpha","to":"1.41-beta","loc":439,"days":1.95,"loc_per_day":225.7,"flagged":false},{"from":"1.41-beta","to":"1.41-beta4","loc":2809,"days":3.7,"loc_per_day":758.9,"flagged":false},{"from":"1.41-beta4","to":"1.41-beta5","loc":19,"days":0.95,"loc_per_day":20.0,"flagged":false},{"from":"1.41-beta5","to":"1.42","loc":11,"days":4.8,"loc_per_day":2.3,"flagged":false},{"from":"1.42","to":"1.50-beta1","loc":5737,"days":176.58,"loc_per_day":32.5,"flagged":false},{"from":"1.50-beta1","to":"1.50-beta2","loc":3108,"days":15.53,"loc_per_day":200.1,"flagged":false},{"from":"1.50-beta2","to":"1.50-beta3","loc":0,"days":0.14,"loc_per_day":0.0,"flagged":false},{"from":"1.50-beta3","to":"1.50.0-beta4","loc":3819,"days":6.95,"loc_per_day":549.1,"flagged":false},{"from":"1.50.0-beta4","to":"1.50-beta5","loc":925,"days":12.07,"loc_per_day":76.6,"flagged":false},{"from":"1.50-beta5","to":"1.50-beta6","loc":32,"days":10.86,"loc_per_day":2.9,"flagged":false},{"from":"1.50-beta6","to":"1.50-beta7","loc":504,"days":17.23,"loc_per_day":29.3,"flagged":false},{"from":"1.50-beta7","to":"1.50-beta8","loc":913,"days":42.77,"loc_per_day":21.3,"flagged":false},{"from":"1.50-beta8","to":"1.50-beta9","loc":532,"days":43.93,"loc_per_day":12.1,"flagged":false},{"from":"1.50-beta9","to":"1.50-rc2","loc":1169,"days":48.29,"loc_per_day":24.2,"flagged":false},{"from":"1.50-rc2","to":"1.50-rc2.1","loc":118,"days":4.87,"loc_per_day":24.2,"flagged":false},{"from":"1.50-rc2.1","to":"1.50-rc2a","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"1.50-rc2a","to":"1.50-rc2b","loc":38,"days":2.92,"loc_per_day":13.0,"flagged":false},{"from":"1.50-rc2b","to":"1.50-rc3","loc":282,"days":32.46,"loc_per_day":8.7,"flagged":false},{"from":"1.50-rc3","to":"1.50","loc":0,"days":0.52,"loc_per_day":0.0,"flagged":false},{"from":"1.50","to":"1.50.1","loc":16,"days":9.21,"loc_per_day":1.7,"flagged":false},{"from":"1.50.1","to":"1.50.2","loc":76,"days":13.94,"loc_per_day":5.5,"flagged":false},{"from":"1.50.2","to":"1.50.2(EF)","loc":16,"days":1.85,"loc_per_day":8.7,"flagged":false},{"from":"1.50.2(EF)","to":"1.50.4","loc":9101,"days":489.65,"loc_per_day":18.6,"flagged":false},{"from":"1.50.4","to":"1.50.5","loc":459,"days":171.7,"loc_per_day":2.7,"flagged":false},{"from":"1.50.5","to":"1.50.7","loc":637,"days":270.59,"loc_per_day":2.4,"flagged":false},{"from":"1.50.7","to":"1.60.1","loc":0,"days":14.26,"loc_per_day":0.0,"flagged":false},{"from":"1.60.1","to":"2.0-preview1","loc":2239,"days":183.96,"loc_per_day":12.2,"flagged":false},{"from":"2.0-preview1","to":"2.0.4","loc":0,"days":0.97,"loc_per_day":0.0,"flagged":false},{"from":"2.0.4","to":"2.0.30","loc":828,"days":28.85,"loc_per_day":28.7,"flagged":false},{"from":"2.0.30","to":"2.0.35","loc":91,"days":191.12,"loc_per_day":0.5,"flagged":false},{"from":"2.0.35","to":"2.0.78","loc":881,"days":225.88,"loc_per_day":3.9,"flagged":false},{"from":"2.0.78","to":"2.0.90","loc":77,"days":163.06,"loc_per_day":0.5,"flagged":false},{"from":"2.0.90","to":"2.0.123","loc":519,"days":188.12,"loc_per_day":2.8,"flagged":false},{"from":"2.0.123","to":"2.0.138","loc":839,"days":583.05,"loc_per_day":1.4,"flagged":false},{"from":"2.0.138","to":"2.0.143","loc":257,"days":10.88,"loc_per_day":23.6,"flagged":false},{"from":"2.0.143","to":"2.0.151","loc":166,"days":58.28,"loc_per_day":2.8,"flagged":false},{"from":"2.0.151","to":"2.1.1","loc":1944,"days":25.82,"loc_per_day":75.3,"flagged":false},{"from":"2.1.1","to":"2.1.4","loc":163,"days":1.24,"loc_per_day":131.5,"flagged":false},{"from":"2.1.4","to":"2.1.11","loc":250,"days":29.39,"loc_per_day":8.5,"flagged":false},{"from":"2.1.11","to":"2.1.15","loc":19,"days":6.22,"loc_per_day":3.1,"flagged":false},{"from":"2.1.15","to":"2.1.21","loc":188,"days":22.89,"loc_per_day":8.2,"flagged":false},{"from":"2.1.21","to":"2.1.24","loc":57,"days":12.01,"loc_per_day":4.7,"flagged":false},{"from":"2.1.24","to":"2.1.28","loc":60,"days":40.27,"loc_per_day":1.5,"flagged":false},{"from":"2.1.28","to":"2.1.35","loc":67,"days":63.98,"loc_per_day":1.0,"flagged":false},{"from":"2.1.35","to":"2.1.37","loc":117,"days":0.89,"loc_per_day":131.6,"flagged":false},{"from":"2.1.37","to":"2.1.42","loc":32,"days":35.91,"loc_per_day":0.9,"flagged":false},{"from":"2.1.42","to":"2.1.44","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"2.1.44","to":"2.1.66","loc":549,"days":300.04,"loc_per_day":1.8,"flagged":false},{"from":"2.1.66","to":"2.1.72","loc":31,"days":392.79,"loc_per_day":0.1,"flagged":false},{"from":"2.1.72","to":"2.1.79","loc":236,"days":71.55,"loc_per_day":3.3,"flagged":false},{"from":"2.1.79","to":"2.1.86","loc":218,"days":118.66,"loc_per_day":1.8,"flagged":false},{"from":"2.1.86","to":"2.1.89","loc":21,"days":10.67,"loc_per_day":2.0,"flagged":false}]},"error":null},{"analyzer":"ai-stylometry","pillar":"ai_provenance","status":"ok","tool_version":null,"metrics":{"lines_scanned":15808.0,"index":0.063,"count:narrated_steps":1.0,"per_kloc:narrated_steps":0.063,"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: // Finally, prep the parameter and attach the callback to it","ref":"Dapper/DynamicParameters.cs:468","url":"https://github.com/DapperLib/Dapper/blob/eb47546a408bbf6c178bda4f04dc205bc51ffbfe/Dapper/DynamicParameters.cs#L468","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":11.0,"findings_high":11.0,"findings_medium":0.0,"findings_low":0.0,"weighted_findings":19.8,"scanned_lines":15765.0,"parse_errors":1.0},"findings":[{"rule_id":"opengrep/csharp.lang.security.sqli.csharp-sqli","severity":"high","message":"Detected a formatted string in a SQL statement. This could lead to SQL injection if variables in the SQL statement are not properly sanitized. Use a prepared statements instead. You can obtain a PreparedStatement using 'SqlCommand' and 'SqlParameter'. [confidence medium]","path":"Dapper/CommandDefinition.cs","line":128,"fingerprint":"csharp.lang.security.sqli.csharp-sqli:Dapper/CommandDefinition.cs:128"},{"rule_id":"opengrep/csharp.lang.security.sqli.csharp-sqli","severity":"high","message":"Detected a formatted string in a SQL statement. This could lead to SQL injection if variables in the SQL statement are not properly sanitized. Use a prepared statements instead. You can obtain a PreparedStatement using 'SqlCommand' and 'SqlParameter'. [confidence medium]","path":"Dapper/SqlMapper.cs","line":2264,"fingerprint":"csharp.lang.security.sqli.csharp-sqli:Dapper/SqlMapper.cs:2264"},{"rule_id":"opengrep/csharp.lang.security.sqli.csharp-sqli","severity":"high","message":"Detected a formatted string in a SQL statement. This could lead to SQL injection if variables in the SQL statement are not properly sanitized. Use a prepared statements instead. You can obtain a PreparedStatement using 'SqlCommand' and 'SqlParameter'. [confidence medium]","path":"Dapper/SqlMapper.cs","line":2284,"fingerprint":"csharp.lang.security.sqli.csharp-sqli:Dapper/SqlMapper.cs:2284"},{"rule_id":"opengrep/csharp.lang.security.sqli.csharp-sqli","severity":"high","message":"Detected a formatted string in a SQL statement. This could lead to SQL injection if variables in the SQL statement are not properly sanitized. Use a prepared statements instead. You can obtain a PreparedStatement using 'SqlCommand' and 'SqlParameter'. [confidence medium]","path":"Dapper/SqlMapper.cs","line":2357,"fingerprint":"csharp.lang.security.sqli.csharp-sqli:Dapper/SqlMapper.cs:2357"},{"rule_id":"opengrep/csharp.lang.security.sqli.csharp-sqli","severity":"high","message":"Detected a formatted string in a SQL statement. This could lead to SQL injection if variables in the SQL statement are not properly sanitized. Use a prepared statements instead. You can obtain a PreparedStatement using 'SqlCommand' and 'SqlParameter'. [confidence medium]","path":"Dapper/SqlMapper.cs","line":2523,"fingerprint":"csharp.lang.security.sqli.csharp-sqli:Dapper/SqlMapper.cs:2523"},{"rule_id":"opengrep/csharp.lang.security.sqli.csharp-sqli","severity":"high","message":"Detected a formatted string in a SQL statement. This could lead to SQL injection if variables in the SQL statement are not properly sanitized. Use a prepared statements instead. You can obtain a PreparedStatement using 'SqlCommand' and 'SqlParameter'. [confidence medium]","path":"benchmarks/Dapper.Tests.Performance/Massive/Massive.cs","line":189,"fingerprint":"csharp.lang.security.sqli.csharp-sqli:benchmarks/Dapper.Tests.Performance/Massive/Massive.cs:189"},{"rule_id":"opengrep/csharp.lang.security.sqli.csharp-sqli","severity":"high","message":"Detected a formatted string in a SQL statement. This could lead to SQL injection if variables in the SQL statement are not properly sanitized. Use a prepared statements instead. You can obtain a PreparedStatement using 'SqlCommand' and 'SqlParameter'. [confidence medium]","path":"benchmarks/Dapper.Tests.Performance/Massive/Massive.cs","line":307,"fingerprint":"csharp.lang.security.sqli.csharp-sqli:benchmarks/Dapper.Tests.Performance/Massive/Massive.cs:307"},{"rule_id":"opengrep/csharp.lang.security.sqli.csharp-sqli","severity":"high","message":"Detected a formatted string in a SQL statement. This could lead to SQL injection if variables in the SQL statement are not properly sanitized. Use a prepared statements instead. You can obtain a PreparedStatement using 'SqlCommand' and 'SqlParameter'. [confidence medium]","path":"benchmarks/Dapper.Tests.Performance/Massive/Massive.cs","line":343,"fingerprint":"csharp.lang.security.sqli.csharp-sqli:benchmarks/Dapper.Tests.Performance/Massive/Massive.cs:343"},{"rule_id":"opengrep/csharp.lang.security.sqli.csharp-sqli","severity":"high","message":"Detected a formatted string in a SQL statement. This could lead to SQL injection if variables in the SQL statement are not properly sanitized. Use a prepared statements instead. You can obtain a PreparedStatement using 'SqlCommand' and 'SqlParameter'. [confidence medium]","path":"benchmarks/Dapper.Tests.Performance/PetaPoco/PetaPoco.cs","line":333,"fingerprint":"csharp.lang.security.sqli.csharp-sqli:benchmarks/Dapper.Tests.Performance/PetaPoco/PetaPoco.cs:333"},{"rule_id":"opengrep/csharp.lang.security.sqli.csharp-sqli","severity":"high","message":"Detected a formatted string in a SQL statement. This could lead to SQL injection if variables in the SQL statement are not properly sanitized. Use a prepared statements instead. You can obtain a PreparedStatement using 'SqlCommand' and 'SqlParameter'. [confidence medium]","path":"benchmarks/Dapper.Tests.Performance/PetaPoco/PetaPoco.cs","line":773,"fingerprint":"csharp.lang.security.sqli.csharp-sqli:benchmarks/Dapper.Tests.Performance/PetaPoco/PetaPoco.cs:773"},{"rule_id":"opengrep/csharp.lang.security.sqli.csharp-sqli","severity":"high","message":"Detected a formatted string in a SQL statement. This could lead to SQL injection if variables in the SQL statement are not properly sanitized. Use a prepared statements instead. You can obtain a PreparedStatement using 'SqlCommand' and 'SqlParameter'. [confidence medium]","path":"benchmarks/Dapper.Tests.Performance/PetaPoco/PetaPoco.cs","line":851,"fingerprint":"csharp.lang.security.sqli.csharp-sqli:benchmarks/Dapper.Tests.Performance/PetaPoco/PetaPoco.cs:851"}],"evidence":[],"data":{"rulesets":["csharp"]},"error":null},{"analyzer":"sec-deps","pillar":"security","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-actions","pillar":"security","status":"ok","tool_version":"zizmor 1.32.0","metrics":{"workflows":3.0,"findings":27.0,"findings_high":19.0,"findings_medium":7.0,"findings_low":1.0,"penalty":233.2},"findings":[{"rule_id":"zizmor/dangerous-triggers","severity":"high","message":"use of fundamentally insecure workflow trigger [confidence medium]","path":".github/workflows/cla.yml","line":5,"fingerprint":"dangerous-triggers:.github/workflows/cla.yml:5"},{"rule_id":"zizmor/dangerous-triggers","severity":"high","message":"use of fundamentally insecure workflow trigger [confidence medium]","path":".github/workflows/cla.yml","line":3,"fingerprint":"dangerous-triggers:.github/workflows/cla.yml:3"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/cla.yml","line":21,"fingerprint":"unpinned-uses:.github/workflows/cla.yml:21"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/main.yml","line":45,"fingerprint":"unpinned-uses:.github/workflows/main.yml:45"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/main.yml","line":49,"fingerprint":"unpinned-uses:.github/workflows/main.yml:49"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/main.yml","line":57,"fingerprint":"unpinned-uses:.github/workflows/main.yml:57"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/main.yml","line":61,"fingerprint":"unpinned-uses:.github/workflows/main.yml:61"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/main.yml","line":105,"fingerprint":"unpinned-uses:.github/workflows/main.yml:105"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/main.yml","line":109,"fingerprint":"unpinned-uses:.github/workflows/main.yml:109"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/main.yml","line":113,"fingerprint":"unpinned-uses:.github/workflows/main.yml:113"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/main.yml","line":123,"fingerprint":"unpinned-uses:.github/workflows/main.yml:123"},{"rule_id":"zizmor/unpinned-images","severity":"high","message":"unpinned image references [confidence high]","path":".github/workflows/main.yml","line":21,"fingerprint":"unpinned-images:.github/workflows/main.yml:21"},{"rule_id":"zizmor/unpinned-images","severity":"high","message":"unpinned image references [confidence high]","path":".github/workflows/main.yml","line":37,"fingerprint":"unpinned-images:.github/workflows/main.yml:37"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":46,"fingerprint":"unpinned-uses:.github/workflows/release.yml:46"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":51,"fingerprint":"unpinned-uses:.github/workflows/release.yml:51"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":57,"fingerprint":"unpinned-uses:.github/workflows/release.yml:57"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":62,"fingerprint":"unpinned-uses:.github/workflows/release.yml:62"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":93,"fingerprint":"unpinned-uses:.github/workflows/release.yml:93"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":100,"fingerprint":"unpinned-uses:.github/workflows/release.yml:100"},{"rule_id":"zizmor/archived-uses","severity":"medium","message":"action or reusable workflow from archived repository [confidence high]","path":".github/workflows/cla.yml","line":21,"fingerprint":"archived-uses:.github/workflows/cla.yml:21"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/main.yml","line":44,"fingerprint":"artipacked:.github/workflows/main.yml:44"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/main.yml","line":104,"fingerprint":"artipacked:.github/workflows/main.yml:104"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/main.yml","line":1,"fingerprint":"excessive-permissions:.github/workflows/main.yml:1"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/main.yml","line":16,"fingerprint":"excessive-permissions:.github/workflows/main.yml:16"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/main.yml","line":100,"fingerprint":"excessive-permissions:.github/workflows/main.yml:100"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/release.yml","line":45,"fingerprint":"artipacked:.github/workflows/release.yml:45"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/release.yml","line":114,"fingerprint":"template-injection:.github/workflows/release.yml:114"}],"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":1.0,"check:lockfiles":1.0,"signed_commit_share":0.65,"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":973.0,"function_nloc":8873.0,"mean_ccn":2.62,"p90_ccn":5.0,"complex_functions":21.0,"long_functions":7.0,"many_param_functions":18.0,"risky_nloc_share":0.2257},"findings":[],"evidence":[{"kind":"complex-function","description":"SqlMapper::CreateParamInfoGenerator in Dapper/SqlMapper.cs: complexity 91, 373 lines","ref":"Dapper/SqlMapper.cs","url":"https://github.com/DapperLib/Dapper/blob/eb47546a408bbf6c178bda4f04dc205bc51ffbfe/Dapper/SqlMapper.cs#L2561","weight":1.0},{"kind":"complex-function","description":"SqlMapper::GenerateDeserializerFromMap in Dapper/SqlMapper.cs: complexity 35, 188 lines","ref":"Dapper/SqlMapper.cs","url":"https://github.com/DapperLib/Dapper/blob/eb47546a408bbf6c178bda4f04dc205bc51ffbfe/Dapper/SqlMapper.cs#L3514","weight":0.5833333333333334},{"kind":"complex-function","description":"SqlMapper::FlexibleConvertBoxedFromHeadOfStack in Dapper/SqlMapper.cs: complexity 34, 86 lines","ref":"Dapper/SqlMapper.cs","url":"https://github.com/DapperLib/Dapper/blob/eb47546a408bbf6c178bda4f04dc205bc51ffbfe/Dapper/SqlMapper.cs#L3919","weight":0.5666666666666667},{"kind":"complex-function","description":"SqlMapper::PackListParameters in Dapper/SqlMapper.cs: complexity 33, 137 lines","ref":"Dapper/SqlMapper.cs","url":"https://github.com/DapperLib/Dapper/blob/eb47546a408bbf6c178bda4f04dc205bc51ffbfe/Dapper/SqlMapper.cs#L2166","weight":0.55},{"kind":"complex-function","description":"DynamicParameters::Output<T> in Dapper/DynamicParameters.cs: complexity 31, 106 lines","ref":"Dapper/DynamicParameters.cs","url":"https://github.com/DapperLib/Dapper/blob/eb47546a408bbf6c178bda4f04dc205bc51ffbfe/Dapper/DynamicParameters.cs#L348","weight":0.5166666666666667},{"kind":"complex-function","description":"SqlMapper::LoadReaderValueOrBranchToDBNullLabel in Dapper/SqlMapper.cs: complexity 30, 95 lines","ref":"Dapper/SqlMapper.cs","url":"https://github.com/DapperLib/Dapper/blob/eb47546a408bbf6c178bda4f04dc205bc51ffbfe/Dapper/SqlMapper.cs#L3774","weight":0.5},{"kind":"complex-function","description":"DynamicParameters::AddParameters in Dapper/DynamicParameters.cs: complexity 28, 104 lines","ref":"Dapper/DynamicParameters.cs","url":"https://github.com/DapperLib/Dapper/blob/eb47546a408bbf6c178bda4f04dc205bc51ffbfe/Dapper/DynamicParameters.cs#L182","weight":0.4666666666666667},{"kind":"complex-function","description":"PocoData::GetFactory<T> in benchmarks/Dapper.Tests.Performance/PetaPoco/PetaPoco.cs: complexity 25, 85 lines","ref":"benchmarks/Dapper.Tests.Performance/PetaPoco/PetaPoco.cs","url":"https://github.com/DapperLib/Dapper/blob/eb47546a408bbf6c178bda4f04dc205bc51ffbfe/benchmarks/Dapper.Tests.Performance/PetaPoco/PetaPoco.cs#L1124","weight":0.4166666666666667},{"kind":"complex-function","description":"SqlMapper::SqlMapper in Dapper/SqlMapper.cs: complexity 24, 54 lines","ref":"Dapper/SqlMapper.cs","url":"https://github.com/DapperLib/Dapper/blob/eb47546a408bbf6c178bda4f04dc205bc51ffbfe/Dapper/SqlMapper.cs#L202","weight":0.4},{"kind":"complex-function","description":"SqlMapper::MultiMapImpl<TReturn> in Dapper/SqlMapper.cs: complexity 23, 59 lines","ref":"Dapper/SqlMapper.cs","url":"https://github.com/DapperLib/Dapper/blob/eb47546a408bbf6c178bda4f04dc205bc51ffbfe/Dapper/SqlMapper.cs#L1653","weight":0.38333333333333336}],"data":{},"error":null},{"analyzer":"qual-duplication","pillar":"quality","status":"ok","tool_version":"repotrust-dup-w6","metrics":{"compared_lines":10231.0,"duplicated_lines":1715.0,"duplicated_share":0.1676,"files":103.0},"findings":[],"evidence":[{"kind":"duplicate-code","description":"6+ duplicated lines: Dapper.Rainbow/Database.Async.cs:21 and Dapper.Rainbow/Database.cs:60","ref":"Dapper.Rainbow/Database.Async.cs","url":"https://github.com/DapperLib/Dapper/blob/eb47546a408bbf6c178bda4f04dc205bc51ffbfe/Dapper.Rainbow/Database.Async.cs#L21","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: Dapper.Rainbow/Database.Async.cs:113 and Dapper/SqlMapper.Async.cs:673","ref":"Dapper.Rainbow/Database.Async.cs","url":"https://github.com/DapperLib/Dapper/blob/eb47546a408bbf6c178bda4f04dc205bc51ffbfe/Dapper.Rainbow/Database.Async.cs#L113","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: Dapper.Rainbow/Database.Async.cs:119 and Dapper.Rainbow/Database.Async.cs:138","ref":"Dapper.Rainbow/Database.Async.cs","url":"https://github.com/DapperLib/Dapper/blob/eb47546a408bbf6c178bda4f04dc205bc51ffbfe/Dapper.Rainbow/Database.Async.cs#L119","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: Dapper.Rainbow/Database.cs:30 and Dapper.Rainbow/Database.cs:165","ref":"Dapper.Rainbow/Database.cs","url":"https://github.com/DapperLib/Dapper/blob/eb47546a408bbf6c178bda4f04dc205bc51ffbfe/Dapper.Rainbow/Database.cs#L30","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: Dapper.Rainbow/Database.cs:378 and Dapper/SqlMapper.cs:1414","ref":"Dapper.Rainbow/Database.cs","url":"https://github.com/DapperLib/Dapper/blob/eb47546a408bbf6c178bda4f04dc205bc51ffbfe/Dapper.Rainbow/Database.cs#L378","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: Dapper/DefaultTypeMap.cs:66 and Dapper/SqlMapper.ITypeMap.cs:13","ref":"Dapper/DefaultTypeMap.cs","url":"https://github.com/DapperLib/Dapper/blob/eb47546a408bbf6c178bda4f04dc205bc51ffbfe/Dapper/DefaultTypeMap.cs#L66","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: Dapper/DynamicParameters.cs:86 and Dapper/DynamicParameters.cs:106","ref":"Dapper/DynamicParameters.cs","url":"https://github.com/DapperLib/Dapper/blob/eb47546a408bbf6c178bda4f04dc205bc51ffbfe/Dapper/DynamicParameters.cs#L86","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: Dapper/SqlMapper.Async.cs:18 and Dapper/SqlMapper.Async.cs:151","ref":"Dapper/SqlMapper.Async.cs","url":"https://github.com/DapperLib/Dapper/blob/eb47546a408bbf6c178bda4f04dc205bc51ffbfe/Dapper/SqlMapper.Async.cs#L18","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: Dapper/SqlMapper.Async.cs:292 and Dapper/SqlMapper.cs:1058","ref":"Dapper/SqlMapper.Async.cs","url":"https://github.com/DapperLib/Dapper/blob/eb47546a408bbf6c178bda4f04dc205bc51ffbfe/Dapper/SqlMapper.Async.cs#L292","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: Dapper/SqlMapper.GridReader.Async.cs:155 and Dapper/SqlMapper.GridReader.Async.cs:287","ref":"Dapper/SqlMapper.GridReader.Async.cs","url":"https://github.com/DapperLib/Dapper/blob/eb47546a408bbf6c178bda4f04dc205bc51ffbfe/Dapper/SqlMapper.GridReader.Async.cs#L155","weight":0.3}],"data":{},"error":null},{"analyzer":"qual-lint","pillar":"quality","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":0.0,"weighted_findings":0.0,"scanned_lines":15765.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"qual-testing","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:has_tests":1.0,"check:test_ratio":1.0,"check:ci_present":1.0,"check:ci_runs_tests":1.0,"check:ci_runs_lint":0.0,"check:tests_cochange":1.0,"test_lines":11025.0,"source_lines":15808.0,"test_ratio":0.6974,"ci_files":3.0,"cochange_share":0.4379,"cochange_commits":153.0},"findings":[],"evidence":[{"kind":"ci","description":"CI config: .github/workflows/cla.yml","ref":".github/workflows/cla.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/main.yml","ref":".github/workflows/main.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/release.yml","ref":".github/workflows/release.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI runs tests (dotnet test)","ref":null,"url":null,"weight":0.0}],"data":{"test_commands":["dotnet test"],"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":0.0,"readme_lines":373.0},"findings":[],"evidence":[{"kind":"docs","description":"Readme.md","ref":"Readme.md","url":null,"weight":0.0},{"kind":"docs","description":"License.txt","ref":"License.txt","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},{"analyzer":"x-blame","pillar":"ai_provenance","status":"ok","tool_version":"git-blame","metrics":{"ai_lines":0.0,"other_lines":15808.0,"files_blamed":103.0,"blame_failures":0.0,"quality:ai_findings":0.0,"quality:other_findings":0.0,"quality:other_per_kloc":0.0,"security:ai_findings":0.0,"security:other_findings":11.0,"security:other_per_kloc":0.696},"findings":[],"evidence":[],"data":{"sampled":false,"comparable":false},"error":null}],"flags":[]}