diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-05-08 23:45:50 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-05-08 23:45:50 +0900 |
| commit | 059d528b76914aaefebc42705984586ebb1c607a (patch) | |
| tree | ce8f196570273621c2dab859e1c763fa41d54fb0 /crates/mozart-registry | |
| parent | 18d5a78fee75e0a466355e6edfb634d8f7a7565a (diff) | |
| download | php-mozart-059d528b76914aaefebc42705984586ebb1c607a.tar.gz php-mozart-059d528b76914aaefebc42705984586ebb1c607a.tar.zst php-mozart-059d528b76914aaefebc42705984586ebb1c607a.zip | |
refactor(advisory): fix clippy warnings
Implement std::str::FromStr for AuditFormat and AbandonedHandling
instead of ad-hoc from_str methods (resolves should_implement_trait).
Group Auditor::audit() parameters into AuditOptions to resolve
too_many_arguments.
Diffstat (limited to 'crates/mozart-registry')
| -rw-r--r-- | crates/mozart-registry/src/advisory.rs | 36 |
1 files changed, 23 insertions, 13 deletions
diff --git a/crates/mozart-registry/src/advisory.rs b/crates/mozart-registry/src/advisory.rs index 8cf112e..894a0ac 100644 --- a/crates/mozart-registry/src/advisory.rs +++ b/crates/mozart-registry/src/advisory.rs @@ -66,6 +66,17 @@ pub struct AbandonedPackage { pub replacement: Option<String>, } +/// Options passed to `Auditor::audit()`. +pub struct AuditOptions<'a> { + pub format: AuditFormat, + pub warning_only: bool, + pub ignore_list: &'a IndexMap<String, Option<String>>, + pub abandoned: AbandonedHandling, + pub ignored_severities: &'a IndexMap<String, Option<String>>, + pub ignore_unreachable: bool, + pub ignore_abandoned: &'a IndexMap<String, Option<String>>, +} + /// Mirrors `Composer\Advisory\Auditor`. pub struct Auditor; @@ -82,34 +93,33 @@ impl Auditor { console: &Console, repo_set: &RepositorySet, packages: &[PackageInfo], - format: AuditFormat, - warning_only: bool, - ignore_list: &IndexMap<String, Option<String>>, - abandoned: AbandonedHandling, - ignored_severities: &IndexMap<String, Option<String>>, - ignore_unreachable: bool, - ignore_abandoned: &IndexMap<String, Option<String>>, + options: &AuditOptions<'_>, ) -> anyhow::Result<u8> { + let format = options.format; let (all_advisories, unreachable_repos) = repo_set .get_matching_security_advisories( packages, format == AuditFormat::Summary, - ignore_unreachable, + options.ignore_unreachable, ) .await?; let ProcessedAdvisories { advisories, ignored_advisories, - } = self.process_advisories(all_advisories, ignore_list, ignored_severities); + } = self.process_advisories( + all_advisories, + options.ignore_list, + options.ignored_severities, + ); - let abandoned_packages = if abandoned == AbandonedHandling::Ignore { + let abandoned_packages = if options.abandoned == AbandonedHandling::Ignore { vec![] } else { - self.filter_abandoned_packages(packages, ignore_abandoned) + self.filter_abandoned_packages(packages, options.ignore_abandoned) }; - let abandoned_count = if abandoned == AbandonedHandling::Fail { + let abandoned_count = if options.abandoned == AbandonedHandling::Fail { abandoned_packages.len() } else { 0 @@ -159,7 +169,7 @@ impl Auditor { let msg = format!( "Found {active_total} security vulnerability advisor{plurality} affecting {active_pkg_count} package{pkg_plurality}{punctuation}" ); - if warning_only { + if options.warning_only { console_writeln_error!(console, &console_format!("<warning>{msg}</warning>")); } else { console_writeln_error!(console, &console_format!("<error>{msg}</error>")); |
