{"schema_version":"2","scorer_version":"0.1.0","scoring_version":"prov-5+qual-2+sec-2","generated_at":"2026-11-14T15:23:49.167755Z","repo":{"ref":{"host":"github.com","owner":"Devolutions","name":"UniGetUI"},"default_branch":"main","clone_url":"https://github.com/Devolutions/UniGetUI.git","html_url":"https://github.com/Devolutions/UniGetUI","description":"UniGetUI: The Graphical Interface for your package managers. Could be terribly described as a package manager manager to manage your package managers","stars":27037,"forks":977,"is_fork":false,"is_archived":false,"is_private":false,"size_kb":947311,"primary_language":"C#","license_spdx":"MIT","created_at":"2021-06-15T12:57:58Z","pushed_at":"2026-11-13T20:08:52Z","security_policy_url":"https://github.com/Devolutions/UniGetUI/security/policy","distribution":{"owner_created_at":"2013-12-03T17:04:37Z","owner_type":"Organization","release_assets":[{"name":"checksums.txt","size":1948,"download_count":122,"release_tag":"v2026.3.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.4/checksums.txt"},{"name":"sizes.arm64.json","size":355,"download_count":24,"release_tag":"v2026.3.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.4/sizes.arm64.json"},{"name":"sizes.linux-arm64.json","size":435,"download_count":26,"release_tag":"v2026.3.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.4/sizes.linux-arm64.json"},{"name":"sizes.linux-x64.json","size":425,"download_count":25,"release_tag":"v2026.3.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.4/sizes.linux-x64.json"},{"name":"sizes.macos-arm64.json","size":350,"download_count":26,"release_tag":"v2026.3.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.4/sizes.macos-arm64.json"},{"name":"sizes.macos-x64.json","size":342,"download_count":26,"release_tag":"v2026.3.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.4/sizes.macos-x64.json"},{"name":"sizes.md","size":1363,"download_count":35,"release_tag":"v2026.3.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.4/sizes.md"},{"name":"sizes.x64.json","size":347,"download_count":37,"release_tag":"v2026.3.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.4/sizes.x64.json"},{"name":"UniGetUI.arm64.zip","size":54946572,"download_count":111,"release_tag":"v2026.3.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.4/UniGetUI.arm64.zip"},{"name":"UniGetUI.Installer.arm64.exe","size":36497128,"download_count":194,"release_tag":"v2026.3.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.4/UniGetUI.Installer.arm64.exe"},{"name":"UniGetUI.Installer.exe","size":38432864,"download_count":73116,"release_tag":"v2026.3.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.4/UniGetUI.Installer.exe"},{"name":"UniGetUI.Installer.x64.exe","size":38432864,"download_count":1876,"release_tag":"v2026.3.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.4/UniGetUI.Installer.x64.exe"},{"name":"UniGetUI.linux-arm64.deb","size":41218304,"download_count":59,"release_tag":"v2026.3.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.4/UniGetUI.linux-arm64.deb"},{"name":"UniGetUI.linux-arm64.rpm","size":30770360,"download_count":55,"release_tag":"v2026.3.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.4/UniGetUI.linux-arm64.rpm"},{"name":"UniGetUI.linux-arm64.tar.gz","size":41187865,"download_count":81,"release_tag":"v2026.3.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.4/UniGetUI.linux-arm64.tar.gz"},{"name":"UniGetUI.linux-x64.deb","size":43359290,"download_count":117,"release_tag":"v2026.3.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.4/UniGetUI.linux-x64.deb"},{"name":"UniGetUI.linux-x64.rpm","size":32893519,"download_count":83,"release_tag":"v2026.3.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.4/UniGetUI.linux-x64.rpm"},{"name":"UniGetUI.linux-x64.tar.gz","size":43332073,"download_count":101,"release_tag":"v2026.3.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.4/UniGetUI.linux-x64.tar.gz"},{"name":"UniGetUI.macos-arm64.dmg","size":71869393,"download_count":112,"release_tag":"v2026.3.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.4/UniGetUI.macos-arm64.dmg"},{"name":"UniGetUI.macos-arm64.tar.gz","size":72610028,"download_count":62,"release_tag":"v2026.3.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.4/UniGetUI.macos-arm64.tar.gz"},{"name":"UniGetUI.macos-x64.dmg","size":78032570,"download_count":83,"release_tag":"v2026.3.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.4/UniGetUI.macos-x64.dmg"},{"name":"UniGetUI.macos-x64.tar.gz","size":78900379,"download_count":71,"release_tag":"v2026.3.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.4/UniGetUI.macos-x64.tar.gz"},{"name":"UniGetUI.x64.zip","size":57757497,"download_count":1285,"release_tag":"v2026.3.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.4/UniGetUI.x64.zip"},{"name":"checksums.txt","size":1948,"download_count":534,"release_tag":"v2026.3.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.3/checksums.txt"},{"name":"sizes.arm64.json","size":355,"download_count":207,"release_tag":"v2026.3.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.3/sizes.arm64.json"},{"name":"sizes.linux-arm64.json","size":435,"download_count":208,"release_tag":"v2026.3.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.3/sizes.linux-arm64.json"},{"name":"sizes.linux-x64.json","size":425,"download_count":207,"release_tag":"v2026.3.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.3/sizes.linux-x64.json"},{"name":"sizes.macos-arm64.json","size":350,"download_count":208,"release_tag":"v2026.3.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.3/sizes.macos-arm64.json"},{"name":"sizes.macos-x64.json","size":342,"download_count":201,"release_tag":"v2026.3.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.3/sizes.macos-x64.json"},{"name":"sizes.md","size":1363,"download_count":239,"release_tag":"v2026.3.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.3/sizes.md"},{"name":"sizes.x64.json","size":347,"download_count":237,"release_tag":"v2026.3.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.3/sizes.x64.json"},{"name":"UniGetUI.arm64.zip","size":51232369,"download_count":1266,"release_tag":"v2026.3.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.3/UniGetUI.arm64.zip"},{"name":"UniGetUI.Installer.arm64.exe","size":34204320,"download_count":1337,"release_tag":"v2026.3.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.3/UniGetUI.Installer.arm64.exe"},{"name":"UniGetUI.Installer.exe","size":35897696,"download_count":1001338,"release_tag":"v2026.3.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.3/UniGetUI.Installer.exe"},{"name":"UniGetUI.Installer.x64.exe","size":35897696,"download_count":12215,"release_tag":"v2026.3.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.3/UniGetUI.Installer.x64.exe"},{"name":"UniGetUI.linux-arm64.deb","size":37903802,"download_count":527,"release_tag":"v2026.3.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.3/UniGetUI.linux-arm64.deb"},{"name":"UniGetUI.linux-arm64.rpm","size":37707489,"download_count":470,"release_tag":"v2026.3.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.3/UniGetUI.linux-arm64.rpm"},{"name":"UniGetUI.linux-arm64.tar.gz","size":37874858,"download_count":498,"release_tag":"v2026.3.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.3/UniGetUI.linux-arm64.tar.gz"},{"name":"UniGetUI.linux-x64.deb","size":39918350,"download_count":871,"release_tag":"v2026.3.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.3/UniGetUI.linux-x64.deb"},{"name":"UniGetUI.linux-x64.rpm","size":39693464,"download_count":572,"release_tag":"v2026.3.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.3/UniGetUI.linux-x64.rpm"},{"name":"UniGetUI.linux-x64.tar.gz","size":39887804,"download_count":566,"release_tag":"v2026.3.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.3/UniGetUI.linux-x64.tar.gz"},{"name":"UniGetUI.macos-arm64.dmg","size":63920389,"download_count":768,"release_tag":"v2026.3.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.3/UniGetUI.macos-arm64.dmg"},{"name":"UniGetUI.macos-arm64.tar.gz","size":64564577,"download_count":288,"release_tag":"v2026.3.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.3/UniGetUI.macos-arm64.tar.gz"},{"name":"UniGetUI.macos-x64.dmg","size":69496197,"download_count":689,"release_tag":"v2026.3.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.3/UniGetUI.macos-x64.dmg"},{"name":"UniGetUI.macos-x64.tar.gz","size":70246347,"download_count":296,"release_tag":"v2026.3.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.3/UniGetUI.macos-x64.tar.gz"},{"name":"UniGetUI.x64.zip","size":53913709,"download_count":6132,"release_tag":"v2026.3.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.3/UniGetUI.x64.zip"},{"name":"checksums.txt","size":1948,"download_count":476,"release_tag":"v2026.3.2","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.2/checksums.txt"},{"name":"sizes.arm64.json","size":355,"download_count":240,"release_tag":"v2026.3.2","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.2/sizes.arm64.json"},{"name":"sizes.linux-arm64.json","size":434,"download_count":222,"release_tag":"v2026.3.2","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.2/sizes.linux-arm64.json"},{"name":"sizes.linux-x64.json","size":424,"download_count":231,"release_tag":"v2026.3.2","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.2/sizes.linux-x64.json"},{"name":"sizes.macos-arm64.json","size":350,"download_count":218,"release_tag":"v2026.3.2","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.2/sizes.macos-arm64.json"},{"name":"sizes.macos-x64.json","size":342,"download_count":211,"release_tag":"v2026.3.2","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.2/sizes.macos-x64.json"},{"name":"sizes.md","size":1363,"download_count":241,"release_tag":"v2026.3.2","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.2/sizes.md"},{"name":"sizes.x64.json","size":347,"download_count":251,"release_tag":"v2026.3.2","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.2/sizes.x64.json"},{"name":"UniGetUI.arm64.zip","size":48138704,"download_count":789,"release_tag":"v2026.3.2","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.2/UniGetUI.arm64.zip"},{"name":"UniGetUI.Installer.arm64.exe","size":32458624,"download_count":1288,"release_tag":"v2026.3.2","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.2/UniGetUI.Installer.arm64.exe"},{"name":"UniGetUI.Installer.exe","size":34122400,"download_count":965119,"release_tag":"v2026.3.2","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.2/UniGetUI.Installer.exe"},{"name":"UniGetUI.Installer.x64.exe","size":34122400,"download_count":12404,"release_tag":"v2026.3.2","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.2/UniGetUI.Installer.x64.exe"},{"name":"UniGetUI.linux-arm64.deb","size":34839020,"download_count":490,"release_tag":"v2026.3.2","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.2/UniGetUI.linux-arm64.deb"},{"name":"UniGetUI.linux-arm64.rpm","size":34666185,"download_count":450,"release_tag":"v2026.3.2","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.2/UniGetUI.linux-arm64.rpm"},{"name":"UniGetUI.linux-arm64.tar.gz","size":34811525,"download_count":467,"release_tag":"v2026.3.2","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.2/UniGetUI.linux-arm64.tar.gz"},{"name":"UniGetUI.linux-x64.deb","size":36771204,"download_count":830,"release_tag":"v2026.3.2","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.2/UniGetUI.linux-x64.deb"},{"name":"UniGetUI.linux-x64.rpm","size":36582341,"download_count":498,"release_tag":"v2026.3.2","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.2/UniGetUI.linux-x64.rpm"},{"name":"UniGetUI.linux-x64.tar.gz","size":36744162,"download_count":531,"release_tag":"v2026.3.2","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.2/UniGetUI.linux-x64.tar.gz"},{"name":"UniGetUI.macos-arm64.dmg","size":59868553,"download_count":763,"release_tag":"v2026.3.2","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.2/UniGetUI.macos-arm64.dmg"},{"name":"UniGetUI.macos-arm64.tar.gz","size":60467240,"download_count":271,"release_tag":"v2026.3.2","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.2/UniGetUI.macos-arm64.tar.gz"},{"name":"UniGetUI.macos-x64.dmg","size":65211885,"download_count":644,"release_tag":"v2026.3.2","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.2/UniGetUI.macos-x64.dmg"},{"name":"UniGetUI.macos-x64.tar.gz","size":65926533,"download_count":265,"release_tag":"v2026.3.2","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.2/UniGetUI.macos-x64.tar.gz"},{"name":"UniGetUI.x64.zip","size":50756046,"download_count":5463,"release_tag":"v2026.3.2","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.2/UniGetUI.x64.zip"},{"name":"checksums.txt","size":1948,"download_count":284,"release_tag":"v2026.3.1","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.1/checksums.txt"},{"name":"sizes.arm64.json","size":355,"download_count":154,"release_tag":"v2026.3.1","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.1/sizes.arm64.json"},{"name":"sizes.linux-arm64.json","size":434,"download_count":144,"release_tag":"v2026.3.1","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.1/sizes.linux-arm64.json"},{"name":"sizes.linux-x64.json","size":424,"download_count":146,"release_tag":"v2026.3.1","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.1/sizes.linux-x64.json"},{"name":"sizes.macos-arm64.json","size":350,"download_count":128,"release_tag":"v2026.3.1","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.1/sizes.macos-arm64.json"},{"name":"sizes.macos-x64.json","size":342,"download_count":136,"release_tag":"v2026.3.1","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.1/sizes.macos-x64.json"},{"name":"sizes.md","size":1363,"download_count":165,"release_tag":"v2026.3.1","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.1/sizes.md"},{"name":"sizes.x64.json","size":347,"download_count":167,"release_tag":"v2026.3.1","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.1/sizes.x64.json"},{"name":"UniGetUI.arm64.zip","size":47803164,"download_count":418,"release_tag":"v2026.3.1","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.1/UniGetUI.arm64.zip"},{"name":"UniGetUI.Installer.arm64.exe","size":32270056,"download_count":664,"release_tag":"v2026.3.1","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.1/UniGetUI.Installer.arm64.exe"},{"name":"UniGetUI.Installer.exe","size":33856744,"download_count":464680,"release_tag":"v2026.3.1","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.1/UniGetUI.Installer.exe"},{"name":"UniGetUI.Installer.x64.exe","size":33856744,"download_count":6966,"release_tag":"v2026.3.1","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.1/UniGetUI.Installer.x64.exe"},{"name":"UniGetUI.linux-arm64.deb","size":34532492,"download_count":316,"release_tag":"v2026.3.1","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.1/UniGetUI.linux-arm64.deb"},{"name":"UniGetUI.linux-arm64.rpm","size":34368802,"download_count":296,"release_tag":"v2026.3.1","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.1/UniGetUI.linux-arm64.rpm"},{"name":"UniGetUI.linux-arm64.tar.gz","size":34507100,"download_count":328,"release_tag":"v2026.3.1","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.1/UniGetUI.linux-arm64.tar.gz"},{"name":"UniGetUI.linux-x64.deb","size":36431456,"download_count":527,"release_tag":"v2026.3.1","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.1/UniGetUI.linux-x64.deb"},{"name":"UniGetUI.linux-x64.rpm","size":36247097,"download_count":349,"release_tag":"v2026.3.1","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.1/UniGetUI.linux-x64.rpm"},{"name":"UniGetUI.linux-x64.tar.gz","size":36404464,"download_count":375,"release_tag":"v2026.3.1","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.1/UniGetUI.linux-x64.tar.gz"},{"name":"UniGetUI.macos-arm64.dmg","size":59176564,"download_count":438,"release_tag":"v2026.3.1","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.1/UniGetUI.macos-arm64.dmg"},{"name":"UniGetUI.macos-arm64.tar.gz","size":59778216,"download_count":216,"release_tag":"v2026.3.1","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.1/UniGetUI.macos-arm64.tar.gz"},{"name":"UniGetUI.macos-x64.dmg","size":64447152,"download_count":375,"release_tag":"v2026.3.1","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.1/UniGetUI.macos-x64.dmg"},{"name":"UniGetUI.macos-x64.tar.gz","size":65166697,"download_count":217,"release_tag":"v2026.3.1","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.1/UniGetUI.macos-x64.tar.gz"},{"name":"UniGetUI.x64.zip","size":50394588,"download_count":3440,"release_tag":"v2026.3.1","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.1/UniGetUI.x64.zip"},{"name":"checksums.txt","size":1948,"download_count":639,"release_tag":"v2026.3.0","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.0/checksums.txt"},{"name":"sizes.arm64.json","size":355,"download_count":348,"release_tag":"v2026.3.0","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.0/sizes.arm64.json"},{"name":"sizes.linux-arm64.json","size":434,"download_count":339,"release_tag":"v2026.3.0","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.0/sizes.linux-arm64.json"},{"name":"sizes.linux-x64.json","size":424,"download_count":347,"release_tag":"v2026.3.0","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.0/sizes.linux-x64.json"},{"name":"sizes.macos-arm64.json","size":350,"download_count":333,"release_tag":"v2026.3.0","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.0/sizes.macos-arm64.json"},{"name":"sizes.macos-x64.json","size":342,"download_count":333,"release_tag":"v2026.3.0","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.0/sizes.macos-x64.json"},{"name":"sizes.md","size":1363,"download_count":396,"release_tag":"v2026.3.0","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.0/sizes.md"},{"name":"sizes.x64.json","size":347,"download_count":392,"release_tag":"v2026.3.0","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.0/sizes.x64.json"},{"name":"UniGetUI.arm64.zip","size":41187316,"download_count":1172,"release_tag":"v2026.3.0","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.0/UniGetUI.arm64.zip"},{"name":"UniGetUI.Installer.arm64.exe","size":29330936,"download_count":1877,"release_tag":"v2026.3.0","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.0/UniGetUI.Installer.arm64.exe"},{"name":"UniGetUI.Installer.exe","size":30668832,"download_count":1327810,"release_tag":"v2026.3.0","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.0/UniGetUI.Installer.exe"},{"name":"UniGetUI.Installer.x64.exe","size":30668832,"download_count":16785,"release_tag":"v2026.3.0","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.0/UniGetUI.Installer.x64.exe"},{"name":"UniGetUI.linux-arm64.deb","size":29648712,"download_count":806,"release_tag":"v2026.3.0","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.0/UniGetUI.linux-arm64.deb"},{"name":"UniGetUI.linux-arm64.rpm","size":29513061,"download_count":766,"release_tag":"v2026.3.0","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.0/UniGetUI.linux-arm64.rpm"},{"name":"UniGetUI.linux-arm64.tar.gz","size":29622220,"download_count":793,"release_tag":"v2026.3.0","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.0/UniGetUI.linux-arm64.tar.gz"},{"name":"UniGetUI.linux-x64.deb","size":31246976,"download_count":1211,"release_tag":"v2026.3.0","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.0/UniGetUI.linux-x64.deb"},{"name":"UniGetUI.linux-x64.rpm","size":31095218,"download_count":851,"release_tag":"v2026.3.0","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.0/UniGetUI.linux-x64.rpm"},{"name":"UniGetUI.linux-x64.tar.gz","size":31221088,"download_count":877,"release_tag":"v2026.3.0","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.0/UniGetUI.linux-x64.tar.gz"},{"name":"UniGetUI.macos-arm64.dmg","size":51508735,"download_count":1169,"release_tag":"v2026.3.0","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.0/UniGetUI.macos-arm64.dmg"},{"name":"UniGetUI.macos-arm64.tar.gz","size":52071384,"download_count":502,"release_tag":"v2026.3.0","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.0/UniGetUI.macos-arm64.tar.gz"},{"name":"UniGetUI.macos-x64.dmg","size":55889515,"download_count":1049,"release_tag":"v2026.3.0","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.0/UniGetUI.macos-x64.dmg"},{"name":"UniGetUI.macos-x64.tar.gz","size":56541333,"download_count":509,"release_tag":"v2026.3.0","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.0/UniGetUI.macos-x64.tar.gz"},{"name":"UniGetUI.x64.zip","size":43370924,"download_count":6557,"release_tag":"v2026.3.0","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.0/UniGetUI.x64.zip"},{"name":"checksums.txt","size":1948,"download_count":1019,"release_tag":"v2026.2.7","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.7/checksums.txt"},{"name":"sizes.arm64.json","size":355,"download_count":671,"release_tag":"v2026.2.7","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.7/sizes.arm64.json"},{"name":"sizes.linux-arm64.json","size":434,"download_count":626,"release_tag":"v2026.2.7","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.7/sizes.linux-arm64.json"},{"name":"sizes.linux-x64.json","size":424,"download_count":647,"release_tag":"v2026.2.7","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.7/sizes.linux-x64.json"},{"name":"sizes.macos-arm64.json","size":350,"download_count":616,"release_tag":"v2026.2.7","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.7/sizes.macos-arm64.json"},{"name":"sizes.macos-x64.json","size":342,"download_count":614,"release_tag":"v2026.2.7","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.7/sizes.macos-x64.json"},{"name":"sizes.md","size":1363,"download_count":705,"release_tag":"v2026.2.7","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.7/sizes.md"},{"name":"sizes.x64.json","size":347,"download_count":746,"release_tag":"v2026.2.7","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.7/sizes.x64.json"},{"name":"UniGetUI.arm64.zip","size":40063597,"download_count":1852,"release_tag":"v2026.2.7","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.7/UniGetUI.arm64.zip"},{"name":"UniGetUI.Installer.arm64.exe","size":28780768,"download_count":3356,"release_tag":"v2026.2.7","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.7/UniGetUI.Installer.arm64.exe"},{"name":"UniGetUI.Installer.exe","size":30071360,"download_count":2360588,"release_tag":"v2026.2.7","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.7/UniGetUI.Installer.exe"},{"name":"UniGetUI.Installer.x64.exe","size":30071360,"download_count":31758,"release_tag":"v2026.2.7","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.7/UniGetUI.Installer.x64.exe"},{"name":"UniGetUI.linux-arm64.deb","size":28440488,"download_count":1546,"release_tag":"v2026.2.7","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.7/UniGetUI.linux-arm64.deb"},{"name":"UniGetUI.linux-arm64.rpm","size":28313028,"download_count":1434,"release_tag":"v2026.2.7","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.7/UniGetUI.linux-arm64.rpm"},{"name":"UniGetUI.linux-arm64.tar.gz","size":28414055,"download_count":1425,"release_tag":"v2026.2.7","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.7/UniGetUI.linux-arm64.tar.gz"},{"name":"UniGetUI.linux-x64.deb","size":29980764,"download_count":1883,"release_tag":"v2026.2.7","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.7/UniGetUI.linux-x64.deb"},{"name":"UniGetUI.linux-x64.rpm","size":29827333,"download_count":1535,"release_tag":"v2026.2.7","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.7/UniGetUI.linux-x64.rpm"},{"name":"UniGetUI.linux-x64.tar.gz","size":29953154,"download_count":1698,"release_tag":"v2026.2.7","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.7/UniGetUI.linux-x64.tar.gz"},{"name":"UniGetUI.macos-arm64.dmg","size":49211746,"download_count":1966,"release_tag":"v2026.2.7","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.7/UniGetUI.macos-arm64.dmg"},{"name":"UniGetUI.macos-arm64.tar.gz","size":49710308,"download_count":1009,"release_tag":"v2026.2.7","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.7/UniGetUI.macos-arm64.tar.gz"},{"name":"UniGetUI.macos-x64.dmg","size":53334718,"download_count":1703,"release_tag":"v2026.2.7","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.7/UniGetUI.macos-x64.dmg"},{"name":"UniGetUI.macos-x64.tar.gz","size":53936937,"download_count":1027,"release_tag":"v2026.2.7","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.7/UniGetUI.macos-x64.tar.gz"},{"name":"UniGetUI.x64.zip","size":42184875,"download_count":9104,"release_tag":"v2026.2.7","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.7/UniGetUI.x64.zip"},{"name":"checksums.txt","size":1948,"download_count":165,"release_tag":"v2026.2.6","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.6/checksums.txt"},{"name":"sizes.arm64.json","size":355,"download_count":56,"release_tag":"v2026.2.6","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.6/sizes.arm64.json"},{"name":"sizes.linux-arm64.json","size":434,"download_count":53,"release_tag":"v2026.2.6","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.6/sizes.linux-arm64.json"},{"name":"sizes.linux-x64.json","size":424,"download_count":59,"release_tag":"v2026.2.6","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.6/sizes.linux-x64.json"},{"name":"sizes.macos-arm64.json","size":350,"download_count":55,"release_tag":"v2026.2.6","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.6/sizes.macos-arm64.json"},{"name":"sizes.macos-x64.json","size":342,"download_count":55,"release_tag":"v2026.2.6","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.6/sizes.macos-x64.json"},{"name":"sizes.md","size":1363,"download_count":130,"release_tag":"v2026.2.6","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.6/sizes.md"},{"name":"sizes.x64.json","size":347,"download_count":134,"release_tag":"v2026.2.6","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.6/sizes.x64.json"},{"name":"UniGetUI.arm64.zip","size":40049723,"download_count":199,"release_tag":"v2026.2.6","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.6/UniGetUI.arm64.zip"},{"name":"UniGetUI.Installer.arm64.exe","size":28789664,"download_count":262,"release_tag":"v2026.2.6","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.6/UniGetUI.Installer.arm64.exe"},{"name":"UniGetUI.Installer.exe","size":30072200,"download_count":80669,"release_tag":"v2026.2.6","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.6/UniGetUI.Installer.exe"},{"name":"UniGetUI.Installer.x64.exe","size":30072200,"download_count":2811,"release_tag":"v2026.2.6","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.6/UniGetUI.Installer.x64.exe"},{"name":"UniGetUI.linux-arm64.deb","size":28433008,"download_count":122,"release_tag":"v2026.2.6","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.6/UniGetUI.linux-arm64.deb"},{"name":"UniGetUI.linux-arm64.rpm","size":28301562,"download_count":121,"release_tag":"v2026.2.6","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.6/UniGetUI.linux-arm64.rpm"},{"name":"UniGetUI.linux-arm64.tar.gz","size":28407050,"download_count":127,"release_tag":"v2026.2.6","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.6/UniGetUI.linux-arm64.tar.gz"},{"name":"UniGetUI.linux-x64.deb","size":29960878,"download_count":180,"release_tag":"v2026.2.6","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.6/UniGetUI.linux-x64.deb"},{"name":"UniGetUI.linux-x64.rpm","size":29814959,"download_count":130,"release_tag":"v2026.2.6","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.6/UniGetUI.linux-x64.rpm"},{"name":"UniGetUI.linux-x64.tar.gz","size":29935732,"download_count":159,"release_tag":"v2026.2.6","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.6/UniGetUI.linux-x64.tar.gz"},{"name":"UniGetUI.macos-arm64.dmg","size":49175140,"download_count":185,"release_tag":"v2026.2.6","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.6/UniGetUI.macos-arm64.dmg"},{"name":"UniGetUI.macos-arm64.tar.gz","size":49705287,"download_count":125,"release_tag":"v2026.2.6","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.6/UniGetUI.macos-arm64.tar.gz"},{"name":"UniGetUI.macos-x64.dmg","size":53310748,"download_count":170,"release_tag":"v2026.2.6","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.6/UniGetUI.macos-x64.dmg"},{"name":"UniGetUI.macos-x64.tar.gz","size":53913055,"download_count":127,"release_tag":"v2026.2.6","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.6/UniGetUI.macos-x64.tar.gz"},{"name":"UniGetUI.x64.zip","size":42168924,"download_count":1836,"release_tag":"v2026.2.6","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.6/UniGetUI.x64.zip"},{"name":"checksums.txt","size":1948,"download_count":355,"release_tag":"v2026.2.5","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.5/checksums.txt"},{"name":"sizes.arm64.json","size":354,"download_count":211,"release_tag":"v2026.2.5","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.5/sizes.arm64.json"},{"name":"sizes.linux-arm64.json","size":434,"download_count":197,"release_tag":"v2026.2.5","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.5/sizes.linux-arm64.json"},{"name":"sizes.linux-x64.json","size":424,"download_count":202,"release_tag":"v2026.2.5","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.5/sizes.linux-x64.json"},{"name":"sizes.macos-arm64.json","size":350,"download_count":185,"release_tag":"v2026.2.5","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.5/sizes.macos-arm64.json"},{"name":"sizes.macos-x64.json","size":342,"download_count":196,"release_tag":"v2026.2.5","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.5/sizes.macos-x64.json"},{"name":"sizes.md","size":1363,"download_count":272,"release_tag":"v2026.2.5","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.5/sizes.md"},{"name":"sizes.x64.json","size":347,"download_count":289,"release_tag":"v2026.2.5","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.5/sizes.x64.json"},{"name":"UniGetUI.arm64.zip","size":39425251,"download_count":600,"release_tag":"v2026.2.5","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.5/UniGetUI.arm64.zip"},{"name":"UniGetUI.Installer.arm64.exe","size":28430776,"download_count":1033,"release_tag":"v2026.2.5","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.5/UniGetUI.Installer.arm64.exe"},{"name":"UniGetUI.Installer.exe","size":29678856,"download_count":492664,"release_tag":"v2026.2.5","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.5/UniGetUI.Installer.exe"},{"name":"UniGetUI.Installer.x64.exe","size":29678856,"download_count":9204,"release_tag":"v2026.2.5","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.5/UniGetUI.Installer.x64.exe"},{"name":"UniGetUI.linux-arm64.deb","size":27803222,"download_count":479,"release_tag":"v2026.2.5","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.5/UniGetUI.linux-arm64.deb"},{"name":"UniGetUI.linux-arm64.rpm","size":27676919,"download_count":440,"release_tag":"v2026.2.5","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.5/UniGetUI.linux-arm64.rpm"},{"name":"UniGetUI.linux-arm64.tar.gz","size":27776555,"download_count":414,"release_tag":"v2026.2.5","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.5/UniGetUI.linux-arm64.tar.gz"},{"name":"UniGetUI.linux-x64.deb","size":29305810,"download_count":611,"release_tag":"v2026.2.5","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.5/UniGetUI.linux-x64.deb"},{"name":"UniGetUI.linux-x64.rpm","size":29155390,"download_count":496,"release_tag":"v2026.2.5","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.5/UniGetUI.linux-x64.rpm"},{"name":"UniGetUI.linux-x64.tar.gz","size":29277793,"download_count":512,"release_tag":"v2026.2.5","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.5/UniGetUI.linux-x64.tar.gz"},{"name":"UniGetUI.macos-arm64.dmg","size":47918285,"download_count":602,"release_tag":"v2026.2.5","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.5/UniGetUI.macos-arm64.dmg"},{"name":"UniGetUI.macos-arm64.tar.gz","size":48428565,"download_count":282,"release_tag":"v2026.2.5","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.5/UniGetUI.macos-arm64.tar.gz"},{"name":"UniGetUI.macos-x64.dmg","size":51908298,"download_count":555,"release_tag":"v2026.2.5","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.5/UniGetUI.macos-x64.dmg"},{"name":"UniGetUI.macos-x64.tar.gz","size":52500982,"download_count":286,"release_tag":"v2026.2.5","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.5/UniGetUI.macos-x64.tar.gz"},{"name":"UniGetUI.x64.zip","size":41517665,"download_count":4475,"release_tag":"v2026.2.5","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.5/UniGetUI.x64.zip"},{"name":"checksums.txt","size":1948,"download_count":125,"release_tag":"v2026.2.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.4/checksums.txt"},{"name":"sizes.arm64.json","size":354,"download_count":37,"release_tag":"v2026.2.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.4/sizes.arm64.json"},{"name":"sizes.linux-arm64.json","size":434,"download_count":35,"release_tag":"v2026.2.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.4/sizes.linux-arm64.json"},{"name":"sizes.linux-x64.json","size":424,"download_count":47,"release_tag":"v2026.2.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.4/sizes.linux-x64.json"},{"name":"sizes.macos-arm64.json","size":350,"download_count":42,"release_tag":"v2026.2.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.4/sizes.macos-arm64.json"},{"name":"sizes.macos-x64.json","size":342,"download_count":49,"release_tag":"v2026.2.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.4/sizes.macos-x64.json"},{"name":"sizes.md","size":1363,"download_count":111,"release_tag":"v2026.2.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.4/sizes.md"},{"name":"sizes.x64.json","size":346,"download_count":111,"release_tag":"v2026.2.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.4/sizes.x64.json"},{"name":"UniGetUI.arm64.zip","size":39381948,"download_count":107,"release_tag":"v2026.2.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.4/UniGetUI.arm64.zip"},{"name":"UniGetUI.Installer.arm64.exe","size":28404880,"download_count":145,"release_tag":"v2026.2.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.4/UniGetUI.Installer.arm64.exe"},{"name":"UniGetUI.Installer.exe","size":29645632,"download_count":33038,"release_tag":"v2026.2.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.4/UniGetUI.Installer.exe"},{"name":"UniGetUI.Installer.x64.exe","size":29645632,"download_count":1959,"release_tag":"v2026.2.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.4/UniGetUI.Installer.x64.exe"},{"name":"UniGetUI.linux-arm64.deb","size":27768246,"download_count":109,"release_tag":"v2026.2.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.4/UniGetUI.linux-arm64.deb"},{"name":"UniGetUI.linux-arm64.rpm","size":27641627,"download_count":102,"release_tag":"v2026.2.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.4/UniGetUI.linux-arm64.rpm"},{"name":"UniGetUI.linux-arm64.tar.gz","size":27738733,"download_count":94,"release_tag":"v2026.2.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.4/UniGetUI.linux-arm64.tar.gz"},{"name":"UniGetUI.linux-x64.deb","size":29263778,"download_count":145,"release_tag":"v2026.2.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.4/UniGetUI.linux-x64.deb"},{"name":"UniGetUI.linux-x64.rpm","size":29114428,"download_count":117,"release_tag":"v2026.2.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.4/UniGetUI.linux-x64.rpm"},{"name":"UniGetUI.linux-x64.tar.gz","size":29236684,"download_count":109,"release_tag":"v2026.2.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.4/UniGetUI.linux-x64.tar.gz"},{"name":"UniGetUI.macos-arm64.dmg","size":47820385,"download_count":144,"release_tag":"v2026.2.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.4/UniGetUI.macos-arm64.dmg"},{"name":"UniGetUI.macos-arm64.tar.gz","size":48344561,"download_count":73,"release_tag":"v2026.2.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.4/UniGetUI.macos-arm64.tar.gz"},{"name":"UniGetUI.macos-x64.dmg","size":51832701,"download_count":133,"release_tag":"v2026.2.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.4/UniGetUI.macos-x64.dmg"},{"name":"UniGetUI.macos-x64.tar.gz","size":52394410,"download_count":75,"release_tag":"v2026.2.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.4/UniGetUI.macos-x64.tar.gz"},{"name":"UniGetUI.x64.zip","size":41472103,"download_count":1389,"release_tag":"v2026.2.4","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.4/UniGetUI.x64.zip"},{"name":"checksums.txt","size":1948,"download_count":130,"release_tag":"v2026.2.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.3/checksums.txt"},{"name":"sizes.arm64.json","size":354,"download_count":41,"release_tag":"v2026.2.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.3/sizes.arm64.json"},{"name":"sizes.linux-arm64.json","size":434,"download_count":42,"release_tag":"v2026.2.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.3/sizes.linux-arm64.json"},{"name":"sizes.linux-x64.json","size":424,"download_count":45,"release_tag":"v2026.2.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.3/sizes.linux-x64.json"},{"name":"sizes.macos-arm64.json","size":350,"download_count":41,"release_tag":"v2026.2.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.3/sizes.macos-arm64.json"},{"name":"sizes.macos-x64.json","size":342,"download_count":41,"release_tag":"v2026.2.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.3/sizes.macos-x64.json"},{"name":"sizes.md","size":1363,"download_count":106,"release_tag":"v2026.2.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.3/sizes.md"},{"name":"sizes.x64.json","size":346,"download_count":110,"release_tag":"v2026.2.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.3/sizes.x64.json"},{"name":"UniGetUI.arm64.zip","size":39388546,"download_count":140,"release_tag":"v2026.2.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.3/UniGetUI.arm64.zip"},{"name":"UniGetUI.Installer.arm64.exe","size":28406816,"download_count":217,"release_tag":"v2026.2.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.3/UniGetUI.Installer.arm64.exe"},{"name":"UniGetUI.Installer.exe","size":29642200,"download_count":14831,"release_tag":"v2026.2.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.3/UniGetUI.Installer.exe"},{"name":"UniGetUI.Installer.x64.exe","size":29642200,"download_count":2411,"release_tag":"v2026.2.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.3/UniGetUI.Installer.x64.exe"},{"name":"UniGetUI.linux-arm64.deb","size":27764096,"download_count":94,"release_tag":"v2026.2.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.3/UniGetUI.linux-arm64.deb"},{"name":"UniGetUI.linux-arm64.rpm","size":27639899,"download_count":95,"release_tag":"v2026.2.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.3/UniGetUI.linux-arm64.rpm"},{"name":"UniGetUI.linux-arm64.tar.gz","size":27736603,"download_count":84,"release_tag":"v2026.2.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.3/UniGetUI.linux-arm64.tar.gz"},{"name":"UniGetUI.linux-x64.deb","size":29256958,"download_count":128,"release_tag":"v2026.2.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.3/UniGetUI.linux-x64.deb"},{"name":"UniGetUI.linux-x64.rpm","size":29112853,"download_count":102,"release_tag":"v2026.2.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.3/UniGetUI.linux-x64.rpm"},{"name":"UniGetUI.linux-x64.tar.gz","size":29233029,"download_count":96,"release_tag":"v2026.2.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.3/UniGetUI.linux-x64.tar.gz"},{"name":"UniGetUI.macos-arm64.dmg","size":47852359,"download_count":147,"release_tag":"v2026.2.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.3/UniGetUI.macos-arm64.dmg"},{"name":"UniGetUI.macos-arm64.tar.gz","size":48363784,"download_count":74,"release_tag":"v2026.2.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.3/UniGetUI.macos-arm64.tar.gz"},{"name":"UniGetUI.macos-x64.dmg","size":51840610,"download_count":142,"release_tag":"v2026.2.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.3/UniGetUI.macos-x64.dmg"},{"name":"UniGetUI.macos-x64.tar.gz","size":52413679,"download_count":74,"release_tag":"v2026.2.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.3/UniGetUI.macos-x64.tar.gz"},{"name":"UniGetUI.x64.zip","size":41471254,"download_count":1508,"release_tag":"v2026.2.3","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.2.3/UniGetUI.x64.zip"}]}},"commit_sha":"da6be7b86100302a79a208e7ab4d5c6fcd695fd5","profile":{"lines_by_language":{"C#":305366,"PowerShell":11835,"Objective-C":91,"JavaScript":30},"files_by_category":{"source":1009,"test":291,"other":283,"config":112,"binary":109,"docs":66,"oversized":6,"generated":5},"source_lines":206797,"test_lines":110525},"pillars":{"ai_provenance":{"score":25.7,"confidence":0.95,"coverage":1.0,"label":"explicit","breakdown":{"attributed_share":0.2575,"suspected_share":0.0911,"estimated_share":0.2575,"ai_artifacts":3.0,"flagged_work_units":18.0,"flagged_releases":0.0,"style_index":0.044},"summary":"Explicit AI attribution on 26% of first-party code added; an estimated 26% including velocity signals."},"quality":{"score":81.3,"confidence":0.9,"coverage":1.0,"label":"strong","breakdown":{"complexity":61.9,"duplication":75.7,"lint":82.6,"testing":100.0,"docs":80.0,"type_safety":null,"process":null},"summary":"Code quality is strong: test-to-source ratio 0.53, CI runs tests; 16% of function code in complex or long functions; 5% duplicated lines. Weakest area: complexity."},"security":{"score":58.0,"confidence":0.85,"coverage":1.0,"label":"weak","breakdown":{"secrets":43.5,"sast":98.7,"dependencies":null,"ci_actions":0.0,"posture":100.0,"scorecard":null},"summary":"Security posture is weak: 0 possible secret(s) in the tree, 4 only in history; 3 high-severity SAST findings; 75 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":6308.0,"attributed_commits":93.0,"attributed_commit_share":0.014743183259353202,"effective_loc":640513.0,"attributed_loc":164915.0,"attributed_loc_share":0.25747330655271633,"tools_detected":4.0},"findings":[],"evidence":[{"kind":"attribution-summary","description":"Claude Code: 52 attributed commits, 71,309 lines added","ref":null,"url":null,"weight":1.0},{"kind":"attribution-summary","description":"GitHub Copilot coding agent: 41 attributed commits, 145,483 lines added","ref":null,"url":null,"weight":1.0},{"kind":"attribution-summary","description":"Jules: 2 attributed commits, 702 lines added","ref":null,"url":null,"weight":1.0},{"kind":"attribution-summary","description":"OpenAI Codex: 1 attributed commits, 6 lines added","ref":null,"url":null,"weight":1.0},{"kind":"attributed-commit","description":"GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot'","ref":"da6be7b86100302a79a208e7ab4d5c6fcd695fd5","url":"https://github.com/Devolutions/UniGetUI/commit/da6be7b86100302a79a208e7ab4d5c6fcd695fd5","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: PR description attribution","ref":"d2a052af567bcc2a175a4203e63b713eabb91d03","url":"https://github.com/Devolutions/UniGetUI/commit/d2a052af567bcc2a175a4203e63b713eabb91d03","weight":0.9},{"kind":"attributed-commit","description":"GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot'","ref":"690c213096ff6c6d4d63254c4dc68a1cf9c97d24","url":"https://github.com/Devolutions/UniGetUI/commit/690c213096ff6c6d4d63254c4dc68a1cf9c97d24","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: PR description attribution","ref":"0eb83d8c632113fdced2928dbf017ad89903311e","url":"https://github.com/Devolutions/UniGetUI/commit/0eb83d8c632113fdced2928dbf017ad89903311e","weight":0.9},{"kind":"attributed-commit","description":"GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot'","ref":"07300b221576a1cbfdce3b3080bd5db16189fa17","url":"https://github.com/Devolutions/UniGetUI/commit/07300b221576a1cbfdce3b3080bd5db16189fa17","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: PR description attribution","ref":"89862a25a42058be0671f450cc0bca1ca1639186","url":"https://github.com/Devolutions/UniGetUI/commit/89862a25a42058be0671f450cc0bca1ca1639186","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: PR description attribution","ref":"02a9e7f5570218523d566b6129aaf1d801b05b86","url":"https://github.com/Devolutions/UniGetUI/commit/02a9e7f5570218523d566b6129aaf1d801b05b86","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: PR description attribution","ref":"f14f21aeca694e10c90d5f202adcf2d4cfcc5322","url":"https://github.com/Devolutions/UniGetUI/commit/f14f21aeca694e10c90d5f202adcf2d4cfcc5322","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: PR description attribution","ref":"ba1efa9febe28287b0e0842e4305c7e19a329168","url":"https://github.com/Devolutions/UniGetUI/commit/ba1efa9febe28287b0e0842e4305c7e19a329168","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: PR description attribution","ref":"7a023eef0d87e29ae3d49a76ec637a3644f77b24","url":"https://github.com/Devolutions/UniGetUI/commit/7a023eef0d87e29ae3d49a76ec637a3644f77b24","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: PR description attribution","ref":"312625587403a86f3fc15e35171791b878cc5596","url":"https://github.com/Devolutions/UniGetUI/commit/312625587403a86f3fc15e35171791b878cc5596","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: PR description attribution","ref":"78fdd77f0372be04004f6d32ba668d7e8d754233","url":"https://github.com/Devolutions/UniGetUI/commit/78fdd77f0372be04004f6d32ba668d7e8d754233","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: PR description attribution","ref":"d10a636abf1c00d622ef695144bde268df16bafd","url":"https://github.com/Devolutions/UniGetUI/commit/d10a636abf1c00d622ef695144bde268df16bafd","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"b0cf6ab87929598a760a0cfe33a9f4fc135b84a4","url":"https://github.com/Devolutions/UniGetUI/commit/b0cf6ab87929598a760a0cfe33a9f4fc135b84a4","weight":0.9},{"kind":"attributed-commit","description":"GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot'","ref":"97614e2636c3ef84c66866d3cfefe31c44ae6dd7","url":"https://github.com/Devolutions/UniGetUI/commit/97614e2636c3ef84c66866d3cfefe31c44ae6dd7","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: PR description attribution","ref":"dc85cd83f1e6b921951f0fc5f654152b9d26209d","url":"https://github.com/Devolutions/UniGetUI/commit/dc85cd83f1e6b921951f0fc5f654152b9d26209d","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: PR description attribution","ref":"8edcfa8d9548f60824177990e8dde9b51d748ae8","url":"https://github.com/Devolutions/UniGetUI/commit/8edcfa8d9548f60824177990e8dde9b51d748ae8","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: PR description attribution","ref":"3f9d53d649c5464ff4d4c59e6e955a4a30f15b5f","url":"https://github.com/Devolutions/UniGetUI/commit/3f9d53d649c5464ff4d4c59e6e955a4a30f15b5f","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: PR description attribution","ref":"403888a1c4ea8ed81ea6892462039bd45c0a811e","url":"https://github.com/Devolutions/UniGetUI/commit/403888a1c4ea8ed81ea6892462039bd45c0a811e","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: PR description attribution","ref":"e9e77141aac36f148bc7a4f41097febf5a5a4430","url":"https://github.com/Devolutions/UniGetUI/commit/e9e77141aac36f148bc7a4f41097febf5a5a4430","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: PR description attribution","ref":"b5635e66a4a6be2f3087bfd769973b8ec2a64f8a","url":"https://github.com/Devolutions/UniGetUI/commit/b5635e66a4a6be2f3087bfd769973b8ec2a64f8a","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: PR description attribution","ref":"2a33249f1bcd20c011adb2ad9bbe5809ffa0719f","url":"https://github.com/Devolutions/UniGetUI/commit/2a33249f1bcd20c011adb2ad9bbe5809ffa0719f","weight":0.9},{"kind":"attributed-commit","description":"GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot'","ref":"01f1c92e4459b1febd1c54d576e19ee84b0373b2","url":"https://github.com/Devolutions/UniGetUI/commit/01f1c92e4459b1febd1c54d576e19ee84b0373b2","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: PR description attribution","ref":"0e8014e13e898a0dcc87ed21285344951aecb572","url":"https://github.com/Devolutions/UniGetUI/commit/0e8014e13e898a0dcc87ed21285344951aecb572","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: PR description attribution","ref":"09dd1a903dadb952ffda7014ccc501f4e3adfad3","url":"https://github.com/Devolutions/UniGetUI/commit/09dd1a903dadb952ffda7014ccc501f4e3adfad3","weight":0.9}],"data":{"attributed_loc_by_commit":{"0fc96bf94c9e43e9d30bed233810cf3aac04d0c7":0,"23e87c15b6fdeec9473517aa4c9ba8d1d59dbb81":297,"6022db2c5c78e9941c04ae046dafbe4fcd245e22":405,"c2e859071d4723bfce504ba2619b130d281e1747":22,"40eab0f7a8254fe29629621646476c9f13aa7a08":511,"5a7221db8e43020fc7468c240874dec656fbcc25":276,"dcc1b16a0331b63f59e93d8daa6cb2bd118348bc":181,"69b1954951e6f9b305b35cdf795cc70ca1df9fcf":353,"13f338c0525b0409164ec9dc8ed077d13c89d125":6045,"0e7c2bdce1fd3a9d78e8889aa68b8a962fe3678a":0,"8bf62356b019b774249f667fdaef0fe52136a9e6":57,"335578e4315201b53669898c7117efef185d5755":6,"a0f743bbec26e5e9893879cf724810365a09fb1a":389,"015433570efef48dc9c9b21202ba23f83001702a":76,"6088358865d6e4a59b22d8107ee67cd0ca6476ae":10,"6b3475bb79d3a6f98778b7566712abb50c7950bd":243,"1ab0e2766f77ada21d0e7201b3e7cac9c4da7cb8":195,"04b560de1335fe8d970fd955b906f96edbf3e5c7":57,"4dbcf994134ce7c2d9d1698df7abc6c1184dbb0d":60,"c3908e5820bcae82fe299cea388bfdda0ceec10b":12283,"e30694bcc6a68a711e33db98acbf5e07d1184033":19,"b1e4850c6fc6e71aa9ce120dff9999b564f8b766":0,"df20d949921d021f2f7761f9fc0f1c167745678f":0,"d521bc70392f503e620ef8a4458f9115240a2d4a":0,"a8f05f51dd499823c7c552523f8fe696abf85aa9":1410,"1c3b0357f8caf74cc416405a54c63a0a371f30b2":1,"56f0ed90ccec35cd713281ecd3a71bf387bcc653":11,"941d4198eb8f5d789681671c4d6d88d0443178dd":30,"a1d3cfb8f6326b0fb6eb16618b00e6fd703946cd":474,"9b1d7d0eab91620fc15c86b36676532095936ae3":807,"435872c41e74419b12adf3c347fa03cfd93ac93f":0,"ed1ad624169b33c86cb43ac24fb261f6ad9f8e95":0,"1f832f0503d382b3207db09e6a6e7b8bb45f5b9d":32054,"45020843b7ae31a62bd5e9bc97875bba6576306a":342,"925be424a58e54305c41c3415585c2a51870c561":15975,"db4273d50249cb62bb4b1fcd79131ac2317d77a2":34,"fd1cb3b07e8e0183b6cb03dd9f5003e4ef8a8d9d":187,"21a6c4ed124d562e84365d7ed7585a7171cd7e0e":42,"434a7b446cab047e1c4223c989f54f4803351741":89,"ee9c66136a7996a4b14c51f5d3fc1fb904bedaf9":0,"643e6fab7d91547aeeea45d7ed929f617ec013ac":99,"acca29674980625c9eb9d84100b6bcf92603622a":1105,"e8f338dc1f4ed9ebaf9aa0d3a6e250d72efb5e1b":0,"716e83073b34395b327c7eeee8a855a8a0f74375":1029,"c08ea86e90282ad5be03cb9149e7ddfc9807afb7":55,"1757d479f07475b6c33017a0d93f642079b7bb55":0,"5a072934dbd2b00e41995f636863fdff2c80eb67":8,"83efec6156d01bd67cab4213c79dd7150d92bc08":4176,"ea19cf29009c5d9921cb3e2d3ac7782ba3e31702":22,"8765b3451788cf342cb9f20af37ec506248665cb":137,"1f139e504132a793cf25f5ba91083abdbf4e4e42":1670,"72c7a4b4c3d02cfd827849428045a093d81ab2c1":59,"2de30922ad4f0b9db4f16518574bbd99cb0dc03d":300,"f9aff294f0d1f54e5384626a703d95c112627828":9,"1badf3704e964a0078998e6e77a4ce4e8871ce25":428,"1d9fea30e2d2157fe0f4a0dcf6d15324087c86ec":548,"5bf948249488fae3498a78db20d7cf89e2454867":138,"6ed7aa6800078f99a192a1c5c21297b9d489580d":327,"8a75b7617992c0c2f5224fe78214bae4e6539315":0,"cc726cdb01047cf96b5ff86e2be1218b6e5634f2":21,"d468451141f49e845c85d4e0ec8e313f458694ba":3446,"c6400a4d705c6a06917572b34ee4ad8da7582039":108,"a60306a6ca157eef9b2d268467981ace22ccf19d":0,"9a9bc8823ef7fabd9e3d3765e2f71552f991556a":152,"10412d19c177bca3ad9b05664fb85808a6ccd60b":458,"fb36408236db75bcef7ad41676046f8d84867f8c":1,"3ffdf46a52e9cde95b3964069d6fb750192dceb3":362,"e5cef464b24a4a39f8f72cb4c88e3b74a911985c":11,"09dd1a903dadb952ffda7014ccc501f4e3adfad3":0,"0e8014e13e898a0dcc87ed21285344951aecb572":389,"01f1c92e4459b1febd1c54d576e19ee84b0373b2":1432,"2a33249f1bcd20c011adb2ad9bbe5809ffa0719f":928,"b5635e66a4a6be2f3087bfd769973b8ec2a64f8a":160,"e9e77141aac36f148bc7a4f41097febf5a5a4430":499,"403888a1c4ea8ed81ea6892462039bd45c0a811e":1202,"3f9d53d649c5464ff4d4c59e6e955a4a30f15b5f":488,"8edcfa8d9548f60824177990e8dde9b51d748ae8":201,"dc85cd83f1e6b921951f0fc5f654152b9d26209d":118,"97614e2636c3ef84c66866d3cfefe31c44ae6dd7":0,"b0cf6ab87929598a760a0cfe33a9f4fc135b84a4":35200,"d10a636abf1c00d622ef695144bde268df16bafd":865,"78fdd77f0372be04004f6d32ba668d7e8d754233":573,"312625587403a86f3fc15e35171791b878cc5596":345,"7a023eef0d87e29ae3d49a76ec637a3644f77b24":1425,"ba1efa9febe28287b0e0842e4305c7e19a329168":312,"f14f21aeca694e10c90d5f202adcf2d4cfcc5322":565,"02a9e7f5570218523d566b6129aaf1d801b05b86":141,"89862a25a42058be0671f450cc0bca1ca1639186":0,"07300b221576a1cbfdce3b3080bd5db16189fa17":30808,"0eb83d8c632113fdced2928dbf017ad89903311e":13,"690c213096ff6c6d4d63254c4dc68a1cf9c97d24":229,"d2a052af567bcc2a175a4203e63b713eabb91d03":1317,"da6be7b86100302a79a208e7ab4d5c6fcd695fd5":95},"tools":{"github-copilot":{"name":"GitHub Copilot coding agent","commits":41,"loc":145483,"first_seen":1750014914,"last_seen":1794598277},"jules":{"name":"Jules","commits":2,"loc":702,"first_seen":1751902796,"last_seen":1751903900},"openai-codex":{"name":"OpenAI Codex","commits":1,"loc":6,"first_seen":1776865788,"last_seen":1776865788},"claude-code":{"name":"Claude Code","commits":52,"loc":71309,"first_seen":1778601311,"last_seen":1794595777}},"monthly":{"2021-06":{"loc":1521,"attributed_loc":0},"2021-07":{"loc":812,"attributed_loc":0},"2021-09":{"loc":23,"attributed_loc":0},"2021-10":{"loc":188,"attributed_loc":0},"2022-05":{"loc":3174,"attributed_loc":0},"2022-06":{"loc":777,"attributed_loc":0},"2022-07":{"loc":406,"attributed_loc":0},"2022-08":{"loc":2706,"attributed_loc":0},"2022-09":{"loc":4717,"attributed_loc":0},"2022-10":{"loc":3665,"attributed_loc":0},"2022-11":{"loc":825,"attributed_loc":0},"2022-12":{"loc":2266,"attributed_loc":0},"2023-01":{"loc":16512,"attributed_loc":0},"2023-02":{"loc":1289,"attributed_loc":0},"2023-03":{"loc":515,"attributed_loc":0},"2023-04":{"loc":4027,"attributed_loc":0},"2023-05":{"loc":16527,"attributed_loc":0},"2023-06":{"loc":9252,"attributed_loc":0},"2023-07":{"loc":601,"attributed_loc":0},"2023-08":{"loc":298,"attributed_loc":0},"2023-09":{"loc":15361,"attributed_loc":0},"2023-10":{"loc":2867,"attributed_loc":0},"2023-11":{"loc":3177,"attributed_loc":0},"2023-12":{"loc":6254,"attributed_loc":0},"2024-01":{"loc":32749,"attributed_loc":0},"2024-02":{"loc":14749,"attributed_loc":0},"2024-03":{"loc":61456,"attributed_loc":0},"2024-04":{"loc":12183,"attributed_loc":0},"2024-05":{"loc":4210,"attributed_loc":0},"2024-06":{"loc":8101,"attributed_loc":0},"2024-07":{"loc":10363,"attributed_loc":0},"2024-08":{"loc":3471,"attributed_loc":0},"2024-09":{"loc":4145,"attributed_loc":0},"2024-10":{"loc":1620,"attributed_loc":0},"2024-11":{"loc":5466,"attributed_loc":0},"2024-12":{"loc":5246,"attributed_loc":0},"2025-01":{"loc":2213,"attributed_loc":0},"2025-02":{"loc":11353,"attributed_loc":0},"2025-03":{"loc":3534,"attributed_loc":0},"2025-04":{"loc":2378,"attributed_loc":0},"2025-05":{"loc":1985,"attributed_loc":0},"2025-06":{"loc":3833,"attributed_loc":0},"2025-07":{"loc":6909,"attributed_loc":702},"2025-08":{"loc":350,"attributed_loc":0},"2025-09":{"loc":1154,"attributed_loc":0},"2025-10":{"loc":420,"attributed_loc":0},"2025-11":{"loc":0,"attributed_loc":0},"2025-12":{"loc":0,"attributed_loc":0},"2026-01":{"loc":239,"attributed_loc":0},"2026-02":{"loc":21,"attributed_loc":0},"2026-03":{"loc":48452,"attributed_loc":22},"2026-04":{"loc":21376,"attributed_loc":7904},"2026-05":{"loc":22631,"attributed_loc":14268},"2026-06":{"loc":7147,"attributed_loc":11},"2026-07":{"loc":11063,"attributed_loc":30},"2026-08":{"loc":15704,"attributed_loc":1281},"2026-09":{"loc":61622,"attributed_loc":32396},"2026-10":{"loc":64050,"attributed_loc":30622},"2026-11":{"loc":92560,"attributed_loc":77679}}},"error":null},{"analyzer":"ai-artifacts","pillar":"ai_provenance","status":"ok","tool_version":"signatures-v1","metrics":{"artifacts":3.0,"workflow_agents":0.0,"tools_configured":2.0,"earliest_adoption":1773149582.0},"findings":[],"evidence":[{"kind":"ai-artifact","description":".claude/skills (claude-code configuration)","ref":".claude/skills","url":"https://github.com/Devolutions/UniGetUI/blob/da6be7b86100302a79a208e7ab4d5c6fcd695fd5/.claude/skills","weight":0.5},{"kind":"ai-artifact","description":"CLAUDE.md (claude-code configuration)","ref":"CLAUDE.md","url":"https://github.com/Devolutions/UniGetUI/blob/da6be7b86100302a79a208e7ab4d5c6fcd695fd5/CLAUDE.md","weight":0.5},{"kind":"ai-artifact","description":"AGENTS.md (generic-agent configuration)","ref":"AGENTS.md","url":"https://github.com/Devolutions/UniGetUI/blob/da6be7b86100302a79a208e7ab4d5c6fcd695fd5/AGENTS.md","weight":0.5}],"data":{"artifacts":[{"tool":"claude-code","path":".claude/skills","added_at":1776691756},{"tool":"claude-code","path":"CLAUDE.md","added_at":1776691756},{"tool":"generic-agent","path":"AGENTS.md","added_at":1773149582}],"workflows":[],"tools":["claude-code","generic-agent"]},"error":null},{"analyzer":"ai-velocity","pillar":"ai_provenance","status":"ok","tool_version":"prov-5","metrics":{"work_units":2137.0,"flagged_units":18.0,"pre_ai_era_bursts":0.0,"pre_ai_era_measured_loc":1521.0,"pre_ai_era_burst_loc":0.0,"measured_loc":362361.0,"flagged_loc":62842.0,"flagged_loc_share":0.17342374041356548,"max_loc_per_hour":4148.860885219443,"median_loc_per_hour":65.0,"pr_timed_units":466.0,"excluded_import_loc":278044.0},"findings":[],"evidence":[{"kind":"velocity-burst","description":"18,565 lines of first-party code in ~4.5h (4,149 lines/hour, 3 commit session)","ref":"3e9396a68d8ff87c1ae1aa9bb997c9389912849e","url":"https://github.com/Devolutions/UniGetUI/commit/3e9396a68d8ff87c1ae1aa9bb997c9389912849e","weight":0.6},{"kind":"velocity-burst","description":"1,029 lines of first-party code in ~0.5h (1,945 lines/hour, PR #5570)","ref":"716e83073b34395b327c7eeee8a855a8a0f74375","url":"https://github.com/Devolutions/UniGetUI/commit/716e83073b34395b327c7eeee8a855a8a0f74375","weight":0.5833700787401574},{"kind":"velocity-burst","description":"3,609 lines of first-party code in ~3.0h (1,199 lines/hour, 7 commit session)","ref":"672f0e1fdc2952ef0b9d94391cd7c764c09f7cb2","url":"https://github.com/Devolutions/UniGetUI/commit/672f0e1fdc2952ef0b9d94391cd7c764c09f7cb2","weight":0.35966780474301},{"kind":"velocity-burst","description":"1,347 lines of first-party code in ~1.2h (1,082 lines/hour, 5 commit session)","ref":"e9caff6225eea39b69ce3f9d6de1f45273923ecb","url":"https://github.com/Devolutions/UniGetUI/commit/e9caff6225eea39b69ce3f9d6de1f45273923ecb","weight":0.32465074760098184},{"kind":"velocity-burst","description":"3,883 lines of first-party code in ~4.0h (971 lines/hour, 1 commit session)","ref":"02e0fa0a2c4944490daaab95f1e1fa6b88e0ffe4","url":"https://github.com/Devolutions/UniGetUI/commit/02e0fa0a2c4944490daaab95f1e1fa6b88e0ffe4","weight":0.291225},{"kind":"velocity-burst","description":"1,212 lines of first-party code in ~1.3h (962 lines/hour, 1 commit session)","ref":"36affc2c33eb8071a72014676ff81ad2a5da9278","url":"https://github.com/Devolutions/UniGetUI/commit/36affc2c33eb8071a72014676ff81ad2a5da9278","weight":0.2885714285714286},{"kind":"velocity-burst","description":"1,617 lines of first-party code in ~1.8h (917 lines/hour, 1 commit session)","ref":"e295564e3ed67e8eb712f974337db10f1abf9c6d","url":"https://github.com/Devolutions/UniGetUI/commit/e295564e3ed67e8eb712f974337db10f1abf9c6d","weight":0.2750173228346457},{"kind":"velocity-burst","description":"3,895 lines of first-party code in ~4.5h (870 lines/hour, 4 commit session)","ref":"7bde55f5e5143bab08e1db05c28902a56186c1ba","url":"https://github.com/Devolutions/UniGetUI/commit/7bde55f5e5143bab08e1db05c28902a56186c1ba","weight":0.2609067791353966},{"kind":"velocity-burst","description":"2,193 lines of first-party code in ~2.7h (798 lines/hour, 1 commit session)","ref":"b574313325787488e8b8a860d030024800e38824","url":"https://github.com/Devolutions/UniGetUI/commit/b574313325787488e8b8a860d030024800e38824","weight":0.2395266990291262},{"kind":"velocity-burst","description":"5,200 lines of first-party code in ~6.6h (784 lines/hour, 15 commit session)","ref":"e8f4ab978a2724648187d9fdf51e46b0b9b0e8a9","url":"https://github.com/Devolutions/UniGetUI/commit/e8f4ab978a2724648187d9fdf51e46b0b9b0e8a9","weight":0.23515618457415627},{"kind":"velocity-burst","description":"1,459 lines of first-party code in ~1.9h (749 lines/hour, 3 commit session)","ref":"c899c03c5916b73f442cc030a8a750445c3c950e","url":"https://github.com/Devolutions/UniGetUI/commit/c899c03c5916b73f442cc030a8a750445c3c950e","weight":0.22465355004277157},{"kind":"velocity-burst","description":"3,326 lines of first-party code in ~4.9h (676 lines/hour, 5 commit session)","ref":"54042bc37ae398f25788bfa95f086a01649c7ef2","url":"https://github.com/Devolutions/UniGetUI/commit/54042bc37ae398f25788bfa95f086a01649c7ef2","weight":0.202770533446232},{"kind":"velocity-burst","description":"1,482 lines of first-party code in ~2.3h (654 lines/hour, 4 commit session)","ref":"7172441328e22561e1e339fe08b763c5e0aff1de","url":"https://github.com/Devolutions/UniGetUI/commit/7172441328e22561e1e339fe08b763c5e0aff1de","weight":0.1960509554140127},{"kind":"velocity-burst","description":"4,199 lines of first-party code in ~7.2h (580 lines/hour, PR #5330)","ref":"5bb8224f23e061786a280845c6adb0e5444ba49e","url":"https://github.com/Devolutions/UniGetUI/commit/5bb8224f23e061786a280845c6adb0e5444ba49e","weight":0.17401841903300078},{"kind":"velocity-burst","description":"3,446 lines of first-party code in ~6.1h (561 lines/hour, PR #5620)","ref":"d468451141f49e845c85d4e0ec8e313f458694ba","url":"https://github.com/Devolutions/UniGetUI/commit/d468451141f49e845c85d4e0ec8e313f458694ba","weight":0.1684094302909634}],"data":{"flagged_loc_by_commit":{"bfcc55710e2fd9bdc6086d867dd49efda99bfb62":1243,"2608b5116ca27e3029d7fbfdfcf66c0aa9414b16":60,"37e5022ba75fc2fff9c8ccf10d976877fda8c74f":3,"7e4dcc1470c83b5aaf442d63522c993923361ef9":39,"e9caff6225eea39b69ce3f9d6de1f45273923ecb":2,"36affc2c33eb8071a72014676ff81ad2a5da9278":1212,"7ddf60165c2c3de7ae45f51add39944522de94a4":1381,"a451e9ef98feb900845f77a4d7e17d6f0310a49c":74,"c899c03c5916b73f442cc030a8a750445c3c950e":4,"02e0fa0a2c4944490daaab95f1e1fa6b88e0ffe4":3883,"5dcd3114a751af173bf95421548fb30eab841b9a":3582,"b89bf850791060800baaf8a7807df379bbd385fa":1,"ed06bbe8e7a30a26dcd7ae0dcea84b34d43e8357":4,"51578ab8558c8cc9269ed1de0b4318d92e12cfbc":18,"e2fcfd7d47515183bcb1517a5c8d7210728e085b":2,"bef5326a164509f9094ec0c736a30ed83ca15267":1,"672f0e1fdc2952ef0b9d94391cd7c764c09f7cb2":1,"043a494feb9df26c7e35ed4c066e3cb95d166b09":14,"3066e215eaed161180588b873504309889fe2a07":2,"4ba9b22fbe7520e0073d9926dad5d1e3d7192f47":5,"743501c686fb96da6ebd312913a58a1db6668dc8":74,"8d5657645f2b9e0b25b58987c3406503f66ab002":1490,"cd6ab38b25f899deb4eef9bd9418866413b8d0af":277,"12aed554576196dd1e4bd00e089e32acbdca5964":13,"f815e690e44510e86f3a32ae4baceb1f7624e55b":2289,"90259869c20c1d0ac3b50f8b5ad2e91e2d95afa9":123,"fe2732e2f2464238afa290db84ce8d0827aaa78a":8,"3b901aba4be38ea4cda6741a7d4ea8b8abd5edb4":9,"e2b13d3fc72a3fc1625163af75e2f0678edf27be":210,"8befaed74ab0c268351472e172b2bc7f3e8a29b5":7,"402d230fd11866e89815b54f8f48d5312d78bfbb":153,"e8f4ab978a2724648187d9fdf51e46b0b9b0e8a9":526,"9bd12b613d065409319758670e1169b94a6919d0":2994,"7871b15ffd0f9d662d1059132a5fff26234dcbc0":102,"c58de2dd29d2ea363f4213b0e57294cdc4e1f4a2":123,"afc708122c0d6d113ad7dea862867c538d894ac6":52,"54042bc37ae398f25788bfa95f086a01649c7ef2":55,"d77819b273e22b7d476c958fb4951a2eeb5477c0":18505,"9e1864a046db8a3ee02ac28b7e7fe5ead8643234":19,"3e9396a68d8ff87c1ae1aa9bb997c9389912849e":41,"e295564e3ed67e8eb712f974337db10f1abf9c6d":1617,"e56bac908f3784c19a3fd4c7e1ccfce005c28c16":3865,"b2087778b230963936f0470e8e65e15c6aebf1f0":14,"10190f4818bda10e733d3198e6a79692187395e0":13,"7bde55f5e5143bab08e1db05c28902a56186c1ba":3,"267fd48144f3971193ef6cdd3785d665105a0c97":2115,"26c3e0d59e7fafc75eaef1df8523b946a5ba1e99":2031,"b574313325787488e8b8a860d030024800e38824":2193,"9407fe0a05d8bf3eacc9d8fc8bd924b95d7fd10d":1065,"a19cd0fd548e0fcb5a1c06e078f15d4913098969":187,"47b336b1fc4ec8241d5f1360ac20d4b7065ce750":198,"7172441328e22561e1e339fe08b763c5e0aff1de":32,"f847b9b85a7ca913b6a14e89b2a9fd84e9cf1e3d":2234,"716e83073b34395b327c7eeee8a855a8a0f74375":1029,"d468451141f49e845c85d4e0ec8e313f458694ba":3446,"5bb8224f23e061786a280845c6adb0e5444ba49e":4199},"excluded_import_commits":["07300b221576a1cbfdce3b3080bd5db16189fa17","0d93c867bb06148d6f5989378d1252787fb196d8","13f338c0525b0409164ec9dc8ed077d13c89d125","1f832f0503d382b3207db09e6a6e7b8bb45f5b9d","27c3438383be5fe3e924e7366e92eea4f54a2192","38468a3113b4cab699a70a83f1f89ffd15a6cdb1","47dc9d3ec8a444c1179ac29cecb2bb3cb4fe5b3e","4f8a8209a7dfee97b89144cda8fae8c301a4d688","54196759d644d44aa82f852e8bce3507fc720a59","66d193575003c50ac42e103f16e95abce5b56501","925be424a58e54305c41c3415585c2a51870c561","951a916bde4fe00d8818b389252aff46fa1ea25d","b00460a668b462a352bfc00f3525994a49b9ca5e","b0cf6ab87929598a760a0cfe33a9f4fc135b84a4","b2713c68d15647ba6009ce5fc9c4db93227d64fd","bd528b15c179f9069ed96f620cfe22041801fe51","c3908e5820bcae82fe299cea388bfdda0ceec10b","cb987a43dadaa539ac487040ae11ae9e17f4ac54"]},"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":3752.7},"findings":[],"evidence":[],"data":{"releases":[{"from":"2.0.0-beta2","to":"2.0.0-beta3","loc":5156,"days":13.13,"loc_per_day":392.6,"flagged":false},{"from":"2.0.0-beta3","to":"2.0.0-rc1","loc":4459,"days":18.0,"loc_per_day":247.7,"flagged":false},{"from":"2.0.0-rc1","to":"2.0.0","loc":3700,"days":1.9,"loc_per_day":1952.1,"flagged":false},{"from":"2.0.0","to":"2.0.1","loc":40,"days":0.91,"loc_per_day":43.9,"flagged":false},{"from":"2.0.1","to":"2.1.0-beta","loc":1550,"days":26.18,"loc_per_day":59.2,"flagged":false},{"from":"2.1.0-beta","to":"2.0.2","loc":13,"days":4.72,"loc_per_day":2.8,"flagged":false},{"from":"2.0.2","to":"2.0.3-beta","loc":39,"days":12.58,"loc_per_day":3.1,"flagged":false},{"from":"2.0.3-beta","to":"2.0.3","loc":67,"days":0.61,"loc_per_day":110.2,"flagged":false},{"from":"2.0.3","to":"2.1.0-beta2","loc":2451,"days":48.25,"loc_per_day":50.8,"flagged":false},{"from":"2.1.0-beta2","to":"2.1.0","loc":7270,"days":5.93,"loc_per_day":1226.6,"flagged":false},{"from":"2.1.0","to":"2.1.1","loc":752,"days":16.89,"loc_per_day":44.5,"flagged":false},{"from":"2.1.1","to":"2.1.2-beta","loc":5084,"days":51.11,"loc_per_day":99.5,"flagged":false},{"from":"2.1.2-beta","to":"2.1.2-beta2","loc":1575,"days":12.01,"loc_per_day":131.1,"flagged":false},{"from":"2.1.2-beta2","to":"2.2.0-beta","loc":4891,"days":10.07,"loc_per_day":485.9,"flagged":false},{"from":"2.2.0-beta","to":"2.2.0","loc":3,"days":1.78,"loc_per_day":1.7,"flagged":false},{"from":"2.2.0","to":"3.0.0-alpha0","loc":33518,"days":50.14,"loc_per_day":668.5,"flagged":false},{"from":"3.0.0-alpha0","to":"3.0.0-alpha1","loc":3062,"days":7.2,"loc_per_day":425.4,"flagged":false},{"from":"3.0.0-alpha1","to":"3.0.0-alpha2","loc":2709,"days":6.04,"loc_per_day":448.5,"flagged":false},{"from":"3.0.0-alpha2","to":"3.0.0-beta0","loc":1865,"days":5.05,"loc_per_day":369.7,"flagged":false},{"from":"3.0.0-beta0","to":"3.0.0-beta1","loc":676,"days":5.97,"loc_per_day":113.3,"flagged":false},{"from":"3.0.0-beta1","to":"3.0.0","loc":653,"days":5.59,"loc_per_day":116.9,"flagged":false},{"from":"3.0.0","to":"3.0.1","loc":241,"days":3.09,"loc_per_day":78.0,"flagged":false},{"from":"3.0.1","to":"3.0.2","loc":125,"days":26.0,"loc_per_day":4.8,"flagged":false},{"from":"3.0.2","to":"3.1.0-alpha0","loc":21365,"days":37.93,"loc_per_day":563.3,"flagged":false},{"from":"3.1.0-alpha0","to":"3.1.0-alpha1","loc":2004,"days":14.98,"loc_per_day":133.8,"flagged":false},{"from":"3.1.0-alpha1","to":"3.1.0-beta0","loc":4468,"days":22.37,"loc_per_day":199.8,"flagged":false},{"from":"3.1.0-beta0","to":"3.1.0-beta1","loc":399,"days":5.64,"loc_per_day":70.7,"flagged":false},{"from":"3.1.0-beta1","to":"3.1.0-beta2","loc":3771,"days":1.0,"loc_per_day":3752.7,"flagged":false},{"from":"3.1.0-beta2","to":"3.1.0","loc":94,"days":0.84,"loc_per_day":111.6,"flagged":false},{"from":"3.1.0","to":"3.1.1-beta0","loc":420,"days":2.59,"loc_per_day":162.3,"flagged":false},{"from":"3.1.1-beta0","to":"3.1.1-beta1","loc":1429,"days":1.96,"loc_per_day":728.4,"flagged":false},{"from":"3.1.1-beta1","to":"3.1.1-beta2","loc":330,"days":12.0,"loc_per_day":27.5,"flagged":false},{"from":"3.1.1-beta2","to":"3.1.1-beta3","loc":5292,"days":3.02,"loc_per_day":1754.4,"flagged":false},{"from":"3.1.1-beta3","to":"3.1.1","loc":531,"days":5.66,"loc_per_day":93.8,"flagged":false},{"from":"3.1.1","to":"3.1.2-beta0","loc":3765,"days":33.1,"loc_per_day":113.8,"flagged":false},{"from":"3.1.2-beta0","to":"3.1.2-beta1","loc":1053,"days":4.92,"loc_per_day":214.1,"flagged":false},{"from":"3.1.2-beta1","to":"3.1.2-beta2","loc":721,"days":11.09,"loc_per_day":65.0,"flagged":false},{"from":"3.1.2-beta2","to":"3.1.2-beta3","loc":3175,"days":11.7,"loc_per_day":271.4,"flagged":false},{"from":"3.1.2-beta3","to":"3.1.2-beta4","loc":1099,"days":19.52,"loc_per_day":56.3,"flagged":false},{"from":"3.1.2-beta4","to":"3.1.2","loc":35,"days":3.05,"loc_per_day":11.5,"flagged":false},{"from":"3.1.2","to":"3.1.4-beta1","loc":3695,"days":29.82,"loc_per_day":123.9,"flagged":false},{"from":"3.1.4-beta1","to":"3.1.4-beta2","loc":2631,"days":20.91,"loc_per_day":125.8,"flagged":false},{"from":"3.1.4-beta2","to":"3.1.4","loc":604,"days":8.01,"loc_per_day":75.4,"flagged":false},{"from":"3.1.4","to":"3.1.5","loc":577,"days":3.74,"loc_per_day":154.2,"flagged":false},{"from":"3.1.5","to":"3.1.6-beta1","loc":3720,"days":20.06,"loc_per_day":185.4,"flagged":false},{"from":"3.1.6-beta1","to":"3.1.6-beta2","loc":1728,"days":11.43,"loc_per_day":151.2,"flagged":false},{"from":"3.1.6-beta2","to":"3.1.6-beta3","loc":356,"days":8.53,"loc_per_day":41.8,"flagged":false},{"from":"3.1.6-beta3","to":"3.1.6-beta4","loc":271,"days":5.01,"loc_per_day":54.1,"flagged":false},{"from":"3.1.6-beta4","to":"3.1.6","loc":881,"days":2.03,"loc_per_day":434.4,"flagged":false},{"from":"3.1.6","to":"3.1.7-beta1","loc":1054,"days":9.85,"loc_per_day":107.0,"flagged":false},{"from":"3.1.7-beta1","to":"3.1.7","loc":1140,"days":12.57,"loc_per_day":90.7,"flagged":false},{"from":"3.1.7","to":"3.1.8-beta1","loc":2139,"days":7.98,"loc_per_day":268.1,"flagged":false},{"from":"3.1.8-beta1","to":"3.1.8","loc":458,"days":4.38,"loc_per_day":104.6,"flagged":false},{"from":"3.1.8","to":"3.2.0-beta1","loc":2011,"days":25.36,"loc_per_day":79.3,"flagged":false},{"from":"3.2.0-beta1","to":"3.2.0-beta2","loc":882,"days":9.11,"loc_per_day":96.8,"flagged":false},{"from":"3.2.0-beta2","to":"3.2.0-beta3","loc":506,"days":10.58,"loc_per_day":47.8,"flagged":false},{"from":"3.2.0-beta3","to":"3.2.0-beta4","loc":258,"days":4.86,"loc_per_day":53.1,"flagged":false},{"from":"3.2.0-beta4","to":"3.2.0","loc":56,"days":5.4,"loc_per_day":10.4,"flagged":false},{"from":"3.2.0","to":"3.2.1-beta1","loc":5397,"days":43.83,"loc_per_day":123.1,"flagged":false},{"from":"3.2.1-beta1","to":"3.2.1-beta2","loc":93,"days":8.36,"loc_per_day":11.1,"flagged":false},{"from":"3.2.1-beta2","to":"3.2.1-beta3","loc":878,"days":6.8,"loc_per_day":129.1,"flagged":false},{"from":"3.2.1-beta3","to":"3.2.1-beta4","loc":2987,"days":5.09,"loc_per_day":586.6,"flagged":false},{"from":"3.2.1-beta4","to":"3.2.1-beta5","loc":892,"days":3.88,"loc_per_day":229.8,"flagged":false},{"from":"3.2.1-beta5","to":"3.3.0","loc":1828,"days":5.12,"loc_per_day":357.1,"flagged":false},{"from":"3.3.0","to":"3.3.1-beta2","loc":150,"days":8.07,"loc_per_day":18.6,"flagged":false},{"from":"3.3.1-beta2","to":"3.3.1","loc":471,"days":2.82,"loc_per_day":166.8,"flagged":false},{"from":"3.3.1","to":"3.3.2","loc":344,"days":25.2,"loc_per_day":13.7,"flagged":false},{"from":"3.3.2","to":"3.3.3","loc":957,"days":11.74,"loc_per_day":81.5,"flagged":false},{"from":"3.3.3","to":"3.3.4","loc":197,"days":7.33,"loc_per_day":26.9,"flagged":false},{"from":"3.3.4","to":"3.3.5","loc":2,"days":1.0,"loc_per_day":2.0,"flagged":false},{"from":"3.3.5","to":"3.3.6","loc":425,"days":47.93,"loc_per_day":8.9,"flagged":false},{"from":"3.3.6","to":"3.3.7-beta1","loc":239,"days":88.65,"loc_per_day":2.7,"flagged":false},{"from":"3.3.7-beta1","to":"3.3.7","loc":20,"days":4.03,"loc_per_day":5.0,"flagged":false},{"from":"3.3.7","to":"v2026.1.0","loc":1238,"days":37.32,"loc_per_day":33.2,"flagged":false},{"from":"v2026.1.0","to":"v2026.1.1","loc":3746,"days":5.97,"loc_per_day":627.0,"flagged":false},{"from":"v2026.1.1","to":"v2026.1.2","loc":0,"days":0.29,"loc_per_day":0.0,"flagged":false},{"from":"v2026.1.2","to":"v2026.1.3","loc":557,"days":1.73,"loc_per_day":322.4,"flagged":false},{"from":"v2026.1.3","to":"v2026.1.4","loc":6834,"days":19.8,"loc_per_day":345.1,"flagged":false},{"from":"v2026.1.4","to":"v2026.1.5","loc":5038,"days":8.16,"loc_per_day":617.5,"flagged":false},{"from":"v2026.1.5","to":"v2026.1.6","loc":61,"days":0.98,"loc_per_day":62.6,"flagged":false},{"from":"v2026.1.6","to":"v2026.1.7","loc":3278,"days":10.9,"loc_per_day":300.7,"flagged":false},{"from":"v2026.1.7","to":"v2026.1.8","loc":8251,"days":7.04,"loc_per_day":1172.2,"flagged":false},{"from":"v2026.1.8","to":"v2026.1.9","loc":580,"days":1.97,"loc_per_day":294.6,"flagged":false},{"from":"v2026.1.9","to":"v2026.1.10","loc":4233,"days":7.23,"loc_per_day":585.5,"flagged":false},{"from":"v2026.1.10","to":"v2026.1.11","loc":2942,"days":13.64,"loc_per_day":215.6,"flagged":false},{"from":"v2026.1.11","to":"v2026.2.0","loc":808,"days":6.12,"loc_per_day":132.0,"flagged":false},{"from":"v2026.2.0","to":"v2026.2.1","loc":2208,"days":12.88,"loc_per_day":171.5,"flagged":false},{"from":"v2026.2.1","to":"v2026.2.2","loc":3330,"days":8.29,"loc_per_day":401.7,"flagged":false},{"from":"v2026.2.2","to":"v2026.2.3","loc":4878,"days":20.83,"loc_per_day":234.2,"flagged":false},{"from":"v2026.2.3","to":"v2026.2.3.1","loc":259,"days":0.91,"loc_per_day":285.1,"flagged":false},{"from":"v2026.2.3.1","to":"v2026.2.4","loc":6,"days":0.04,"loc_per_day":144.0,"flagged":false},{"from":"v2026.2.4","to":"v2026.2.5","loc":754,"days":1.18,"loc_per_day":641.6,"flagged":false},{"from":"v2026.2.5","to":"v2026.2.6","loc":5612,"days":13.07,"loc_per_day":429.5,"flagged":false},{"from":"v2026.2.6","to":"v2026.2.7","loc":220,"days":1.79,"loc_per_day":122.9,"flagged":false},{"from":"v2026.2.7","to":"v2026.3.0","loc":22788,"days":45.27,"loc_per_day":503.4,"flagged":false},{"from":"v2026.3.0","to":"v2026.3.1","loc":19963,"days":23.88,"loc_per_day":835.9,"flagged":false},{"from":"v2026.3.1","to":"v2026.3.2","loc":9128,"days":7.01,"loc_per_day":1301.3,"flagged":false},{"from":"v2026.3.2","to":"v2026.3.3","loc":21145,"days":14.04,"loc_per_day":1505.6,"flagged":false},{"from":"v2026.3.3","to":"v2026.3.4","loc":25356,"days":14.04,"loc_per_day":1805.8,"flagged":false}]},"error":null},{"analyzer":"ai-stylometry","pillar":"ai_provenance","status":"ok","tool_version":null,"metrics":{"lines_scanned":206797.0,"index":0.044,"count:narrated_steps":1.0,"per_kloc:narrated_steps":0.005,"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.039,"files:emoji_in_code":8.0,"count:assistant_voice":2.0,"per_kloc:assistant_voice":0.01,"files:assistant_voice":2.0},"findings":[],"evidence":[{"kind":"stylometry:assistant_voice","description":"assistant-style phrasing left in code: /// <param name=\"Name\">Skill name (as requested, or as installed when resolved).</param>","ref":"src/UniGetUI.AgentSkills/Api/Models.cs:226","url":"https://github.com/Devolutions/UniGetUI/blob/da6be7b86100302a79a208e7ab4d5c6fcd695fd5/src/UniGetUI.AgentSkills/Api/Models.cs#L226","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: //    first, ascending).","ref":"src/UniGetUI.AgentSkills/Json.cs:6","url":"https://github.com/Devolutions/UniGetUI/blob/da6be7b86100302a79a208e7ab4d5c6fcd695fd5/src/UniGetUI.AgentSkills/Json.cs#L6","weight":0.0},{"kind":"stylometry:assistant_voice","description":"assistant-style phrasing left in code: \"Cannot update vcpkg port files as requested: the VCPKG_ROOT environment variable or custom vcpkg root setting was not s","ref":"src/UniGetUI.PackageEngine.Managers.Vcpkg/Vcpkg.cs:424","url":"https://github.com/Devolutions/UniGetUI/blob/da6be7b86100302a79a208e7ab4d5c6fcd695fd5/src/UniGetUI.PackageEngine.Managers.Vcpkg/Vcpkg.cs#L424","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":4.0,"secrets_nonprod":0.0,"secrets_low_confidence":5.0},"findings":[{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in the current tree","path":"WebBasedData/screenshot-database.json","line":1504,"fingerprint":"WebBasedData/screenshot-database.json:generic-api-key:1504"},{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in the current tree","path":"WebBasedData/screenshot-database-v2.json","line":3468,"fingerprint":"WebBasedData/screenshot-database-v2.json:generic-api-key:3468"},{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in history (commit c8f13a8d26); removed from the current tree but still retrievable","path":"DataAnalysisExpert/workbook_analysis.json","line":8495,"fingerprint":"c8f13a8d261ce3590977fd8924597d80673aeb06:DataAnalysisExpert/workbook_analysis.json:generic-api-key:8495"},{"rule_id":"gitleaks/sourcegraph-access-token","severity":"medium","message":"Possible sourcegraph-access-token secret in history (commit 40eab0f7a8); removed from the current tree but still retrievable","path":"WebBasedData/screenshot-database-v2.json","line":3273,"fingerprint":"40eab0f7a8254fe29629621646476c9f13aa7a08:WebBasedData/screenshot-database-v2.json:sourcegraph-access-token:3273"},{"rule_id":"gitleaks/jwt","severity":"medium","message":"Possible jwt secret in history (commit 1bded53a95); removed from the current tree but still retrievable","path":"WebBasedData/screenshot-database-v2.json","line":2085,"fingerprint":"1bded53a952f20d0c6b3d6e3d47ea50671124b93:WebBasedData/screenshot-database-v2.json:jwt:2085"},{"rule_id":"gitleaks/aws-access-token","severity":"medium","message":"Possible aws-access-token secret in history (commit 1bded53a95); removed from the current tree but still retrievable","path":"WebBasedData/screenshot-database-v2.json","line":2085,"fingerprint":"1bded53a952f20d0c6b3d6e3d47ea50671124b93:WebBasedData/screenshot-database-v2.json:aws-access-token:2085"},{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in history (commit 9bd12b613d); removed from the current tree but still retrievable","path":"wingetui/__main__.py","line":50,"fingerprint":"9bd12b613d065409319758670e1169b94a6919d0:wingetui/__main__.py:generic-api-key:50"},{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in history (commit 5aa4462bbc); removed from the current tree but still retrievable","path":"wingetui/__init__.py","line":42,"fingerprint":"5aa4462bbce2639ec63616e69f512eaddf7d8e2f:wingetui/__init__.py:generic-api-key:42"},{"rule_id":"gitleaks/sourcegraph-access-token","severity":"medium","message":"Possible sourcegraph-access-token secret in history (commit fc1a50a718); removed from the current tree but still retrievable","path":"WebBasedData/screenshot-database.json","line":4884,"fingerprint":"fc1a50a71880bc6cb84b7c4d045ec81394ba346d:WebBasedData/screenshot-database.json:sourcegraph-access-token:4884"}],"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":3.0,"findings_medium":8.0,"findings_low":0.0,"weighted_findings":7.05,"scanned_lines":194871.0,"parse_errors":4.0},"findings":[{"rule_id":"opengrep/javascript.browser.security.insecure-document-method","severity":"high","message":"User controlled data in methods like `innerHTML`, `outerHTML` or `document.write` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"src/SharedAssets/Assets/Symbols/Font/demo-files/demo.js","line":18,"fingerprint":"javascript.browser.security.insecure-document-method:src/SharedAssets/Assets/Symbols/Font/demo-files/demo.js:18"},{"rule_id":"opengrep/javascript.browser.security.insecure-innerhtml","severity":"high","message":"User controlled data in a `testDrive.innerHTML` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"src/SharedAssets/Assets/Symbols/Font/demo-files/demo.js","line":18,"fingerprint":"javascript.browser.security.insecure-innerhtml:src/SharedAssets/Assets/Symbols/Font/demo-files/demo.js:18"},{"rule_id":"opengrep/csharp.lang.security.injections.os-command-injection","severity":"high","message":"The software constructs all or part of an OS command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended OS command when it is sent to a downstream component. [confidence low]","path":"src/UniGetUI.Core.Tools/Tools.cs","line":1477,"fingerprint":"csharp.lang.security.injections.os-command-injection:src/UniGetUI.Core.Tools/Tools.cs:1477"},{"rule_id":"opengrep/csharp.lang.security.filesystem.unsafe-path-combine","severity":"medium","message":"String argument file is used to read or write data from a file via Path.Combine without direct sanitization via Path.GetFileName. If the path is user-supplied data this can lead to path traversal. [confidence medium]","path":"src/UniGetUI.Extensions.GitRepositories.Tests/GitSandbox.cs","line":81,"fingerprint":"csharp.lang.security.filesystem.unsafe-path-combine:src/UniGetUI.Extensions.GitRepositories.Tests/GitSandbox.cs:81"},{"rule_id":"opengrep/csharp.lang.security.filesystem.unsafe-path-combine","severity":"medium","message":"String argument repository is used to read or write data from a file via Path.Combine without direct sanitization via Path.GetFileName. If the path is user-supplied data this can lead to path traversal. [confidence medium]","path":"src/UniGetUI.Extensions.GitRepositories.Tests/GitSandbox.cs","line":81,"fingerprint":"csharp.lang.security.filesystem.unsafe-path-combine:src/UniGetUI.Extensions.GitRepositories.Tests/GitSandbox.cs:81"},{"rule_id":"opengrep/csharp.lang.security.filesystem.unsafe-path-combine","severity":"medium","message":"String argument directory is used to read or write data from a file via Path.Combine without direct sanitization via Path.GetFileName. If the path is user-supplied data this can lead to path traversal. [confidence medium]","path":"src/UniGetUI.Extensions.Xcode.Tests/Local/FakeXcodeBundle.cs","line":18,"fingerprint":"csharp.lang.security.filesystem.unsafe-path-combine:src/UniGetUI.Extensions.Xcode.Tests/Local/FakeXcodeBundle.cs:18"},{"rule_id":"opengrep/csharp.lang.security.filesystem.unsafe-path-combine","severity":"medium","message":"String argument name is used to read or write data from a file via Path.Combine without direct sanitization via Path.GetFileName. If the path is user-supplied data this can lead to path traversal. [confidence medium]","path":"src/UniGetUI.Extensions.Xcode.Tests/Local/FakeXcodeBundle.cs","line":18,"fingerprint":"csharp.lang.security.filesystem.unsafe-path-combine:src/UniGetUI.Extensions.Xcode.Tests/Local/FakeXcodeBundle.cs:18"},{"rule_id":"opengrep/csharp.lang.security.filesystem.unsafe-path-combine","severity":"medium","message":"String argument directory is used to read or write data from a file via Path.Combine without direct sanitization via Path.GetFileName. If the path is user-supplied data this can lead to path traversal. [confidence medium]","path":"src/UniGetUI.Extensions.Xcode.Tests/Local/FakeXcodeBundle.cs","line":23,"fingerprint":"csharp.lang.security.filesystem.unsafe-path-combine:src/UniGetUI.Extensions.Xcode.Tests/Local/FakeXcodeBundle.cs:23"},{"rule_id":"opengrep/csharp.lang.security.filesystem.unsafe-path-combine","severity":"medium","message":"String argument name is used to read or write data from a file via Path.Combine without direct sanitization via Path.GetFileName. If the path is user-supplied data this can lead to path traversal. [confidence medium]","path":"src/UniGetUI.Extensions.Xcode.Tests/Local/FakeXcodeBundle.cs","line":23,"fingerprint":"csharp.lang.security.filesystem.unsafe-path-combine:src/UniGetUI.Extensions.Xcode.Tests/Local/FakeXcodeBundle.cs:23"},{"rule_id":"opengrep/csharp.lang.security.filesystem.unsafe-path-combine","severity":"medium","message":"String argument directory is used to read or write data from a file via Path.Combine without direct sanitization via Path.GetFileName. If the path is user-supplied data this can lead to path traversal. [confidence medium]","path":"src/UniGetUI.Extensions.Xcode.Tests/Local/FakeXcodeBundle.cs","line":24,"fingerprint":"csharp.lang.security.filesystem.unsafe-path-combine:src/UniGetUI.Extensions.Xcode.Tests/Local/FakeXcodeBundle.cs:24"},{"rule_id":"opengrep/csharp.lang.security.filesystem.unsafe-path-combine","severity":"medium","message":"String argument name is used to read or write data from a file via Path.Combine without direct sanitization via Path.GetFileName. If the path is user-supplied data this can lead to path traversal. [confidence medium]","path":"src/UniGetUI.Extensions.Xcode.Tests/Local/FakeXcodeBundle.cs","line":24,"fingerprint":"csharp.lang.security.filesystem.unsafe-path-combine:src/UniGetUI.Extensions.Xcode.Tests/Local/FakeXcodeBundle.cs:24"}],"evidence":[],"data":{"rulesets":["csharp","javascript"]},"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":11.0,"findings":129.0,"findings_high":75.0,"findings_medium":12.0,"findings_low":42.0,"penalty":923.8},"findings":[{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/actions/desktop-session/action.yml","line":92,"fingerprint":"unpinned-uses:.github/actions/desktop-session/action.yml:92"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/actions/desktop-session/action.yml","line":118,"fingerprint":"unpinned-uses:.github/actions/desktop-session/action.yml:118"},{"rule_id":"zizmor/github-env","severity":"high","message":"dangerous use of environment file [confidence low]","path":".github/actions/desktop-session/action.yml","line":224,"fingerprint":"github-env:.github/actions/desktop-session/action.yml:224"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/actions/desktop-session-cleanup/action.yml","line":25,"fingerprint":"unpinned-uses:.github/actions/desktop-session-cleanup/action.yml:25"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/actions/unigetui-build/action.yml","line":21,"fingerprint":"unpinned-uses:.github/actions/unigetui-build/action.yml:21"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/actions/unigetui-build/action.yml","line":27,"fingerprint":"unpinned-uses:.github/actions/unigetui-build/action.yml:27"},{"rule_id":"zizmor/github-env","severity":"high","message":"dangerous use of environment file [confidence low]","path":".github/actions/unigetui-desktop/action.yml","line":52,"fingerprint":"github-env:.github/actions/unigetui-desktop/action.yml:52"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/agent-eval.yml","line":37,"fingerprint":"unpinned-uses:.github/workflows/agent-eval.yml:37"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/agent-eval.yml","line":91,"fingerprint":"unpinned-uses:.github/workflows/agent-eval.yml:91"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/agent-eval.yml","line":97,"fingerprint":"unpinned-uses:.github/workflows/agent-eval.yml:97"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/agent-eval.yml","line":115,"fingerprint":"unpinned-uses:.github/workflows/agent-eval.yml:115"},{"rule_id":"zizmor/dangerous-triggers","severity":"high","message":"use of fundamentally insecure workflow trigger [confidence medium]","path":".github/workflows/agent-implement-ticket.yml","line":108,"fingerprint":"dangerous-triggers:.github/workflows/agent-implement-ticket.yml:108"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/agent-implement-ticket.yml","line":142,"fingerprint":"unpinned-uses:.github/workflows/agent-implement-ticket.yml:142"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/agent-implement-ticket.yml","line":168,"fingerprint":"unpinned-uses:.github/workflows/agent-implement-ticket.yml:168"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/agent-implement-ticket.yml","line":187,"fingerprint":"unpinned-uses:.github/workflows/agent-implement-ticket.yml:187"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/agent-implement-ticket.yml","line":204,"fingerprint":"unpinned-uses:.github/workflows/agent-implement-ticket.yml:204"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/agent-implement-ticket.yml","line":210,"fingerprint":"unpinned-uses:.github/workflows/agent-implement-ticket.yml:210"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/agent-implement-ticket.yml","line":240,"fingerprint":"unpinned-uses:.github/workflows/agent-implement-ticket.yml:240"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/agent-implement-ticket.yml","line":256,"fingerprint":"unpinned-uses:.github/workflows/agent-implement-ticket.yml:256"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/agent-implement-ticket.yml","line":298,"fingerprint":"unpinned-uses:.github/workflows/agent-implement-ticket.yml:298"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/agent-implement-ticket.yml","line":304,"fingerprint":"unpinned-uses:.github/workflows/agent-implement-ticket.yml:304"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/agent-implement-ticket.yml","line":361,"fingerprint":"unpinned-uses:.github/workflows/agent-implement-ticket.yml:361"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/agent-implement-ticket.yml","line":377,"fingerprint":"unpinned-uses:.github/workflows/agent-implement-ticket.yml:377"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/agent-implement-ticket.yml","line":505,"fingerprint":"unpinned-uses:.github/workflows/agent-implement-ticket.yml:505"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/agent-implement-ticket.yml","line":536,"fingerprint":"unpinned-uses:.github/workflows/agent-implement-ticket.yml:536"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/agent-implement-ticket.yml","line":542,"fingerprint":"unpinned-uses:.github/workflows/agent-implement-ticket.yml:542"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/agent-implement-ticket.yml","line":552,"fingerprint":"unpinned-uses:.github/workflows/agent-implement-ticket.yml:552"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/agent-implement-ticket.yml","line":572,"fingerprint":"unpinned-uses:.github/workflows/agent-implement-ticket.yml:572"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/workflows/build-release.yml","line":70,"fingerprint":"template-injection:.github/workflows/build-release.yml:70"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/workflows/build-release.yml","line":90,"fingerprint":"template-injection:.github/workflows/build-release.yml:90"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/build-release.yml","line":64,"fingerprint":"unpinned-uses:.github/workflows/build-release.yml:64"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/build-release.yml","line":171,"fingerprint":"unpinned-uses:.github/workflows/build-release.yml:171"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/build-release.yml","line":187,"fingerprint":"unpinned-uses:.github/workflows/build-release.yml:187"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/build-release.yml","line":192,"fingerprint":"unpinned-uses:.github/workflows/build-release.yml:192"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/build-release.yml","line":200,"fingerprint":"unpinned-uses:.github/workflows/build-release.yml:200"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/build-release.yml","line":456,"fingerprint":"unpinned-uses:.github/workflows/build-release.yml:456"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/build-release.yml","line":507,"fingerprint":"unpinned-uses:.github/workflows/build-release.yml:507"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/build-release.yml","line":510,"fingerprint":"unpinned-uses:.github/workflows/build-release.yml:510"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/build-release.yml","line":515,"fingerprint":"unpinned-uses:.github/workflows/build-release.yml:515"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/build-release.yml","line":644,"fingerprint":"unpinned-uses:.github/workflows/build-release.yml:644"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/build-release.yml","line":818,"fingerprint":"unpinned-uses:.github/workflows/build-release.yml:818"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/build-release.yml","line":834,"fingerprint":"unpinned-uses:.github/workflows/build-release.yml:834"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/build-release.yml","line":942,"fingerprint":"unpinned-uses:.github/workflows/build-release.yml:942"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/build-release.yml","line":1009,"fingerprint":"unpinned-uses:.github/workflows/build-release.yml:1009"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/build-release.yml","line":1047,"fingerprint":"unpinned-uses:.github/workflows/build-release.yml:1047"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/cli-headless-e2e.yml","line":64,"fingerprint":"unpinned-uses:.github/workflows/cli-headless-e2e.yml:64"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/cli-headless-e2e.yml","line":67,"fingerprint":"unpinned-uses:.github/workflows/cli-headless-e2e.yml:67"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/cli-headless-e2e.yml","line":72,"fingerprint":"unpinned-uses:.github/workflows/cli-headless-e2e.yml:72"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/cli-headless-e2e.yml","line":77,"fingerprint":"unpinned-uses:.github/workflows/cli-headless-e2e.yml:77"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/cli-headless-e2e.yml","line":82,"fingerprint":"unpinned-uses:.github/workflows/cli-headless-e2e.yml:82"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/cli-headless-e2e.yml","line":180,"fingerprint":"unpinned-uses:.github/workflows/cli-headless-e2e.yml:180"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/codeql.yml","line":56,"fingerprint":"unpinned-uses:.github/workflows/codeql.yml:56"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/codeql.yml","line":60,"fingerprint":"unpinned-uses:.github/workflows/codeql.yml:60"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/codeql.yml","line":88,"fingerprint":"unpinned-uses:.github/workflows/codeql.yml:88"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/desktop-smoke.yml","line":50,"fingerprint":"unpinned-uses:.github/workflows/desktop-smoke.yml:50"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/dotnet-test.yml","line":48,"fingerprint":"unpinned-uses:.github/workflows/dotnet-test.yml:48"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/dotnet-test.yml","line":51,"fingerprint":"unpinned-uses:.github/workflows/dotnet-test.yml:51"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/dotnet-test.yml","line":56,"fingerprint":"unpinned-uses:.github/workflows/dotnet-test.yml:56"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/dotnet-test.yml","line":92,"fingerprint":"unpinned-uses:.github/workflows/dotnet-test.yml:92"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/dotnet-test.yml","line":95,"fingerprint":"unpinned-uses:.github/workflows/dotnet-test.yml:95"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/dotnet-test.yml","line":100,"fingerprint":"unpinned-uses:.github/workflows/dotnet-test.yml:100"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/dotnet-test.yml","line":117,"fingerprint":"unpinned-uses:.github/workflows/dotnet-test.yml:117"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/dotnet-test.yml","line":120,"fingerprint":"unpinned-uses:.github/workflows/dotnet-test.yml:120"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/dotnet-test.yml","line":125,"fingerprint":"unpinned-uses:.github/workflows/dotnet-test.yml:125"},{"rule_id":"zizmor/dangerous-triggers","severity":"high","message":"use of fundamentally insecure workflow trigger [confidence medium]","path":".github/workflows/pr-labeler.yml","line":4,"fingerprint":"dangerous-triggers:.github/workflows/pr-labeler.yml:4"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/pr-labeler.yml","line":22,"fingerprint":"unpinned-uses:.github/workflows/pr-labeler.yml:22"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/pr-labeler.yml","line":25,"fingerprint":"unpinned-uses:.github/workflows/pr-labeler.yml:25"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/translation-sync.yml","line":55,"fingerprint":"unpinned-uses:.github/workflows/translation-sync.yml:55"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/translation-sync.yml","line":102,"fingerprint":"unpinned-uses:.github/workflows/translation-sync.yml:102"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/translation-sync.yml","line":116,"fingerprint":"unpinned-uses:.github/workflows/translation-sync.yml:116"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/translation-sync.yml","line":176,"fingerprint":"unpinned-uses:.github/workflows/translation-sync.yml:176"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/translation-sync.yml","line":184,"fingerprint":"unpinned-uses:.github/workflows/translation-sync.yml:184"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/translation-sync.yml","line":203,"fingerprint":"unpinned-uses:.github/workflows/translation-sync.yml:203"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/translation-sync.yml","line":209,"fingerprint":"unpinned-uses:.github/workflows/translation-sync.yml:209"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/translation-validation.yml","line":36,"fingerprint":"unpinned-uses:.github/workflows/translation-validation.yml:36"},{"rule_id":"zizmor/dependabot-cooldown","severity":"medium","message":"insufficient cooldown in Dependabot updates [confidence high]","path":".github/dependabot.yml","line":3,"fingerprint":"dependabot-cooldown:.github/dependabot.yml:3"},{"rule_id":"zizmor/secrets-inherit","severity":"medium","message":"secrets unconditionally inherited by called workflow [confidence high]","path":".github/workflows/agent-eval.yml","line":69,"fingerprint":"secrets-inherit:.github/workflows/agent-eval.yml:69"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/build-release.yml","line":1,"fingerprint":"excessive-permissions:.github/workflows/build-release.yml:1"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/build-release.yml","line":47,"fingerprint":"excessive-permissions:.github/workflows/build-release.yml:47"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/build-release.yml","line":1001,"fingerprint":"excessive-permissions:.github/workflows/build-release.yml:1001"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/cli-headless-e2e.yml","line":25,"fingerprint":"excessive-permissions:.github/workflows/cli-headless-e2e.yml:25"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/dotnet-test.yml","line":1,"fingerprint":"excessive-permissions:.github/workflows/dotnet-test.yml:1"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/dotnet-test.yml","line":44,"fingerprint":"excessive-permissions:.github/workflows/dotnet-test.yml:44"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/dotnet-test.yml","line":85,"fingerprint":"excessive-permissions:.github/workflows/dotnet-test.yml:85"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/dotnet-test.yml","line":113,"fingerprint":"excessive-permissions:.github/workflows/dotnet-test.yml:113"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/dotnet-test.yml","line":162,"fingerprint":"excessive-permissions:.github/workflows/dotnet-test.yml:162"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/translation-validation.yml","line":31,"fingerprint":"excessive-permissions:.github/workflows/translation-validation.yml:31"},{"rule_id":"zizmor/self-repository","severity":"low","message":"use GitHub's dedicated self-repository syntax [confidence high]","path":".github/workflows/agent-eval.yml","line":69,"fingerprint":"self-repository:.github/workflows/agent-eval.yml:69"},{"rule_id":"zizmor/artipacked","severity":"low","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/agent-implement-ticket.yml","line":535,"fingerprint":"artipacked:.github/workflows/agent-implement-ticket.yml:535"},{"rule_id":"zizmor/adhoc-packages","severity":"low","message":"ad-hoc installation of packages [confidence high]","path":".github/workflows/agent-implement-ticket.yml","line":217,"fingerprint":"adhoc-packages:.github/workflows/agent-implement-ticket.yml:217"},{"rule_id":"zizmor/adhoc-packages","severity":"low","message":"ad-hoc installation of packages [confidence high]","path":".github/workflows/agent-implement-ticket.yml","line":384,"fingerprint":"adhoc-packages:.github/workflows/agent-implement-ticket.yml:384"},{"rule_id":"zizmor/self-repository","severity":"low","message":"use GitHub's dedicated self-repository syntax [confidence high]","path":".github/workflows/agent-implement-ticket.yml","line":366,"fingerprint":"self-repository:.github/workflows/agent-implement-ticket.yml:366"},{"rule_id":"zizmor/self-repository","severity":"low","message":"use GitHub's dedicated self-repository syntax [confidence high]","path":".github/workflows/agent-implement-ticket.yml","line":513,"fingerprint":"self-repository:.github/workflows/agent-implement-ticket.yml:513"},{"rule_id":"zizmor/artipacked","severity":"low","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/build-release.yml","line":63,"fingerprint":"artipacked:.github/workflows/build-release.yml:63"},{"rule_id":"zizmor/artipacked","severity":"low","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/build-release.yml","line":170,"fingerprint":"artipacked:.github/workflows/build-release.yml:170"},{"rule_id":"zizmor/artipacked","severity":"low","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/build-release.yml","line":506,"fingerprint":"artipacked:.github/workflows/build-release.yml:506"},{"rule_id":"zizmor/artipacked","severity":"low","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/build-release.yml","line":642,"fingerprint":"artipacked:.github/workflows/build-release.yml:642"},{"rule_id":"zizmor/artipacked","severity":"low","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/build-release.yml","line":940,"fingerprint":"artipacked:.github/workflows/build-release.yml:940"},{"rule_id":"zizmor/self-repository","severity":"low","message":"use GitHub's dedicated self-repository syntax [confidence high]","path":".github/workflows/build-release.yml","line":653,"fingerprint":"self-repository:.github/workflows/build-release.yml:653"},{"rule_id":"zizmor/self-repository","severity":"low","message":"use GitHub's dedicated self-repository syntax [confidence high]","path":".github/workflows/build-release.yml","line":739,"fingerprint":"self-repository:.github/workflows/build-release.yml:739"},{"rule_id":"zizmor/self-repository","severity":"low","message":"use GitHub's dedicated self-repository syntax [confidence high]","path":".github/workflows/build-release.yml","line":951,"fingerprint":"self-repository:.github/workflows/build-release.yml:951"},{"rule_id":"zizmor/self-repository","severity":"low","message":"use GitHub's dedicated self-repository syntax [confidence high]","path":".github/workflows/build-release.yml","line":991,"fingerprint":"self-repository:.github/workflows/build-release.yml:991"},{"rule_id":"zizmor/artipacked","severity":"low","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/cli-headless-e2e.yml","line":63,"fingerprint":"artipacked:.github/workflows/cli-headless-e2e.yml:63"},{"rule_id":"zizmor/artipacked","severity":"low","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/codeql.yml","line":55,"fingerprint":"artipacked:.github/workflows/codeql.yml:55"},{"rule_id":"zizmor/artipacked","severity":"low","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/desktop-smoke.yml","line":49,"fingerprint":"artipacked:.github/workflows/desktop-smoke.yml:49"},{"rule_id":"zizmor/self-repository","severity":"low","message":"use GitHub's dedicated self-repository syntax [confidence high]","path":".github/workflows/desktop-smoke.yml","line":55,"fingerprint":"self-repository:.github/workflows/desktop-smoke.yml:55"},{"rule_id":"zizmor/self-repository","severity":"low","message":"use GitHub's dedicated self-repository syntax [confidence high]","path":".github/workflows/desktop-smoke.yml","line":58,"fingerprint":"self-repository:.github/workflows/desktop-smoke.yml:58"},{"rule_id":"zizmor/self-repository","severity":"low","message":"use GitHub's dedicated self-repository syntax [confidence high]","path":".github/workflows/desktop-smoke.yml","line":64,"fingerprint":"self-repository:.github/workflows/desktop-smoke.yml:64"},{"rule_id":"zizmor/self-repository","severity":"low","message":"use GitHub's dedicated self-repository syntax [confidence high]","path":".github/workflows/desktop-smoke.yml","line":78,"fingerprint":"self-repository:.github/workflows/desktop-smoke.yml:78"},{"rule_id":"zizmor/artipacked","severity":"low","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/dotnet-test.yml","line":47,"fingerprint":"artipacked:.github/workflows/dotnet-test.yml:47"},{"rule_id":"zizmor/artipacked","severity":"low","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/dotnet-test.yml","line":91,"fingerprint":"artipacked:.github/workflows/dotnet-test.yml:91"},{"rule_id":"zizmor/artipacked","severity":"low","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/dotnet-test.yml","line":116,"fingerprint":"artipacked:.github/workflows/dotnet-test.yml:116"},{"rule_id":"zizmor/artipacked","severity":"low","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/translation-sync.yml","line":202,"fingerprint":"artipacked:.github/workflows/translation-sync.yml:202"},{"rule_id":"zizmor/adhoc-packages","severity":"low","message":"ad-hoc installation of packages [confidence high]","path":".github/workflows/translation-sync.yml","line":123,"fingerprint":"adhoc-packages:.github/workflows/translation-sync.yml:123"},{"rule_id":"zizmor/artipacked","severity":"low","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/translation-validation.yml","line":35,"fingerprint":"artipacked:.github/workflows/translation-validation.yml:35"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/build-release.yml","line":225,"fingerprint":"template-injection:.github/workflows/build-release.yml:225"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/build-release.yml","line":325,"fingerprint":"template-injection:.github/workflows/build-release.yml:325"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/build-release.yml","line":395,"fingerprint":"template-injection:.github/workflows/build-release.yml:395"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/build-release.yml","line":453,"fingerprint":"template-injection:.github/workflows/build-release.yml:453"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/build-release.yml","line":551,"fingerprint":"template-injection:.github/workflows/build-release.yml:551"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/build-release.yml","line":662,"fingerprint":"template-injection:.github/workflows/build-release.yml:662"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/build-release.yml","line":665,"fingerprint":"template-injection:.github/workflows/build-release.yml:665"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/build-release.yml","line":755,"fingerprint":"template-injection:.github/workflows/build-release.yml:755"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/build-release.yml","line":910,"fingerprint":"template-injection:.github/workflows/build-release.yml:910"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/build-release.yml","line":911,"fingerprint":"template-injection:.github/workflows/build-release.yml:911"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/build-release.yml","line":912,"fingerprint":"template-injection:.github/workflows/build-release.yml:912"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/build-release.yml","line":913,"fingerprint":"template-injection:.github/workflows/build-release.yml:913"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/build-release.yml","line":959,"fingerprint":"template-injection:.github/workflows/build-release.yml:959"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/build-release.yml","line":962,"fingerprint":"template-injection:.github/workflows/build-release.yml:962"}],"evidence":[],"data":{},"error":null},{"analyzer":"sec-posture","pillar":"security","status":"ok","tool_version":null,"metrics":{"check:security_policy":1.0,"check:dependency_updates":1.0,"check:signed_commits":1.0,"check:lockfiles":1.0,"signed_commit_share":1.0,"unpinned_manifests":0.0},"findings":[],"evidence":[{"kind":"posture","description":"Security policy: https://github.com/Devolutions/UniGetUI/security/policy","ref":"https://github.com/Devolutions/UniGetUI/security/policy","url":null,"weight":0.0},{"kind":"posture","description":"Dependency updates: .github/dependabot.yml","ref":".github/dependabot.yml","url":null,"weight":0.0},{"kind":"posture","description":"Dependency updates: .github/renovate.json","ref":".github/renovate.json","url":null,"weight":0.0}],"data":{},"error":null},{"analyzer":"sec-distribution","pillar":"security","status":"ok","tool_version":null,"metrics":{"signals":2.0,"binary_assets":150.0,"suspicious":0.0},"findings":[],"evidence":[{"kind":"binary-release-asset","description":"release v2026.3.4 ships UniGetUI.arm64.zip (111 downloads)","ref":"UniGetUI.arm64.zip","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.4/UniGetUI.arm64.zip","weight":0.0},{"kind":"binary-release-asset","description":"release v2026.3.4 ships UniGetUI.Installer.arm64.exe (194 downloads)","ref":"UniGetUI.Installer.arm64.exe","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.4/UniGetUI.Installer.arm64.exe","weight":0.0},{"kind":"binary-release-asset","description":"release v2026.3.4 ships UniGetUI.Installer.exe (73116 downloads)","ref":"UniGetUI.Installer.exe","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.4/UniGetUI.Installer.exe","weight":0.0},{"kind":"binary-release-asset","description":"release v2026.3.4 ships UniGetUI.Installer.x64.exe (1876 downloads)","ref":"UniGetUI.Installer.x64.exe","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.4/UniGetUI.Installer.x64.exe","weight":0.0},{"kind":"binary-release-asset","description":"release v2026.3.4 ships UniGetUI.linux-arm64.deb (59 downloads)","ref":"UniGetUI.linux-arm64.deb","url":"https://github.com/Devolutions/UniGetUI/releases/download/v2026.3.4/UniGetUI.linux-arm64.deb","weight":0.0},{"kind":"readme-download-lure","description":"links directly to a downloadable archive or installer","ref":"README.md","url":null,"weight":0.0}],"data":{"signals":["binary-release-assets","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":9488.0,"function_nloc":144466.0,"mean_ccn":3.59,"p90_ccn":8.0,"complex_functions":229.0,"long_functions":94.0,"many_param_functions":19.0,"risky_nloc_share":0.1599},"findings":[],"evidence":[{"kind":"complex-function","description":"CoreTools::CreateRelaunchStartInfo in src/UniGetUI.Core.Tools/Tools.cs: complexity 279, 1699 lines","ref":"src/UniGetUI.Core.Tools/Tools.cs","url":"https://github.com/Devolutions/UniGetUI/blob/da6be7b86100302a79a208e7ab4d5c6fcd695fd5/src/UniGetUI.Core.Tools/Tools.cs#L210","weight":1.0},{"kind":"complex-function","description":"AddCommand::RunInner in src/UniGetUI.AgentSkills.Cli/AddRun.cs: complexity 120, 436 lines","ref":"src/UniGetUI.AgentSkills.Cli/AddRun.cs","url":"https://github.com/Devolutions/UniGetUI/blob/da6be7b86100302a79a208e7ab4d5c6fcd695fd5/src/UniGetUI.AgentSkills.Cli/AddRun.cs#L192","weight":1.0},{"kind":"complex-function","description":"SearchMultiselect::Run<T> in src/UniGetUI.AgentSkills.Cli/SearchMultiselect.cs: complexity 95, 290 lines","ref":"src/UniGetUI.AgentSkills.Cli/SearchMultiselect.cs","url":"https://github.com/Devolutions/UniGetUI/blob/da6be7b86100302a79a208e7ab4d5c6fcd695fd5/src/UniGetUI.AgentSkills.Cli/SearchMultiselect.cs#L136","weight":1.0},{"kind":"complex-function","description":"struct::IsWide in src/UniGetUI.AgentSkills.Cli/Ui.cs: complexity 69, 12 lines","ref":"src/UniGetUI.AgentSkills.Cli/Ui.cs","url":"https://github.com/Devolutions/UniGetUI/blob/da6be7b86100302a79a208e7ab4d5c6fcd695fd5/src/UniGetUI.AgentSkills.Cli/Ui.cs#L81","weight":1.0},{"kind":"complex-function","description":"CargoBinaryResolver::ResolveAsync in src/UniGetUI.PackageEngine.Managers.Cargo/CargoBinaryResolver.cs: complexity 63, 117 lines","ref":"src/UniGetUI.PackageEngine.Managers.Cargo/CargoBinaryResolver.cs","url":"https://github.com/Devolutions/UniGetUI/blob/da6be7b86100302a79a208e7ab4d5c6fcd695fd5/src/UniGetUI.PackageEngine.Managers.Cargo/CargoBinaryResolver.cs#L36","weight":1.0},{"kind":"complex-function","description":"PolicyEditorSessionViewModel::SaveCoreAsync in src/UniGetUI.Avalonia/ViewModels/Pages/SettingsPages/PolicyEditor/PolicyEditorSessionViewModel.cs: complexity 59, 266 lines","ref":"src/UniGetUI.Avalonia/ViewModels/Pages/SettingsPages/PolicyEditor/PolicyEditorSessionViewModel.cs","url":"https://github.com/Devolutions/UniGetUI/blob/da6be7b86100302a79a208e7ab4d5c6fcd695fd5/src/UniGetUI.Avalonia/ViewModels/Pages/SettingsPages/PolicyEditor/PolicyEditorSessionViewModel.cs#L509","weight":0.9833333333333333},{"kind":"complex-function","description":"NpmPkgDetailsHelper::GetDetails_UnSafe in src/UniGetUI.PackageEngine.Managers.Npm/Helpers/NpmPkgDetailsHelper.cs: complexity 56, 128 lines","ref":"src/UniGetUI.PackageEngine.Managers.Npm/Helpers/NpmPkgDetailsHelper.cs","url":"https://github.com/Devolutions/UniGetUI/blob/da6be7b86100302a79a208e7ab4d5c6fcd695fd5/src/UniGetUI.PackageEngine.Managers.Npm/Helpers/NpmPkgDetailsHelper.cs#L19","weight":0.9333333333333333},{"kind":"complex-function","description":"SkippedSkill::UpdateGlobalSkills in src/UniGetUI.AgentSkills.Cli/Update.cs: complexity 55, 158 lines","ref":"src/UniGetUI.AgentSkills.Cli/Update.cs","url":"https://github.com/Devolutions/UniGetUI/blob/da6be7b86100302a79a208e7ab4d5c6fcd695fd5/src/UniGetUI.AgentSkills.Cli/Update.cs#L302","weight":0.9166666666666666},{"kind":"complex-function","description":"BunPkgDetailsHelper::GetDetails_UnSafe in src/UniGetUI.PackageEngine.Managers.Bun/Helpers/BunPkgDetailsHelper.cs: complexity 51, 87 lines","ref":"src/UniGetUI.PackageEngine.Managers.Bun/Helpers/BunPkgDetailsHelper.cs","url":"https://github.com/Devolutions/UniGetUI/blob/da6be7b86100302a79a208e7ab4d5c6fcd695fd5/src/UniGetUI.PackageEngine.Managers.Bun/Helpers/BunPkgDetailsHelper.cs#L26","weight":0.85},{"kind":"complex-function","description":"ScoopPkgDetailsHelper::GetDetails_UnSafe in src/UniGetUI.PackageEngine.Managers.Scoop/Helpers/ScoopPkgDetailsHelper.cs: complexity 50, 153 lines","ref":"src/UniGetUI.PackageEngine.Managers.Scoop/Helpers/ScoopPkgDetailsHelper.cs","url":"https://github.com/Devolutions/UniGetUI/blob/da6be7b86100302a79a208e7ab4d5c6fcd695fd5/src/UniGetUI.PackageEngine.Managers.Scoop/Helpers/ScoopPkgDetailsHelper.cs#L35","weight":0.8333333333333334}],"data":{},"error":null},{"analyzer":"qual-duplication","pillar":"quality","status":"ok","tool_version":"repotrust-dup-w6","metrics":{"compared_lines":130374.0,"duplicated_lines":6049.0,"duplicated_share":0.0464,"files":1009.0},"findings":[],"evidence":[{"kind":"duplicate-code","description":"6+ duplicated lines: .agents/skills/translation-diff-export/scripts/export-translation-diff.ps1:101 and scripts/translation/Get-TranslationStatus.ps1:104","ref":".agents/skills/translation-diff-export/scripts/export-translation-diff.ps1","url":"https://github.com/Devolutions/UniGetUI/blob/da6be7b86100302a79a208e7ab4d5c6fcd695fd5/.agents/skills/translation-diff-export/scripts/export-translation-diff.ps1#L101","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: .agents/skills/translation-diff-translate/scripts/write-translation-handoff.ps1:38 and scripts/translation/Languages/TranslationJsonTools.ps1:26","ref":".agents/skills/translation-diff-translate/scripts/write-translation-handoff.ps1","url":"https://github.com/Devolutions/UniGetUI/blob/da6be7b86100302a79a208e7ab4d5c6fcd695fd5/.agents/skills/translation-diff-translate/scripts/write-translation-handoff.ps1#L38","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: .agents/skills/translation-review/scripts/review-translation-json.ps1:350 and .agents/skills/translation-review/scripts/review-translation-json.ps1:379","ref":".agents/skills/translation-review/scripts/review-translation-json.ps1","url":"https://github.com/Devolutions/UniGetUI/blob/da6be7b86100302a79a208e7ab4d5c6fcd695fd5/.agents/skills/translation-review/scripts/review-translation-json.ps1#L350","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: .agents/skills/translation-source-sync/scripts/set-translation-boundary-order.ps1:1 and scripts/translation/Set-TranslationBoundaryOrder.ps1:1","ref":".agents/skills/translation-source-sync/scripts/set-translation-boundary-order.ps1","url":"https://github.com/Devolutions/UniGetUI/blob/da6be7b86100302a79a208e7ab4d5c6fcd695fd5/.agents/skills/translation-source-sync/scripts/set-translation-boundary-order.ps1#L1","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: .agents/skills/translation-status/scripts/get-translation-status.ps1:1 and scripts/translation/Get-TranslationStatus.ps1:1","ref":".agents/skills/translation-status/scripts/get-translation-status.ps1","url":"https://github.com/Devolutions/UniGetUI/blob/da6be7b86100302a79a208e7ab4d5c6fcd695fd5/.agents/skills/translation-status/scripts/get-translation-status.ps1#L1","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: scripts/export-icon-database-gallery.ps1:51 and scripts/update-icons.ps1:54","ref":"scripts/export-icon-database-gallery.ps1","url":"https://github.com/Devolutions/UniGetUI/blob/da6be7b86100302a79a208e7ab4d5c6fcd695fd5/scripts/export-icon-database-gallery.ps1#L51","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: scripts/refresh-integrity-tree.ps1:9 and scripts/verify-integrity-tree.ps1:13","ref":"scripts/refresh-integrity-tree.ps1","url":"https://github.com/Devolutions/UniGetUI/blob/da6be7b86100302a79a208e7ab4d5c6fcd695fd5/scripts/refresh-integrity-tree.ps1#L9","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: scripts/translation/Export-TranslationBoundaryAlignment.ps1:6 and scripts/translation/Export-TranslationKeyDiff.ps1:7","ref":"scripts/translation/Export-TranslationBoundaryAlignment.ps1","url":"https://github.com/Devolutions/UniGetUI/blob/da6be7b86100302a79a208e7ab4d5c6fcd695fd5/scripts/translation/Export-TranslationBoundaryAlignment.ps1#L6","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: scripts/translation/Export-TranslationBoundaryAlignment.ps1:9 and scripts/translation/Remove-UnusedTranslations.ps1:7","ref":"scripts/translation/Export-TranslationBoundaryAlignment.ps1","url":"https://github.com/Devolutions/UniGetUI/blob/da6be7b86100302a79a208e7ab4d5c6fcd695fd5/scripts/translation/Export-TranslationBoundaryAlignment.ps1#L9","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: scripts/translation/Export-TranslationBoundaryAlignment.ps1:10 and scripts/translation/Set-TranslationBoundaryOrder.ps1:12","ref":"scripts/translation/Export-TranslationBoundaryAlignment.ps1","url":"https://github.com/Devolutions/UniGetUI/blob/da6be7b86100302a79a208e7ab4d5c6fcd695fd5/scripts/translation/Export-TranslationBoundaryAlignment.ps1#L10","weight":0.3}],"data":{},"error":null},{"analyzer":"qual-lint","pillar":"quality","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":596.0,"weighted_findings":149.0,"scanned_lines":194871.0,"category:best-practice":596.0},"findings":[{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/Shared/AutoUpdater.Helpers.cs","line":20,"fingerprint":"csharp.lang.best-practice.structured-logging:src/Shared/AutoUpdater.Helpers.cs:20"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/Shared/SharedPreUiCommandDispatcher.cs","line":445,"fingerprint":"csharp.lang.best-practice.structured-logging:src/Shared/SharedPreUiCommandDispatcher.cs:445"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.AgentSkills.Cli/AddHelpers.cs","line":223,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.AgentSkills.Cli/AddHelpers.cs:223"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.AgentSkills.Cli/AddHelpers.cs","line":226,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.AgentSkills.Cli/AddHelpers.cs:226"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.AgentSkills.Cli/AddHelpers.cs","line":235,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.AgentSkills.Cli/AddHelpers.cs:235"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.AgentSkills.Cli/AddHelpers.cs","line":236,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.AgentSkills.Cli/AddHelpers.cs:236"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.AgentSkills.Cli/AddHelpers.cs","line":270,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.AgentSkills.Cli/AddHelpers.cs:270"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.AgentSkills.Cli/AddHelpers.cs","line":289,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.AgentSkills.Cli/AddHelpers.cs:289"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.AgentSkills.Cli/AddRun.cs","line":157,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.AgentSkills.Cli/AddRun.cs:157"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.AgentSkills.Cli/AddRun.cs","line":374,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.AgentSkills.Cli/AddRun.cs:374"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.AgentSkills.Cli/AddRun.cs","line":380,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.AgentSkills.Cli/AddRun.cs:380"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.AgentSkills.Cli/AddRun.cs","line":423,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.AgentSkills.Cli/AddRun.cs:423"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.AgentSkills.Cli/AddRun.cs","line":430,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.AgentSkills.Cli/AddRun.cs:430"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.AgentSkills.Cli/AddRun.cs","line":431,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.AgentSkills.Cli/AddRun.cs:431"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.AgentSkills.Cli/AddRun.cs","line":449,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.AgentSkills.Cli/AddRun.cs:449"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.AgentSkills.Cli/AddRun.cs","line":478,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.AgentSkills.Cli/AddRun.cs:478"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.AgentSkills.Cli/AddWellKnown.cs","line":35,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.AgentSkills.Cli/AddWellKnown.cs:35"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.AgentSkills.Cli/AddWellKnown.cs","line":68,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.AgentSkills.Cli/AddWellKnown.cs:68"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.AgentSkills.Cli/InstallLock.cs","line":14,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.AgentSkills.Cli/InstallLock.cs:14"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.AgentSkills.Cli/InstallLock.cs","line":30,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.AgentSkills.Cli/InstallLock.cs:30"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.AgentSkills.Cli/InstallLock.cs","line":40,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.AgentSkills.Cli/InstallLock.cs:40"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.AgentSkills.Cli/InstallLock.cs","line":48,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.AgentSkills.Cli/InstallLock.cs:48"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.AgentSkills.Cli/Remove.cs","line":25,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.AgentSkills.Cli/Remove.cs:25"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.AgentSkills.Cli/Remove.cs","line":37,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.AgentSkills.Cli/Remove.cs:37"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.AgentSkills.Cli/Remove.cs","line":65,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.AgentSkills.Cli/Remove.cs:65"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.AgentSkills.Cli/Remove.cs","line":66,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.AgentSkills.Cli/Remove.cs:66"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.AgentSkills.Cli/Remove.cs","line":80,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.AgentSkills.Cli/Remove.cs:80"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.AgentSkills.Cli/Sync.cs","line":131,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.AgentSkills.Cli/Sync.cs:131"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.AgentSkills.Cli/Sync.cs","line":146,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.AgentSkills.Cli/Sync.cs:146"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.AgentSkills.Cli/Sync.cs","line":178,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.AgentSkills.Cli/Sync.cs:178"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.AgentSkills.Cli/Sync.cs","line":194,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.AgentSkills.Cli/Sync.cs:194"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.AgentSkills.Cli/Sync.cs","line":201,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.AgentSkills.Cli/Sync.cs:201"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.AgentSkills.Cli/Sync.cs","line":202,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.AgentSkills.Cli/Sync.cs:202"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/AppExtensions.cs","line":65,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/AppExtensions.cs:65"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/AvaloniaAutoUpdater.cs","line":234,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/AvaloniaAutoUpdater.cs:234"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/AvaloniaAutoUpdater.cs","line":243,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/AvaloniaAutoUpdater.cs:243"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/AvaloniaAutoUpdater.cs","line":275,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/AvaloniaAutoUpdater.cs:275"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/AvaloniaAutoUpdater.cs","line":286,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/AvaloniaAutoUpdater.cs:286"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/AvaloniaAutoUpdater.cs","line":298,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/AvaloniaAutoUpdater.cs:298"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/AvaloniaAutoUpdater.cs","line":357,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/AvaloniaAutoUpdater.cs:357"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/AvaloniaBootstrapper.cs","line":107,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/AvaloniaBootstrapper.cs:107"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/AvaloniaBootstrapper.cs","line":428,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/AvaloniaBootstrapper.cs:428"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/AvaloniaBootstrapper.cs","line":435,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/AvaloniaBootstrapper.cs:435"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/AvaloniaBootstrapper.cs","line":442,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/AvaloniaBootstrapper.cs:442"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/AvaloniaBootstrapper.cs","line":446,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/AvaloniaBootstrapper.cs:446"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/AvaloniaPackageOperationHelper.cs","line":69,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/AvaloniaPackageOperationHelper.cs:69"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/AvaloniaPackageOperationHelper.cs","line":123,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/AvaloniaPackageOperationHelper.cs:123"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/BitmapLoader.cs","line":22,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/BitmapLoader.cs:22"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/ElevatorLoader.cs","line":63,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/ElevatorLoader.cs:63"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/ElevatorLoader.cs","line":73,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/ElevatorLoader.cs:73"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/ElevatorLoader.cs","line":84,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/ElevatorLoader.cs:84"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/ElevatorLoader.cs","line":167,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/ElevatorLoader.cs:167"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/ElevatorLoader.cs","line":177,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/ElevatorLoader.cs:177"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/ElevatorLoader.cs","line":184,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/ElevatorLoader.cs:184"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/GHAuthApiRunner.cs","line":29,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/GHAuthApiRunner.cs:29"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/GHAuthApiRunner.cs","line":82,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/GHAuthApiRunner.cs:82"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/GitHubAuthService.cs","line":159,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/GitHubAuthService.cs:159"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/LinuxDisplayScaling.cs","line":81,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/LinuxDisplayScaling.cs:81"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/LinuxDisplayScaling.cs","line":86,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/LinuxDisplayScaling.cs:86"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/LinuxInstallLocation.cs","line":21,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/LinuxInstallLocation.cs:21"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/LinuxInstallLocation.cs","line":34,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/LinuxInstallLocation.cs:34"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/MacBundleLocation.cs","line":26,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/MacBundleLocation.cs:26"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/MacBundleLocation.cs","line":39,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/MacBundleLocation.cs:39"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/MacBundleLocation.cs","line":74,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/MacBundleLocation.cs:74"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/MacGlassWindowHelper.cs","line":99,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/MacGlassWindowHelper.cs:99"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/MaintenanceScheduler.cs","line":145,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/MaintenanceScheduler.cs:145"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/MaintenanceScheduler.cs","line":202,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/MaintenanceScheduler.cs:202"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/MaintenanceScheduler.cs","line":321,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/MaintenanceScheduler.cs:321"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/MaintenanceScheduler.cs","line":333,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/MaintenanceScheduler.cs:333"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/ManualInstallHelper.cs","line":37,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/ManualInstallHelper.cs:37"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/MemoryTrimmer.cs","line":65,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/MemoryTrimmer.cs:65"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/OperationHistoryActionService.cs","line":183,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/OperationHistoryActionService.cs:183"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/PackageLinkHandler.cs","line":52,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/PackageLinkHandler.cs:52"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/ProcessEnvironmentConfigurator.cs","line":53,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/ProcessEnvironmentConfigurator.cs:53"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/ProcessEnvironmentConfigurator.cs","line":58,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/ProcessEnvironmentConfigurator.cs:58"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/SingleInstanceRedirector.cs","line":80,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/SingleInstanceRedirector.cs:80"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/SingleInstanceRedirector.cs","line":124,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/SingleInstanceRedirector.cs:124"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/SingleInstanceRedirector.cs","line":177,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/SingleInstanceRedirector.cs:177"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/StartupArgumentProcessor.cs","line":19,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/StartupArgumentProcessor.cs:19"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/StartupArgumentProcessor.cs","line":37,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/StartupArgumentProcessor.cs:37"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/StartupArgumentProcessor.cs","line":66,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/StartupArgumentProcessor.cs:66"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/StartupArgumentProcessor.cs","line":72,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/StartupArgumentProcessor.cs:72"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/StartupArgumentProcessor.cs","line":78,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/StartupArgumentProcessor.cs:78"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/StartupArgumentProcessor.cs","line":84,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/StartupArgumentProcessor.cs:84"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/SystemRestartService.cs","line":189,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/SystemRestartService.cs:189"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/SystemRestartService.cs","line":205,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/SystemRestartService.cs:205"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/SystemRestartService.cs","line":216,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/SystemRestartService.cs:216"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/SystemRestartService.cs","line":222,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/SystemRestartService.cs:222"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/SystemRestartService.cs","line":230,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/SystemRestartService.cs:230"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/Win32ToastNotifier.cs","line":126,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/Win32ToastNotifier.cs:126"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Infrastructure/WindowsAvaloniaRenderingPolicy.cs","line":55,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Infrastructure/WindowsAvaloniaRenderingPolicy.cs:55"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Models/PackageCollections.cs","line":401,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Models/PackageCollections.cs:401"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Models/PackageCollections.cs","line":561,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Models/PackageCollections.cs:561"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Models/PackageCollections.cs","line":683,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Models/PackageCollections.cs:683"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Models/PackageCollections.cs","line":835,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Models/PackageCollections.cs:835"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Models/PackageCollections.cs","line":974,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Models/PackageCollections.cs:974"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/DialogPages/CatalogEditorViewModel.cs","line":298,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/DialogPages/CatalogEditorViewModel.cs:298"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/DialogPages/CatalogEditorViewModel.cs","line":342,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/DialogPages/CatalogEditorViewModel.cs:342"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/DialogPages/InstallOptionsViewModel.cs","line":490,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/DialogPages/InstallOptionsViewModel.cs:490"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/DialogPages/InstallOptionsViewModel.cs","line":502,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/DialogPages/InstallOptionsViewModel.cs:502"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/DialogPages/InstallOptionsViewModel.cs","line":528,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/DialogPages/InstallOptionsViewModel.cs:528"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/DialogPages/InstallOptionsViewModel.cs","line":601,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/DialogPages/InstallOptionsViewModel.cs:601"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/DialogPages/InstallOptionsViewModel.cs","line":668,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/DialogPages/InstallOptionsViewModel.cs:668"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/DialogPages/InstallOptionsViewModel.cs","line":701,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/DialogPages/InstallOptionsViewModel.cs:701"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/DialogPages/ManageAutoUpdatesViewModel.cs","line":328,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/DialogPages/ManageAutoUpdatesViewModel.cs:328"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/DialogPages/ManageAutoUpdatesViewModel.cs","line":353,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/DialogPages/ManageAutoUpdatesViewModel.cs:353"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/DialogPages/ManageIgnoredUpdatesViewModel.cs","line":230,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/DialogPages/ManageIgnoredUpdatesViewModel.cs:230"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/DialogPages/PackageDetailsViewModel.cs","line":341,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/DialogPages/PackageDetailsViewModel.cs:341"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/DialogPages/PackageDetailsViewModel.cs","line":386,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/DialogPages/PackageDetailsViewModel.cs:386"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/DialogPages/PkgFeedEditorViewModel.cs","line":117,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/DialogPages/PkgFeedEditorViewModel.cs:117"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/MainWindowViewModel.cs","line":832,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/MainWindowViewModel.cs:832"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/MainWindowViewModel.cs","line":983,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/MainWindowViewModel.cs:983"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/Pages/GitRepositoriesViewModel.cs","line":312,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/Pages/GitRepositoriesViewModel.cs:312"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/Pages/GitRepositoriesViewModel.cs","line":757,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/Pages/GitRepositoriesViewModel.cs:757"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/Pages/GitRepositoriesViewModel.cs","line":768,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/Pages/GitRepositoriesViewModel.cs:768"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/Pages/GitRepositoriesViewModel.cs","line":779,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/Pages/GitRepositoriesViewModel.cs:779"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/Pages/GitRepositoriesViewModel.cs","line":843,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/Pages/GitRepositoriesViewModel.cs:843"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/Pages/GitRepositoriesViewModel.cs","line":891,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/Pages/GitRepositoriesViewModel.cs:891"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/Pages/GitRepositoriesViewModel.cs","line":905,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/Pages/GitRepositoriesViewModel.cs:905"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/Pages/GitRepositoriesViewModel.cs","line":932,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/Pages/GitRepositoriesViewModel.cs:932"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/Pages/ManagerHealthViewModel.cs","line":128,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/Pages/ManagerHealthViewModel.cs:128"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/Pages/SettingsPages/GeneralViewModel.cs","line":48,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/Pages/SettingsPages/GeneralViewModel.cs:48"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/Pages/SettingsPages/PackageManagerViewModel.cs","line":251,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/Pages/SettingsPages/PackageManagerViewModel.cs:251"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/Pages/SettingsPages/SourceManagerCardViewModel.cs","line":84,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/Pages/SettingsPages/SourceManagerCardViewModel.cs:84"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/Pages/XcodeAccountViewModel.cs","line":71,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/Pages/XcodeAccountViewModel.cs:71"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/Pages/XcodeAccountViewModel.cs","line":152,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/Pages/XcodeAccountViewModel.cs:152"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/Pages/XcodeAccountViewModel.cs","line":181,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/Pages/XcodeAccountViewModel.cs:181"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/Pages/XcodeAccountViewModel.cs","line":211,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/Pages/XcodeAccountViewModel.cs:211"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/Pages/XcodeSimulatorRuntimesViewModel.cs","line":188,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/Pages/XcodeSimulatorRuntimesViewModel.cs:188"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/Pages/XcodeSimulatorRuntimesViewModel.cs","line":210,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/Pages/XcodeSimulatorRuntimesViewModel.cs:210"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/Pages/XcodeSimulatorRuntimesViewModel.cs","line":243,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/Pages/XcodeSimulatorRuntimesViewModel.cs:243"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/Pages/XcodeViewModel.cs","line":677,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/Pages/XcodeViewModel.cs:677"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/Pages/XcodeViewModel.cs","line":1084,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/Pages/XcodeViewModel.cs:1084"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/Pages/XcodeViewModel.cs","line":1138,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/Pages/XcodeViewModel.cs:1138"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/Pages/XcodeViewModel.cs","line":1182,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/Pages/XcodeViewModel.cs:1182"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/Pages/XcodeViewModel.cs","line":1207,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/Pages/XcodeViewModel.cs:1207"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/Pages/XcodeViewModel.cs","line":1824,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/Pages/XcodeViewModel.cs:1824"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/Pages/XcodeViewModel.cs","line":1833,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/Pages/XcodeViewModel.cs:1833"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/Pages/XcodeViewModel.cs","line":1860,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/Pages/XcodeViewModel.cs:1860"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/Pages/XcodeViewModel.cs","line":2256,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/Pages/XcodeViewModel.cs:2256"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/Pages/XcodeViewModel.cs","line":2296,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/Pages/XcodeViewModel.cs:2296"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/Pages/XcodeViewModel.cs","line":2321,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/Pages/XcodeViewModel.cs:2321"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/Pages/XcodeViewModel.cs","line":2350,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/Pages/XcodeViewModel.cs:2350"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/SoftwarePages/SoftwareCatalogViewModel.cs","line":382,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/SoftwarePages/SoftwareCatalogViewModel.cs:382"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/SoftwarePages/SoftwareCatalogViewModel.cs","line":738,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/SoftwarePages/SoftwareCatalogViewModel.cs:738"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/SoftwarePages/SoftwareCatalogViewModel.cs","line":761,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/SoftwarePages/SoftwareCatalogViewModel.cs:761"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/ViewModels/SoftwarePages/SoftwareCatalogViewModel.cs","line":909,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/ViewModels/SoftwarePages/SoftwareCatalogViewModel.cs:909"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Views/DialogPages/MissingDependencyDialog.axaml.cs","line":161,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Views/DialogPages/MissingDependencyDialog.axaml.cs:161"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Views/DialogPages/MissingDependencyDialog.axaml.cs","line":171,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Views/DialogPages/MissingDependencyDialog.axaml.cs:171"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Views/DialogPages/MissingDependencyDialog.axaml.cs","line":213,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Views/DialogPages/MissingDependencyDialog.axaml.cs:213"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Views/DialogPages/MissingDependencyDialog.axaml.cs","line":228,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Views/DialogPages/MissingDependencyDialog.axaml.cs:228"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Views/DialogPages/MissingDependencyDialog.axaml.cs","line":250,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Views/DialogPages/MissingDependencyDialog.axaml.cs:250"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Views/DialogPages/MissingDependencyDialog.axaml.cs","line":279,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Views/DialogPages/MissingDependencyDialog.axaml.cs:279"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Views/DialogPages/NotionSignInDialog.axaml.cs","line":126,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Views/DialogPages/NotionSignInDialog.axaml.cs:126"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Views/DialogPages/PackageDetailsWindow.axaml.cs","line":1011,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Views/DialogPages/PackageDetailsWindow.axaml.cs:1011"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Views/MainWindow.axaml.cs","line":763,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Views/MainWindow.axaml.cs:763"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Views/MainWindow.axaml.cs","line":816,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Views/MainWindow.axaml.cs:816"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Views/MainWindow.axaml.cs","line":1018,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Views/MainWindow.axaml.cs:1018"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Views/MainWindow.axaml.cs","line":1196,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Views/MainWindow.axaml.cs:1196"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Views/MainWindow.axaml.cs","line":1245,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Views/MainWindow.axaml.cs:1245"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Views/SoftwarePages/CatalogEditorPage.cs","line":365,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Views/SoftwarePages/CatalogEditorPage.cs:365"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Views/SoftwarePages/PackageBundlesPage.cs","line":280,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Views/SoftwarePages/PackageBundlesPage.cs:280"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Views/SoftwarePages/PackageBundlesPage.cs","line":336,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Views/SoftwarePages/PackageBundlesPage.cs:336"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Views/SoftwarePages/PackageBundlesPage.cs","line":572,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Views/SoftwarePages/PackageBundlesPage.cs:572"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Avalonia/Views/SoftwarePages/PackageBundlesPage.cs","line":584,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Avalonia/Views/SoftwarePages/PackageBundlesPage.cs:584"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Core.Data/CoreCredentialStore.cs","line":40,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Core.Data/CoreCredentialStore.cs:40"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Core.Data/CoreCredentialStore.cs","line":61,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Core.Data/CoreCredentialStore.cs:61"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Core.Data/CoreCredentialStore.cs","line":92,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Core.Data/CoreCredentialStore.cs:92"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Core.Data/CoreData.cs","line":34,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Core.Data/CoreData.cs:34"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Core.Data/CoreData.cs","line":176,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Core.Data/CoreData.cs:176"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Core.Data/CoreData.cs","line":202,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Core.Data/CoreData.cs:202"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Core.Data/CoreData.cs","line":209,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Core.Data/CoreData.cs:209"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Core.Data/CoreData.cs","line":217,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Core.Data/CoreData.cs:217"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Core.Data/CoreData.cs","line":222,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Core.Data/CoreData.cs:222"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Core.Data/CoreData.cs","line":227,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Core.Data/CoreData.cs:227"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Core.Data/CoreData.cs","line":703,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Core.Data/CoreData.cs:703"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Core.IconStore/IconCacheEngine.cs","line":178,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Core.IconStore/IconCacheEngine.cs:178"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Core.IconStore/IconCacheEngine.cs","line":243,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Core.IconStore/IconCacheEngine.cs:243"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Core.IconStore/IconCacheEngine.cs","line":252,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Core.IconStore/IconCacheEngine.cs:252"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Core.IconStore/IconCacheEngine.cs","line":296,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Core.IconStore/IconCacheEngine.cs:296"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Core.IconStore/IconCacheEngine.cs","line":302,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Core.IconStore/IconCacheEngine.cs:302"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Core.IconStore/IconCacheEngine.cs","line":349,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Core.IconStore/IconCacheEngine.cs:349"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Core.IconStore/IconCacheEngine.cs","line":357,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Core.IconStore/IconCacheEngine.cs:357"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Core.IconStore/IconCacheEngine.cs","line":364,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Core.IconStore/IconCacheEngine.cs:364"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Core.IconStore/IconCacheEngine.cs","line":381,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Core.IconStore/IconCacheEngine.cs:381"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Core.IconStore/IconCacheEngine.cs","line":401,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Core.IconStore/IconCacheEngine.cs:401"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Core.IconStore/IconCacheEngine.cs","line":421,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Core.IconStore/IconCacheEngine.cs:421"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Core.IconStore/IconCacheEngine.cs","line":439,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Core.IconStore/IconCacheEngine.cs:439"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Core.IconStore/IconCacheEngine.cs","line":460,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Core.IconStore/IconCacheEngine.cs:460"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Core.LanguageEngine/LanguageData.cs","line":126,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Core.LanguageEngine/LanguageData.cs:126"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Core.LanguageEngine/LanguageEngine.cs","line":64,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Core.LanguageEngine/LanguageEngine.cs:64"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Core.LanguageEngine/LanguageEngine.cs","line":84,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Core.LanguageEngine/LanguageEngine.cs:84"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Core.LanguageEngine/LanguageEngine.cs","line":161,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Core.LanguageEngine/LanguageEngine.cs:161"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Core.LanguageEngine/LanguageEngine.cs","line":176,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Core.LanguageEngine/LanguageEngine.cs:176"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Core.LanguageEngine/LanguageEngine.cs","line":187,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Core.LanguageEngine/LanguageEngine.cs:187"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Core.LanguageEngine/LanguageEngine.cs","line":248,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Core.LanguageEngine/LanguageEngine.cs:248"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Core.Logger/AppPaths.cs","line":155,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Core.Logger/AppPaths.cs:155"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Core.Logger/AppPaths.cs","line":189,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Core.Logger/AppPaths.cs:189"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Core.Logger/AppPaths.cs","line":362,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Core.Logger/AppPaths.cs:362"},{"rule_id":"opengrep/csharp.lang.best-practice.structured-logging","severity":"low","message":"String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging library. This reduces the possibility of log injection and make","path":"src/UniGetUI.Core.SecureSettings/SecureGHTokenManager.cs","line":52,"fingerprint":"csharp.lang.best-practice.structured-logging:src/UniGetUI.Core.SecureSettings/SecureGHTokenManager.cs:52"}],"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":1.0,"check:tests_cochange":1.0,"test_lines":110525.0,"source_lines":206797.0,"test_ratio":0.5345,"ci_files":11.0,"cochange_share":0.69,"cochange_commits":229.0},"findings":[],"evidence":[{"kind":"ci","description":"CI config: .github/workflows/agent-eval.yml","ref":".github/workflows/agent-eval.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/agent-implement-ticket.yml","ref":".github/workflows/agent-implement-ticket.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/build-release.yml","ref":".github/workflows/build-release.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/cli-headless-e2e.yml","ref":".github/workflows/cli-headless-e2e.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/codeql.yml","ref":".github/workflows/codeql.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/desktop-smoke.yml","ref":".github/workflows/desktop-smoke.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/dotnet-test.yml","ref":".github/workflows/dotnet-test.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/issue-triage.lock.yml","ref":".github/workflows/issue-triage.lock.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/pr-labeler.yml","ref":".github/workflows/pr-labeler.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/translation-sync.yml","ref":".github/workflows/translation-sync.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI runs tests (dotnet test, unittest)","ref":null,"url":null,"weight":0.0},{"kind":"ci","description":"CI runs linters (shellcheck, dotnet format)","ref":null,"url":null,"weight":0.0}],"data":{"test_commands":["dotnet test","unittest"],"lint_commands":["shellcheck","dotnet format"]},"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":0.0,"readme_lines":184.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}],"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":95933.0,"other_lines":110864.0,"files_blamed":1009.0,"blame_failures":0.0,"quality:ai_findings":79.0,"quality:ai_per_kloc":0.823,"quality:other_findings":121.0,"quality:other_per_kloc":1.091,"quality:ratio":0.75,"security:ai_findings":8.0,"security:ai_per_kloc":0.083,"security:other_findings":3.0,"security:other_per_kloc":0.027,"security:ratio":3.07},"findings":[],"evidence":[],"data":{"sampled":false,"comparable":true},"error":null}],"flags":[]}