applyMagnitudeOverrides function
Implementation
void applyMagnitudeOverrides(List<ApiChange> changes, ApiGuardConfig config) {
for (final change in changes) {
for (final override in config.magnitudeOverrides) {
if (_matches(override, change)) {
final magnitude = ApiChangeMagnitude.values.firstWhereOrNull(
(e) => e.name == override.magnitude,
);
if (magnitude != null) {
final originalMagnitude = change.getMagnitude();
change.overrideMagnitude(magnitude);
logger.detail(
'Overriding magnitude for ${change.component.name} '
'(${change.operation.name}) from ${originalMagnitude.name} '
'to ${magnitude.name} (Rule: ${override.description ?? override.operations.join(", ")})',
);
} else {
logger.detail(
'WARNING: Invalid magnitude "${override.magnitude}" in override for '
'${change.component.name} (${change.operation.name}). Skipping magnitude override.',
);
}
break; // Stop after the first matching override
}
}
}
}