class Dependabot::SecurityAdvisory

def fixed_by?(dependency)

def fixed_by?(dependency)
  # Handle case mismatch between the security advisory and parsed name
  return false unless dependency_name.casecmp(dependency.name)&.zero?
  return false unless package_manager == dependency.package_manager
  # TODO: Support no previous version to the same level as dependency graph
  # and security alerts. We currently ignore dependency updates without a
  # previous version because we don't know if the dependency was vulnerable.
  return false unless dependency.previous_version
  return false unless version_class.correct?(dependency.previous_version)
  # Ignore deps that weren't previously vulnerable
  return false unless affects_version?(T.must(dependency.previous_version))
  # Removing a dependency is a way to fix the vulnerability
  return true if dependency.removed?
  # Select deps that are now fixed
  !affects_version?(T.must(dependency.version))
end