diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-06-08 04:22:49 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-06-08 04:23:11 +0900 |
| commit | 632c9793927a30c4bca3c91888e66b369d732dfe (patch) | |
| tree | 5bafb9d7fa2523d5a2f8d70ff59c3173e962e389 /crates/shirabe/src/command/audit_command.rs | |
| parent | 243450fee9853c2fea66ae0642dabb8db5227d6f (diff) | |
| download | php-shirabe-632c9793927a30c4bca3c91888e66b369d732dfe.tar.gz php-shirabe-632c9793927a30c4bca3c91888e66b369d732dfe.tar.zst php-shirabe-632c9793927a30c4bca3c91888e66b369d732dfe.zip | |
feat(phase-c): resolve PhpMixed-conversion phase-b TODOs
Implement the foundational PhpMixed conversion infrastructure
(From<bool|i64|f64|String>, order-sensitive PartialEq matching PHP ===)
and resolve the category-G phase-b TODOs that depend on it:
- Fix VCS driver cache paths that discarded parsed JSON or diverged on
null caches (svn/forgejo/gitlab/git-bitbucket/github).
- Wire up real conversions previously stubbed or dropped: suggests
platform config, audit ignore-severities, composer_repository search
and ProviderInfo, class_loader prefix/classmap merges, locker lock
diff comparison, advisory JSON serialization, SPDX license fields.
- Make GenericRule take a typed ReasonData; populate RULE_ROOT_REQUIRE
with the constraint and convert PhpMixed at the call sites.
Diffstat (limited to 'crates/shirabe/src/command/audit_command.rs')
| -rw-r--r-- | crates/shirabe/src/command/audit_command.rs | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/crates/shirabe/src/command/audit_command.rs b/crates/shirabe/src/command/audit_command.rs index 2d25052..20532f1 100644 --- a/crates/shirabe/src/command/audit_command.rs +++ b/crates/shirabe/src/command/audit_command.rs @@ -113,10 +113,19 @@ impl AuditCommand { let abandoned = abandoned.unwrap_or_else(|| audit_config.audit_abandoned.clone()); - let ignore_severities = array_merge( - array_fill_keys(input.borrow().get_option("ignore-severity"), PhpMixed::Null), - PhpMixed::from(audit_config.ignore_severity_for_audit.clone()), - ); + let mut ignore_severities: indexmap::IndexMap<String, Option<String>> = + indexmap::IndexMap::new(); + let cli_severities = input.borrow().get_option("ignore-severity"); + if let Some(list) = cli_severities.as_list() { + for sev in list { + if let Some(s) = sev.as_string() { + ignore_severities.insert(s.to_string(), None); + } + } + } + for (k, v) in audit_config.ignore_severity_for_audit.clone() { + ignore_severities.insert(k, v); + } let ignore_unreachable = input .borrow() .get_option("ignore-unreachable") @@ -125,8 +134,6 @@ impl AuditCommand { || audit_config.ignore_unreachable; let audit_format = self.get_audit_format(input, "format")?; - // TODO(phase-b): ignore_severities is PhpMixed; need conversion to IndexMap<String, Option<String>> - let _ = ignore_severities; Ok(auditor .audit( &mut *self.get_io().borrow_mut(), @@ -136,7 +143,7 @@ impl AuditCommand { false, audit_config.ignore_list_for_audit.clone(), &abandoned, - indexmap::IndexMap::new(), + ignore_severities, ignore_unreachable, audit_config.ignore_abandoned_for_audit.clone(), )? |
