aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/command/audit_command.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-06-08 04:22:49 +0900
committernsfisis <nsfisis@gmail.com>2026-06-08 04:23:11 +0900
commit632c9793927a30c4bca3c91888e66b369d732dfe (patch)
tree5bafb9d7fa2523d5a2f8d70ff59c3173e962e389 /crates/shirabe/src/command/audit_command.rs
parent243450fee9853c2fea66ae0642dabb8db5227d6f (diff)
downloadphp-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.rs21
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(),
)?