applyMagnitudeOverrides function

void applyMagnitudeOverrides(
  1. List<ApiChange> changes,
  2. ApiGuardConfig config
)

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
      }
    }
  }
}