def identify_manifests(file_list)
      ignored_dirs_with_slash = ignored_dirs.map { |d| if d.end_with?("/") then d else d + "/" end }
      allowed_file_list = file_list.reject do |f|
        ignored_dirs.include?(f) || f.start_with?(*ignored_dirs_with_slash)
      end
      allowed_file_list = allowed_file_list.reject{|f| ignored_files.include?(f)}
      package_managers.map do |pm|
        allowed_file_list.select do |file_path|
          # this is a call to match? without file contents, which will skip
          # ambiguous filenames that are only possibly a manifest
          pm.match?(file_path)
        end
      end.flatten.uniq.compact
    end
def identify_manifests(file_list)
      ignored_dirs_with_slash = ignored_dirs.map { |d| if d.end_with?("/") then d else d + "/" end }
      allowed_file_list = file_list.reject do |f|
        ignored_dirs.include?(f) || f.start_with?(*ignored_dirs_with_slash)
      end
      allowed_file_list = allowed_file_list.reject{|f| ignored_files.include?(f)}
      package_managers.map do |pm|
        allowed_file_list.select do |file_path|
          # this is a call to match? without file contents, which will skip
          # ambiguous filenames that are only possibly a manifest
          pm.match?(file_path)
        end
      end.flatten.uniq.compact
    end
this skips manifests sometimes because it doesn't look at file
 contents and can't establish from only regexes that the thing
 is a manifest. We exclude rather than include ambiguous filenames
 because this API is used by libraries.io and we don't want to
 download all .xml files from GitHub.