{"schema_version":"2","scorer_version":"0.1.0","scoring_version":"prov-5+qual-2+sec-2","generated_at":"2026-11-14T15:13:05.906579Z","repo":{"ref":{"host":"github.com","owner":"Alamofire","name":"Alamofire"},"default_branch":"master","clone_url":"https://github.com/Alamofire/Alamofire.git","html_url":"https://github.com/Alamofire/Alamofire","description":"Elegant HTTP Networking in Swift","stars":42399,"forks":7643,"is_fork":false,"is_archived":false,"is_private":false,"size_kb":45915,"primary_language":"Swift","license_spdx":"MIT","created_at":"2014-07-31T05:56:19Z","pushed_at":"2026-11-14T05:54:11Z","security_policy_url":null,"distribution":{"owner_created_at":"2014-06-02T22:37:38Z","owner_type":"Organization","release_assets":[]}},"commit_sha":"dea4bab91767a971d6e112bc955c6a82295589b7","profile":{"lines_by_language":{"Swift":43746,"JavaScript":3686},"files_by_category":{"other":372,"source":107,"binary":38,"config":34,"docs":15,"vendored":4,"generated":1},"source_lines":47432,"test_lines":0},"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.148},"summary":"Weak signals consistent with AI-assisted development. 1 commit(s) carry explicit AI attribution, too few to characterize the codebase."},"quality":{"score":61.3,"confidence":0.9,"coverage":1.0,"label":"weak","breakdown":{"complexity":98.3,"duplication":9.0,"lint":100.0,"testing":35.0,"docs":100.0,"type_safety":null,"process":35.0},"summary":"Code quality is weak: test-to-source ratio 0.00, CI runs tests; 1% of function code in complex or long functions; 40% duplicated lines. Weakest area: duplication."},"security":{"score":67.9,"confidence":0.85,"coverage":1.0,"label":"weak","breakdown":{"secrets":100.0,"sast":92.9,"dependencies":87.5,"ci_actions":0.9,"posture":20.0,"scorecard":46.7},"summary":"Security posture is weak: 1 known vulnerabilities in 1 dependencies; 21 high-severity workflow issues. Weakest area: ci actions."}},"analyzer_results":[{"analyzer":"sec-scorecard","pillar":"security","status":"ok","tool_version":"scorecard v5.6.0","metrics":{"aggregate":4.5,"check:Code-Review":2.0,"check:Dangerous-Workflow":10.0,"check:Maintained":5.0,"check:Token-Permissions":0.0,"check:Binary-Artifacts":10.0,"check:CII-Best-Practices":0.0,"check:Pinned-Dependencies":0.0,"check:Security-Policy":0.0,"check:Fuzzing":0.0,"check:License":10.0,"check:SAST":8.0},"findings":[],"evidence":[{"kind":"scorecard-check","description":"Scorecard Code-Review: 2/10 (Found 5/24 approved changesets -- score normalized to 2)","ref":"Code-Review","url":"https://scorecard.dev/viewer/?uri=github.com/Alamofire/Alamofire","weight":0.8},{"kind":"scorecard-check","description":"Scorecard Dangerous-Workflow: 10/10 (no dangerous workflow patterns detected)","ref":"Dangerous-Workflow","url":"https://scorecard.dev/viewer/?uri=github.com/Alamofire/Alamofire","weight":0.0},{"kind":"scorecard-check","description":"Scorecard Maintained: 5/10 (6 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 5)","ref":"Maintained","url":"https://scorecard.dev/viewer/?uri=github.com/Alamofire/Alamofire","weight":0.5},{"kind":"scorecard-check","description":"Scorecard Token-Permissions: 0/10 (detected GitHub workflow tokens with excessive permissions)","ref":"Token-Permissions","url":"https://scorecard.dev/viewer/?uri=github.com/Alamofire/Alamofire","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/Alamofire/Alamofire","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/Alamofire/Alamofire","weight":1.0},{"kind":"scorecard-check","description":"Scorecard Pinned-Dependencies: 0/10 (dependency not pinned by hash detected -- score normalized to 0)","ref":"Pinned-Dependencies","url":"https://scorecard.dev/viewer/?uri=github.com/Alamofire/Alamofire","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/Alamofire/Alamofire","weight":1.0},{"kind":"scorecard-check","description":"Scorecard Fuzzing: 0/10 (project is not fuzzed)","ref":"Fuzzing","url":"https://scorecard.dev/viewer/?uri=github.com/Alamofire/Alamofire","weight":1.0},{"kind":"scorecard-check","description":"Scorecard License: 10/10 (license file detected)","ref":"License","url":"https://scorecard.dev/viewer/?uri=github.com/Alamofire/Alamofire","weight":0.0},{"kind":"scorecard-check","description":"Scorecard SAST: 8/10 (SAST tool detected but not run on all commits)","ref":"SAST","url":"https://scorecard.dev/viewer/?uri=github.com/Alamofire/Alamofire","weight":0.2}],"data":{"date":"2026-11-09","commit":"6c2892ea5adb5a03fa81c510933dd782c5ddd9cb","matches_head":false},"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":1530.0,"attributed_commits":1.0,"attributed_commit_share":0.00065359477124183,"effective_loc":102980.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: trailer 'Co-authored-by: Claude'","ref":"b3e74e8301cc53c8f82afb9db141d52952876e69","url":"https://github.com/Alamofire/Alamofire/commit/b3e74e8301cc53c8f82afb9db141d52952876e69","weight":0.9}],"data":{"attributed_loc_by_commit":{"b3e74e8301cc53c8f82afb9db141d52952876e69":0},"tools":{"claude-code":{"name":"Claude Code","commits":1,"loc":0,"first_seen":1794410039,"last_seen":1794410039}},"monthly":{"2014-07":{"loc":1495,"attributed_loc":0},"2014-08":{"loc":1148,"attributed_loc":0},"2014-09":{"loc":1826,"attributed_loc":0},"2014-10":{"loc":182,"attributed_loc":0},"2014-11":{"loc":50,"attributed_loc":0},"2014-12":{"loc":116,"attributed_loc":0},"2015-01":{"loc":166,"attributed_loc":0},"2015-02":{"loc":194,"attributed_loc":0},"2015-03":{"loc":117,"attributed_loc":0},"2015-04":{"loc":231,"attributed_loc":0},"2015-05":{"loc":3834,"attributed_loc":0},"2015-06":{"loc":3391,"attributed_loc":0},"2015-07":{"loc":5688,"attributed_loc":0},"2015-08":{"loc":1265,"attributed_loc":0},"2015-09":{"loc":1585,"attributed_loc":0},"2015-10":{"loc":325,"attributed_loc":0},"2015-11":{"loc":31,"attributed_loc":0},"2015-12":{"loc":70,"attributed_loc":0},"2016-01":{"loc":89,"attributed_loc":0},"2016-02":{"loc":963,"attributed_loc":0},"2016-03":{"loc":288,"attributed_loc":0},"2016-04":{"loc":394,"attributed_loc":0},"2016-05":{"loc":955,"attributed_loc":0},"2016-06":{"loc":2346,"attributed_loc":0},"2016-07":{"loc":856,"attributed_loc":0},"2016-08":{"loc":6274,"attributed_loc":0},"2016-09":{"loc":7390,"attributed_loc":0},"2016-10":{"loc":103,"attributed_loc":0},"2016-11":{"loc":807,"attributed_loc":0},"2016-12":{"loc":64,"attributed_loc":0},"2017-01":{"loc":437,"attributed_loc":0},"2017-02":{"loc":692,"attributed_loc":0},"2017-03":{"loc":10,"attributed_loc":0},"2017-04":{"loc":8,"attributed_loc":0},"2017-05":{"loc":2,"attributed_loc":0},"2017-06":{"loc":576,"attributed_loc":0},"2017-07":{"loc":0,"attributed_loc":0},"2017-08":{"loc":3314,"attributed_loc":0},"2017-09":{"loc":73,"attributed_loc":0},"2017-10":{"loc":2,"attributed_loc":0},"2017-11":{"loc":424,"attributed_loc":0},"2017-12":{"loc":0,"attributed_loc":0},"2018-02":{"loc":152,"attributed_loc":0},"2018-03":{"loc":140,"attributed_loc":0},"2018-04":{"loc":11,"attributed_loc":0},"2018-06":{"loc":0,"attributed_loc":0},"2018-07":{"loc":12,"attributed_loc":0},"2018-08":{"loc":0,"attributed_loc":0},"2018-11":{"loc":175,"attributed_loc":0},"2018-12":{"loc":8603,"attributed_loc":0},"2019-01":{"loc":1972,"attributed_loc":0},"2019-02":{"loc":1016,"attributed_loc":0},"2019-03":{"loc":2980,"attributed_loc":0},"2019-04":{"loc":1134,"attributed_loc":0},"2019-05":{"loc":224,"attributed_loc":0},"2019-06":{"loc":1639,"attributed_loc":0},"2019-07":{"loc":1259,"attributed_loc":0},"2019-08":{"loc":3700,"attributed_loc":0},"2019-09":{"loc":587,"attributed_loc":0},"2019-10":{"loc":302,"attributed_loc":0},"2019-11":{"loc":16,"attributed_loc":0},"2019-12":{"loc":45,"attributed_loc":0},"2020-01":{"loc":5,"attributed_loc":0},"2020-02":{"loc":102,"attributed_loc":0},"2020-03":{"loc":1253,"attributed_loc":0},"2020-04":{"loc":1760,"attributed_loc":0},"2020-05":{"loc":3547,"attributed_loc":0},"2020-06":{"loc":661,"attributed_loc":0},"2020-07":{"loc":192,"attributed_loc":0},"2020-08":{"loc":156,"attributed_loc":0},"2020-09":{"loc":75,"attributed_loc":0},"2020-10":{"loc":601,"attributed_loc":0},"2020-11":{"loc":2,"attributed_loc":0},"2020-12":{"loc":1,"attributed_loc":0},"2021-02":{"loc":1484,"attributed_loc":0},"2021-03":{"loc":154,"attributed_loc":0},"2021-04":{"loc":72,"attributed_loc":0},"2021-05":{"loc":86,"attributed_loc":0},"2021-06":{"loc":288,"attributed_loc":0},"2021-07":{"loc":2,"attributed_loc":0},"2021-08":{"loc":1,"attributed_loc":0},"2021-09":{"loc":23,"attributed_loc":0},"2021-10":{"loc":1198,"attributed_loc":0},"2021-11":{"loc":417,"attributed_loc":0},"2021-12":{"loc":1308,"attributed_loc":0},"2022-01":{"loc":128,"attributed_loc":0},"2022-02":{"loc":68,"attributed_loc":0},"2022-03":{"loc":4,"attributed_loc":0},"2022-04":{"loc":110,"attributed_loc":0},"2022-05":{"loc":1,"attributed_loc":0},"2022-06":{"loc":429,"attributed_loc":0},"2022-07":{"loc":12,"attributed_loc":0},"2022-10":{"loc":30,"attributed_loc":0},"2022-11":{"loc":29,"attributed_loc":0},"2022-12":{"loc":219,"attributed_loc":0},"2023-01":{"loc":0,"attributed_loc":0},"2023-02":{"loc":273,"attributed_loc":0},"2023-03":{"loc":385,"attributed_loc":0},"2023-05":{"loc":52,"attributed_loc":0},"2023-06":{"loc":75,"attributed_loc":0},"2023-07":{"loc":27,"attributed_loc":0},"2023-08":{"loc":1080,"attributed_loc":0},"2023-09":{"loc":302,"attributed_loc":0},"2023-10":{"loc":0,"attributed_loc":0},"2023-11":{"loc":1762,"attributed_loc":0},"2024-01":{"loc":4086,"attributed_loc":0},"2024-02":{"loc":13,"attributed_loc":0},"2024-03":{"loc":15,"attributed_loc":0},"2024-05":{"loc":1,"attributed_loc":0},"2024-07":{"loc":110,"attributed_loc":0},"2024-08":{"loc":0,"attributed_loc":0},"2024-09":{"loc":561,"attributed_loc":0},"2024-10":{"loc":1270,"attributed_loc":0},"2024-11":{"loc":26,"attributed_loc":0},"2025-01":{"loc":0,"attributed_loc":0},"2025-05":{"loc":0,"attributed_loc":0},"2025-09":{"loc":0,"attributed_loc":0},"2025-10":{"loc":1958,"attributed_loc":0},"2025-11":{"loc":4,"attributed_loc":0},"2025-12":{"loc":2525,"attributed_loc":0},"2026-01":{"loc":137,"attributed_loc":0},"2026-02":{"loc":1,"attributed_loc":0},"2026-03":{"loc":1,"attributed_loc":0},"2026-04":{"loc":40,"attributed_loc":0},"2026-05":{"loc":1965,"attributed_loc":0},"2026-06":{"loc":0,"attributed_loc":0},"2026-07":{"loc":0,"attributed_loc":0},"2026-09":{"loc":144,"attributed_loc":0},"2026-10":{"loc":1,"attributed_loc":0},"2026-11":{"loc":0,"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":661.0,"flagged_units":0.0,"pre_ai_era_bursts":2.0,"pre_ai_era_measured_loc":73600.0,"pre_ai_era_burst_loc":3612.0,"measured_loc":90335.0,"flagged_loc":0.0,"flagged_loc_share":0.0,"max_loc_per_hour":1992.0,"median_loc_per_hour":40.84965059157269,"pr_timed_units":312.0,"excluded_import_loc":12645.0},"findings":[],"evidence":[],"data":{"flagged_loc_by_commit":{},"excluded_import_commits":["3e488dcd5caf8d76f3da79c7b6d7f4d784ca3296","563595b5197188a6770e2482ac3e6d665c5a1578"]},"error":null},{"analyzer":"ai-release-velocity","pillar":"ai_provenance","status":"ok","tool_version":"prov-5","metrics":{"releases":99.0,"flagged_releases":0.0,"max_loc_per_day":154033.7},"findings":[],"evidence":[],"data":{"releases":[{"from":"1.1.2","to":"1.1.3","loc":8,"days":18.72,"loc_per_day":0.4,"flagged":false},{"from":"1.1.3","to":"1.1.4","loc":60,"days":20.93,"loc_per_day":2.9,"flagged":false},{"from":"1.1.4","to":"1.1.5","loc":66,"days":55.12,"loc_per_day":1.2,"flagged":false},{"from":"1.1.5","to":"1.2.0","loc":396,"days":13.8,"loc_per_day":28.7,"flagged":false},{"from":"1.2.0","to":"1.2.1","loc":128,"days":12.0,"loc_per_day":10.7,"flagged":false},{"from":"1.2.1","to":"1.2.2","loc":2280,"days":22.13,"loc_per_day":103.0,"flagged":false},{"from":"1.2.2","to":"1.2.3","loc":2165,"days":30.29,"loc_per_day":71.5,"flagged":false},{"from":"1.2.3","to":"1.3.0","loc":6375,"days":41.91,"loc_per_day":152.1,"flagged":false},{"from":"1.3.0","to":"1.3.1","loc":2,"days":17.06,"loc_per_day":0.1,"flagged":false},{"from":"1.3.1","to":"2.0.0-beta.1","loc":3223,"days":0.05,"loc_per_day":69808.8,"flagged":false},{"from":"2.0.0-beta.1","to":"2.0.0-beta.2","loc":169,"days":14.13,"loc_per_day":12.0,"flagged":false},{"from":"2.0.0-beta.2","to":"2.0.0-beta.3","loc":0,"days":1.01,"loc_per_day":0.0,"flagged":false},{"from":"2.0.0-beta.3","to":"2.0.0-beta.4","loc":523,"days":11.82,"loc_per_day":44.3,"flagged":false},{"from":"2.0.0-beta.4","to":"2.0.0","loc":48,"days":2.97,"loc_per_day":16.2,"flagged":false},{"from":"2.0.0","to":"2.0.1","loc":27,"days":7.23,"loc_per_day":3.7,"flagged":false},{"from":"2.0.1","to":"2.0.2","loc":77,"days":3.74,"loc_per_day":20.6,"flagged":false},{"from":"2.0.2","to":"3.0.0-beta.1","loc":839,"days":1.18,"loc_per_day":714.0,"flagged":false},{"from":"3.0.0-beta.1","to":"3.0.0-beta.2","loc":90,"days":4.67,"loc_per_day":19.3,"flagged":false},{"from":"3.0.0-beta.2","to":"3.0.0-beta.3","loc":1,"days":1.18,"loc_per_day":0.8,"flagged":false},{"from":"3.0.0-beta.3","to":"3.0.0","loc":3,"days":12.74,"loc_per_day":0.2,"flagged":false},{"from":"3.0.0","to":"3.0.1","loc":3,"days":9.35,"loc_per_day":0.3,"flagged":false},{"from":"3.0.1","to":"3.1.0","loc":3,"days":3.06,"loc_per_day":1.0,"flagged":false},{"from":"3.1.0","to":"3.1.1","loc":319,"days":8.81,"loc_per_day":36.2,"flagged":false},{"from":"3.1.1","to":"3.1.2","loc":28,"days":5.7,"loc_per_day":4.9,"flagged":false},{"from":"3.1.2","to":"3.1.3","loc":0,"days":16.23,"loc_per_day":0.0,"flagged":false},{"from":"3.1.3","to":"3.1.4","loc":67,"days":24.34,"loc_per_day":2.8,"flagged":false},{"from":"3.1.4","to":"3.1.5","loc":92,"days":31.78,"loc_per_day":2.9,"flagged":false},{"from":"3.1.5","to":"3.2.0","loc":913,"days":21.06,"loc_per_day":43.3,"flagged":false},{"from":"3.2.0","to":"3.2.1","loc":50,"days":19.74,"loc_per_day":2.5,"flagged":false},{"from":"3.2.1","to":"3.3.0","loc":120,"days":25.14,"loc_per_day":4.8,"flagged":false},{"from":"3.3.0","to":"3.3.1","loc":400,"days":14.3,"loc_per_day":28.0,"flagged":false},{"from":"3.3.1","to":"3.4.0","loc":1096,"days":31.74,"loc_per_day":34.5,"flagged":false},{"from":"3.4.0","to":"3.4.1","loc":145,"days":35.06,"loc_per_day":4.1,"flagged":false},{"from":"3.4.1","to":"3.4.2","loc":166,"days":77.03,"loc_per_day":2.2,"flagged":false},{"from":"3.4.2","to":"4.0.0-beta.1","loc":9037,"days":0.06,"loc_per_day":154033.7,"flagged":false},{"from":"4.0.0-beta.1","to":"4.0.0-beta.2","loc":3,"days":0.87,"loc_per_day":3.5,"flagged":false},{"from":"4.0.0-beta.2","to":"3.5.0","loc":378,"days":9.1,"loc_per_day":41.5,"flagged":false},{"from":"3.5.0","to":"4.0.0","loc":16230,"days":3.23,"loc_per_day":5029.5,"flagged":false},{"from":"4.0.0","to":"4.0.1","loc":137,"days":13.77,"loc_per_day":9.9,"flagged":false},{"from":"4.0.1","to":"4.1.0","loc":652,"days":51.63,"loc_per_day":12.6,"flagged":false},{"from":"4.1.0","to":"4.2.0","loc":258,"days":5.42,"loc_per_day":47.6,"flagged":false},{"from":"4.2.0","to":"4.3.0","loc":501,"days":55.93,"loc_per_day":9.0,"flagged":false},{"from":"4.3.0","to":"4.4.0","loc":686,"days":41.81,"loc_per_day":16.4,"flagged":false},{"from":"4.4.0","to":"4.5.0","loc":602,"days":110.13,"loc_per_day":5.5,"flagged":false},{"from":"4.5.0","to":"4.5.1","loc":3387,"days":81.7,"loc_per_day":41.5,"flagged":false},{"from":"4.5.1","to":"4.6.0","loc":426,"days":88.45,"loc_per_day":4.8,"flagged":false},{"from":"4.6.0","to":"4.7.0","loc":223,"days":91.05,"loc_per_day":2.4,"flagged":false},{"from":"4.7.0","to":"4.7.1","loc":69,"days":26.74,"loc_per_day":2.6,"flagged":false},{"from":"4.7.1","to":"4.7.2","loc":11,"days":14.97,"loc_per_day":0.7,"flagged":false},{"from":"4.7.2","to":"4.7.3","loc":12,"days":84.18,"loc_per_day":0.1,"flagged":false},{"from":"4.7.3","to":"4.8.0","loc":175,"days":138.99,"loc_per_day":1.3,"flagged":false},{"from":"4.8.0","to":"5.0.0.beta.1","loc":0,"days":11.96,"loc_per_day":0.0,"flagged":false},{"from":"5.0.0.beta.1","to":"5.0.0-beta.1","loc":0,"days":0.84,"loc_per_day":0.0,"flagged":false},{"from":"5.0.0-beta.1","to":"5.0.0-beta.2","loc":3002,"days":62.01,"loc_per_day":48.4,"flagged":false},{"from":"5.0.0-beta.2","to":"5.0.0-beta.3","loc":292,"days":28.13,"loc_per_day":10.4,"flagged":false},{"from":"5.0.0-beta.3","to":"5.0.0-beta.4","loc":2690,"days":21.71,"loc_per_day":123.9,"flagged":false},{"from":"5.0.0-beta.4","to":"5.0.0-beta.5","loc":607,"days":14.36,"loc_per_day":42.3,"flagged":false},{"from":"5.0.0-beta.5","to":"5.0.0-beta.6","loc":527,"days":10.9,"loc_per_day":48.4,"flagged":false},{"from":"5.0.0-beta.6","to":"5.0.0-beta.7","loc":2993,"days":97.14,"loc_per_day":30.8,"flagged":false},{"from":"5.0.0-beta.7","to":"5.0.0-rc.1","loc":4401,"days":36.04,"loc_per_day":122.1,"flagged":false},{"from":"5.0.0-rc.1","to":"5.0.0-rc.2","loc":15,"days":4.76,"loc_per_day":3.1,"flagged":false},{"from":"5.0.0-rc.2","to":"5.0.0-rc.3","loc":302,"days":48.09,"loc_per_day":6.3,"flagged":false},{"from":"5.0.0-rc.3","to":"5.0.0","loc":123,"days":110.94,"loc_per_day":1.1,"flagged":false},{"from":"5.0.0","to":"5.0.1","loc":14,"days":8.25,"loc_per_day":1.7,"flagged":false},{"from":"5.0.1","to":"5.0.2","loc":31,"days":0.68,"loc_per_day":45.8,"flagged":false},{"from":"5.0.2","to":"5.0.3","loc":400,"days":20.21,"loc_per_day":19.8,"flagged":false},{"from":"5.0.3","to":"5.0.4","loc":1,"days":0.82,"loc_per_day":1.2,"flagged":false},{"from":"5.0.4","to":"5.0.5","loc":166,"days":8.2,"loc_per_day":20.3,"flagged":false},{"from":"5.0.5","to":"5.1.0","loc":2446,"days":11.95,"loc_per_day":204.7,"flagged":false},{"from":"5.1.0","to":"5.2.0","loc":3442,"days":41.85,"loc_per_day":82.2,"flagged":false},{"from":"5.2.0","to":"5.2.1","loc":105,"days":9.18,"loc_per_day":11.4,"flagged":false},{"from":"5.2.1","to":"5.2.2","loc":847,"days":52.72,"loc_per_day":16.1,"flagged":false},{"from":"5.2.2","to":"5.3.0","loc":659,"days":92.21,"loc_per_day":7.1,"flagged":false},{"from":"5.3.0","to":"5.4.0","loc":181,"days":17.86,"loc_per_day":10.1,"flagged":false},{"from":"5.4.0","to":"5.4.1","loc":1,"days":46.19,"loc_per_day":0.0,"flagged":false},{"from":"5.4.1","to":"5.4.2","loc":1640,"days":103.81,"loc_per_day":15.8,"flagged":false},{"from":"5.4.2","to":"5.4.3","loc":70,"days":18.21,"loc_per_day":3.8,"flagged":false},{"from":"5.4.3","to":"5.4.4","loc":400,"days":151.87,"loc_per_day":2.6,"flagged":false},{"from":"5.4.4","to":"5.5.0","loc":2923,"days":84.01,"loc_per_day":34.8,"flagged":false},{"from":"5.5.0","to":"5.6.0","loc":204,"days":121.0,"loc_per_day":1.7,"flagged":false},{"from":"5.6.0","to":"5.6.1","loc":11,"days":3.85,"loc_per_day":2.9,"flagged":false},{"from":"5.6.1","to":"5.6.2","loc":537,"days":91.25,"loc_per_day":5.9,"flagged":false},{"from":"5.6.2","to":"5.6.3","loc":54,"days":126.1,"loc_per_day":0.4,"flagged":false},{"from":"5.6.3","to":"5.6.4","loc":5,"days":0.95,"loc_per_day":5.3,"flagged":false},{"from":"5.6.4","to":"5.7.0","loc":899,"days":168.82,"loc_per_day":5.3,"flagged":false},{"from":"5.7.0","to":"5.7.1","loc":28,"days":0.71,"loc_per_day":39.5,"flagged":false},{"from":"5.7.1","to":"5.8.0","loc":1184,"days":113.29,"loc_per_day":10.5,"flagged":false},{"from":"5.8.0","to":"5.8.1","loc":302,"days":55.87,"loc_per_day":5.4,"flagged":false},{"from":"5.8.1","to":"5.9.0","loc":1814,"days":129.27,"loc_per_day":14.0,"flagged":false},{"from":"5.9.0","to":"5.9.1","loc":4,"days":26.96,"loc_per_day":0.1,"flagged":false},{"from":"5.9.1","to":"5.10.0","loc":1845,"days":196.88,"loc_per_day":9.4,"flagged":false},{"from":"5.10.0","to":"5.10.1","loc":96,"days":5.88,"loc_per_day":16.3,"flagged":false},{"from":"5.10.1","to":"5.10.2","loc":27,"days":36.82,"loc_per_day":0.7,"flagged":false},{"from":"5.10.2","to":"5.11.0","loc":4487,"days":389.68,"loc_per_day":11.5,"flagged":false},{"from":"5.11.0","to":"5.11.1","loc":138,"days":43.82,"loc_per_day":3.1,"flagged":false},{"from":"5.11.1","to":"5.11.2","loc":36,"days":62.99,"loc_per_day":0.6,"flagged":false},{"from":"5.11.2","to":"5.12.0","loc":1970,"days":28.94,"loc_per_day":68.1,"flagged":false},{"from":"5.12.0","to":"5.12.1","loc":143,"days":127.04,"loc_per_day":1.1,"flagged":false},{"from":"5.12.1","to":"5.12.2","loc":1,"days":0.95,"loc_per_day":1.1,"flagged":false}]},"error":null},{"analyzer":"ai-stylometry","pillar":"ai_provenance","status":"ok","tool_version":null,"metrics":{"lines_scanned":47432.0,"index":0.148,"count:narrated_steps":3.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":8.0,"per_kloc:emoji_in_code":0.169,"files:emoji_in_code":5.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: // First, trigger a retry-path refresh that fails, putting interceptor into .failed state.","ref":"Tests/AuthenticationInterceptorTests.swift:1136","url":"https://github.com/Alamofire/Alamofire/blob/dea4bab91767a971d6e112bc955c6a82295589b7/Tests/AuthenticationInterceptorTests.swift#L1136","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: // First, proactive refresh fails and the deferred request gets an adaptation error.","ref":"Tests/AuthenticationInterceptorTests.swift:1190","url":"https://github.com/Alamofire/Alamofire/blob/dea4bab91767a971d6e112bc955c6a82295589b7/Tests/AuthenticationInterceptorTests.swift#L1190","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: // First, one successful refresh consumes the entire budget (maximumAttempts: 1).","ref":"Tests/AuthenticationInterceptorTests.swift:1281","url":"https://github.com/Alamofire/Alamofire/blob/dea4bab91767a971d6e112bc955c6a82295589b7/Tests/AuthenticationInterceptorTests.swift#L1281","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":40.0,"findings_high":0.0,"findings_medium":40.0,"findings_low":0.0,"weighted_findings":10.0,"scanned_lines":47432.0,"parse_errors":1.0},"findings":[{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/jazzy.js","line":30,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/jazzy.js:30"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js","line":271,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js:271"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js","line":492,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js:492"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js","line":493,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js:493"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js","line":494,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js:494"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js","line":740,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js:740"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js","line":743,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js:743"},{"rule_id":"opengrep/javascript.jquery.security.audit.prohibit-jquery-html","severity":"medium","message":"JQuery's `html` function is susceptible to Cross Site Scripting (XSS) attacks. If you're just passing text, consider `text` instead. Otherwise, use a function that escapes HTML such as edX's `HtmlUtils.setHtml()`. [confidence low]","path":"docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js","line":782,"fingerprint":"javascript.jquery.security.audit.prohibit-jquery-html:docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js:782"},{"rule_id":"opengrep/javascript.jquery.security.audit.prohibit-jquery-html","severity":"medium","message":"JQuery's `html` function is susceptible to Cross Site Scripting (XSS) attacks. If you're just passing text, consider `text` instead. Otherwise, use a function that escapes HTML such as edX's `HtmlUtils.setHtml()`. [confidence low]","path":"docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js","line":794,"fingerprint":"javascript.jquery.security.audit.prohibit-jquery-html:docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js:794"},{"rule_id":"opengrep/javascript.jquery.security.audit.prohibit-jquery-html","severity":"medium","message":"JQuery's `html` function is susceptible to Cross Site Scripting (XSS) attacks. If you're just passing text, consider `text` instead. Otherwise, use a function that escapes HTML such as edX's `HtmlUtils.setHtml()`. [confidence low]","path":"docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js","line":802,"fingerprint":"javascript.jquery.security.audit.prohibit-jquery-html:docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js:802"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js","line":817,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js:817"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js","line":913,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js:913"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js","line":913,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js:913"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js","line":932,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js:932"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js","line":943,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js:943"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js","line":1480,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js:1480"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js","line":1486,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js:1486"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js","line":1580,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js:1580"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js","line":1587,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js:1587"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js","line":1691,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:docs/docsets/Alamofire.docset/Contents/Resources/Documents/js/typeahead.jquery.js:1691"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"docs/js/jazzy.js","line":30,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:docs/js/jazzy.js:30"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"docs/js/typeahead.jquery.js","line":271,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:docs/js/typeahead.jquery.js:271"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"docs/js/typeahead.jquery.js","line":492,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:docs/js/typeahead.jquery.js:492"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"docs/js/typeahead.jquery.js","line":493,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:docs/js/typeahead.jquery.js:493"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"docs/js/typeahead.jquery.js","line":494,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:docs/js/typeahead.jquery.js:494"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"docs/js/typeahead.jquery.js","line":740,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:docs/js/typeahead.jquery.js:740"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"docs/js/typeahead.jquery.js","line":743,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:docs/js/typeahead.jquery.js:743"},{"rule_id":"opengrep/javascript.jquery.security.audit.prohibit-jquery-html","severity":"medium","message":"JQuery's `html` function is susceptible to Cross Site Scripting (XSS) attacks. If you're just passing text, consider `text` instead. Otherwise, use a function that escapes HTML such as edX's `HtmlUtils.setHtml()`. [confidence low]","path":"docs/js/typeahead.jquery.js","line":782,"fingerprint":"javascript.jquery.security.audit.prohibit-jquery-html:docs/js/typeahead.jquery.js:782"},{"rule_id":"opengrep/javascript.jquery.security.audit.prohibit-jquery-html","severity":"medium","message":"JQuery's `html` function is susceptible to Cross Site Scripting (XSS) attacks. If you're just passing text, consider `text` instead. Otherwise, use a function that escapes HTML such as edX's `HtmlUtils.setHtml()`. [confidence low]","path":"docs/js/typeahead.jquery.js","line":794,"fingerprint":"javascript.jquery.security.audit.prohibit-jquery-html:docs/js/typeahead.jquery.js:794"},{"rule_id":"opengrep/javascript.jquery.security.audit.prohibit-jquery-html","severity":"medium","message":"JQuery's `html` function is susceptible to Cross Site Scripting (XSS) attacks. If you're just passing text, consider `text` instead. Otherwise, use a function that escapes HTML such as edX's `HtmlUtils.setHtml()`. [confidence low]","path":"docs/js/typeahead.jquery.js","line":802,"fingerprint":"javascript.jquery.security.audit.prohibit-jquery-html:docs/js/typeahead.jquery.js:802"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"docs/js/typeahead.jquery.js","line":817,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:docs/js/typeahead.jquery.js:817"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"docs/js/typeahead.jquery.js","line":913,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:docs/js/typeahead.jquery.js:913"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"docs/js/typeahead.jquery.js","line":913,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:docs/js/typeahead.jquery.js:913"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"docs/js/typeahead.jquery.js","line":932,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:docs/js/typeahead.jquery.js:932"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"docs/js/typeahead.jquery.js","line":943,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:docs/js/typeahead.jquery.js:943"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"docs/js/typeahead.jquery.js","line":1480,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:docs/js/typeahead.jquery.js:1480"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"docs/js/typeahead.jquery.js","line":1486,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:docs/js/typeahead.jquery.js:1486"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"docs/js/typeahead.jquery.js","line":1580,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:docs/js/typeahead.jquery.js:1580"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"docs/js/typeahead.jquery.js","line":1587,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:docs/js/typeahead.jquery.js:1587"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"docs/js/typeahead.jquery.js","line":1691,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:docs/js/typeahead.jquery.js:1691"}],"evidence":[],"data":{"rulesets":["swift","javascript"]},"error":null},{"analyzer":"sec-deps","pillar":"security","status":"ok","tool_version":"osv-scanner version: 2.7.1","metrics":{"vulnerable_packages":1.0,"vulnerabilities":1.0,"vulns_critical":0.0,"vulns_high":1.0,"vulns_medium":0.0,"vulns_low":0.0,"vulns_unknown":0.0,"penalty":8.0},"findings":[{"rule_id":"osv/GHSA-8474-xrp6-wh69","severity":"high","message":"activesupport@7.2.3.2 (RubyGems) is affected by GHSA-8474-xrp6-wh69","path":"Gemfile.lock","line":null,"fingerprint":"activesupport@7.2.3.2 (RubyGems):GHSA-8474-xrp6-wh69"}],"evidence":[],"data":{"ecosystems":["RubyGems"]},"error":null},{"analyzer":"sec-actions","pillar":"security","status":"ok","tool_version":"zizmor 1.32.0","metrics":{"workflows":1.0,"findings":44.0,"findings_high":21.0,"findings_medium":12.0,"findings_low":11.0,"penalty":284.1},"findings":[{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":71,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:71"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":77,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:77"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":129,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:129"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":135,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:135"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":207,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:207"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":213,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:213"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":269,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:269"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":275,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:275"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":335,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:335"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":341,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:341"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":401,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:401"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":407,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:407"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":459,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:459"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":491,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:491"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":504,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:504"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":509,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:509"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":535,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:535"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":540,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:540"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":552,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:552"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":554,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:554"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":560,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:560"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/ci.yml","line":1,"fingerprint":"excessive-permissions:.github/workflows/ci.yml:1"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/ci.yml","line":24,"fingerprint":"excessive-permissions:.github/workflows/ci.yml:24"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/ci.yml","line":82,"fingerprint":"excessive-permissions:.github/workflows/ci.yml:82"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/ci.yml","line":140,"fingerprint":"excessive-permissions:.github/workflows/ci.yml:140"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/ci.yml","line":218,"fingerprint":"excessive-permissions:.github/workflows/ci.yml:218"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/ci.yml","line":280,"fingerprint":"excessive-permissions:.github/workflows/ci.yml:280"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/ci.yml","line":346,"fingerprint":"excessive-permissions:.github/workflows/ci.yml:346"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/ci.yml","line":412,"fingerprint":"excessive-permissions:.github/workflows/ci.yml:412"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/ci.yml","line":464,"fingerprint":"excessive-permissions:.github/workflows/ci.yml:464"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/ci.yml","line":497,"fingerprint":"excessive-permissions:.github/workflows/ci.yml:497"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/ci.yml","line":513,"fingerprint":"excessive-permissions:.github/workflows/ci.yml:513"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/ci.yml","line":544,"fingerprint":"excessive-permissions:.github/workflows/ci.yml:544"},{"rule_id":"zizmor/artipacked","severity":"low","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/ci.yml","line":71,"fingerprint":"artipacked:.github/workflows/ci.yml:71"},{"rule_id":"zizmor/artipacked","severity":"low","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/ci.yml","line":129,"fingerprint":"artipacked:.github/workflows/ci.yml:129"},{"rule_id":"zizmor/artipacked","severity":"low","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/ci.yml","line":207,"fingerprint":"artipacked:.github/workflows/ci.yml:207"},{"rule_id":"zizmor/artipacked","severity":"low","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/ci.yml","line":269,"fingerprint":"artipacked:.github/workflows/ci.yml:269"},{"rule_id":"zizmor/artipacked","severity":"low","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/ci.yml","line":335,"fingerprint":"artipacked:.github/workflows/ci.yml:335"},{"rule_id":"zizmor/artipacked","severity":"low","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/ci.yml","line":401,"fingerprint":"artipacked:.github/workflows/ci.yml:401"},{"rule_id":"zizmor/artipacked","severity":"low","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/ci.yml","line":459,"fingerprint":"artipacked:.github/workflows/ci.yml:459"},{"rule_id":"zizmor/artipacked","severity":"low","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/ci.yml","line":491,"fingerprint":"artipacked:.github/workflows/ci.yml:491"},{"rule_id":"zizmor/artipacked","severity":"low","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/ci.yml","line":503,"fingerprint":"artipacked:.github/workflows/ci.yml:503"},{"rule_id":"zizmor/artipacked","severity":"low","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/ci.yml","line":539,"fingerprint":"artipacked:.github/workflows/ci.yml:539"},{"rule_id":"zizmor/artipacked","severity":"low","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/ci.yml","line":551,"fingerprint":"artipacked:.github/workflows/ci.yml:551"}],"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":1.0,"unpinned_manifests":0.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-distribution","pillar":"security","status":"ok","tool_version":null,"metrics":{"signals":1.0,"binary_assets":0.0,"suspicious":0.0},"findings":[],"evidence":[{"kind":"readme-download-lure","description":"gives an archive password","ref":"README.md","url":null,"weight":0.0}],"data":{"signals":["readme-download-lure"],"suspicious":false,"unusual_traction":false,"metadata":true},"error":null},{"analyzer":"qual-complexity","pillar":"quality","status":"ok","tool_version":"lizard 1.25.1","metrics":{"functions":2872.0,"function_nloc":27382.0,"mean_ccn":1.74,"p90_ccn":3.0,"complex_functions":3.0,"long_functions":0.0,"many_param_functions":19.0,"risky_nloc_share":0.0057},"findings":[],"evidence":[{"kind":"complex-function","description":"string in Tests/TestHelpers.swift: complexity 26, 54 lines","ref":"Tests/TestHelpers.swift","url":"https://github.com/Alamofire/Alamofire/blob/dea4bab91767a971d6e112bc955c6a82295589b7/Tests/TestHelpers.swift#L88","weight":0.43333333333333335},{"kind":"complex-function","description":"cURLDescription in Source/Core/Request.swift: complexity 23, 55 lines","ref":"Source/Core/Request.swift","url":"https://github.com/Alamofire/Alamofire/blob/dea4bab91767a971d6e112bc955c6a82295589b7/Source/Core/Request.swift#L1179","weight":0.38333333333333336},{"kind":"complex-function","description":"errorDescription in Source/Core/AFError.swift: complexity 18, 46 lines","ref":"Source/Core/AFError.swift","url":"https://github.com/Alamofire/Alamofire/blob/dea4bab91767a971d6e112bc955c6a82295589b7/Source/Core/AFError.swift#L665","weight":0.3}],"data":{},"error":null},{"analyzer":"qual-duplication","pillar":"quality","status":"ok","tool_version":"repotrust-dup-w6","metrics":{"compared_lines":33527.0,"duplicated_lines":13468.0,"duplicated_share":0.4017,"files":107.0},"findings":[],"evidence":[{"kind":"duplicate-code","description":"6+ duplicated lines: Example/Source/AppDelegate.swift:4 and Example/Source/DetailViewController.swift:4","ref":"Example/Source/AppDelegate.swift","url":"https://github.com/Alamofire/Alamofire/blob/dea4bab91767a971d6e112bc955c6a82295589b7/Example/Source/AppDelegate.swift#L4","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: Package.swift:5 and Package@swift-6.3.swift:5","ref":"Package.swift","url":"https://github.com/Alamofire/Alamofire/blob/dea4bab91767a971d6e112bc955c6a82295589b7/Package.swift#L5","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: Package.swift:19 and Package@swift-6.0.swift:19","ref":"Package.swift","url":"https://github.com/Alamofire/Alamofire/blob/dea4bab91767a971d6e112bc955c6a82295589b7/Package.swift#L19","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: Package@swift-6.0.swift:5 and Tests/InternalHelpers.swift:4","ref":"Package@swift-6.0.swift","url":"https://github.com/Alamofire/Alamofire/blob/dea4bab91767a971d6e112bc955c6a82295589b7/Package@swift-6.0.swift#L5","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: Package@swift-6.0.swift:20 and Package@swift-6.1.swift:20","ref":"Package@swift-6.0.swift","url":"https://github.com/Alamofire/Alamofire/blob/dea4bab91767a971d6e112bc955c6a82295589b7/Package@swift-6.0.swift#L20","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: Package@swift-6.1.swift:3 and Package@swift-6.2.swift:3","ref":"Package@swift-6.1.swift","url":"https://github.com/Alamofire/Alamofire/blob/dea4bab91767a971d6e112bc955c6a82295589b7/Package@swift-6.1.swift#L3","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: Source/Core/AFError.swift:18 and Source/Features/ServerTrustEvaluation.swift:18","ref":"Source/Core/AFError.swift","url":"https://github.com/Alamofire/Alamofire/blob/dea4bab91767a971d6e112bc955c6a82295589b7/Source/Core/AFError.swift#L18","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: Source/Core/AFError.swift:625 and Source/Core/AFError.swift:645","ref":"Source/Core/AFError.swift","url":"https://github.com/Alamofire/Alamofire/blob/dea4bab91767a971d6e112bc955c6a82295589b7/Source/Core/AFError.swift#L625","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: Source/Core/DataRequest.swift:4 and Source/Core/DataStreamRequest.swift:4","ref":"Source/Core/DataRequest.swift","url":"https://github.com/Alamofire/Alamofire/blob/dea4bab91767a971d6e112bc955c6a82295589b7/Source/Core/DataRequest.swift#L4","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: Source/Core/DataRequest.swift:66 and Source/Core/DownloadRequest.swift:163","ref":"Source/Core/DataRequest.swift","url":"https://github.com/Alamofire/Alamofire/blob/dea4bab91767a971d6e112bc955c6a82295589b7/Source/Core/DataRequest.swift#L66","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":47432.0},"findings":[],"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":1.0,"check:ci_runs_tests":1.0,"check:ci_runs_lint":0.0,"check:tests_cochange":0.0,"test_lines":0.0,"source_lines":47432.0,"test_ratio":0.0,"ci_files":1.0,"cochange_share":0.0,"cochange_commits":198.0},"findings":[],"evidence":[{"kind":"ci","description":"CI config: .github/workflows/ci.yml","ref":".github/workflows/ci.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI runs tests (swift test)","ref":null,"url":null,"weight":0.0}],"data":{"test_commands":["swift 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":1.0,"check:changelog":1.0,"readme_lines":193.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":"CONTRIBUTING.md","ref":"CONTRIBUTING.md","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":"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":47432.0,"files_blamed":107.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":40.0,"security:other_per_kloc":0.843},"findings":[],"evidence":[],"data":{"sampled":false,"comparable":false},"error":null}],"flags":[]}