debian-mirror-gitlab/lib/bulk_imports/path_normalization.rb
2023-06-20 00:43:36 +05:30

32 lines
879 B
Ruby

# frozen_string_literal: true
module BulkImports
module PathNormalization
private
def normalize_path(path)
path = path.parameterize.downcase
return path if path =~ Gitlab::Regex.oci_repository_path_regex
# remove invalid characters from end and start of path
delete_invalid_edge_characters(delete_invalid_edge_characters(path))
# remove invalid multiplied characters
delete_invalid_multiple_characters(path)
end
def delete_invalid_edge_characters(path)
path.reverse!
path.each_char do |char|
break path unless char.match(Gitlab::Regex.oci_repository_path_regex).nil?
path.delete_prefix!(char)
end
end
def delete_invalid_multiple_characters(path)
path.gsub!('-_', '-') if path.include?('-_')
path.gsub!('_-', '-') if path.include?('_-')
path
end
end
end