Тормоз не пропускает Gemfile.lock с параметром --skip-files - PullRequest
0 голосов
/ 12 июня 2018

Я добавляю Brakeman в продукт Rails, но столкнулся с проблемой.Я хочу, чтобы он игнорировал мои Gemfile и Gemfile.lock, но когда я запускаю его с помощью команды, такой как

brakeman --skip-files Gemfile.lock,Gemfile

, он все равно касается файлов.Мы используем другие системы для мониторинга наших драгоценных камней, но нельзя ли полностью игнорировать файлы драгоценных камней?Я могу, конечно, использовать файл brakeman.ignore, но предпочел бы этого не делать.Спасибо за любую помощь.

1 Ответ

0 голосов
/ 16 июня 2018

Я считаю, что это проверка, на которую вы ссылаетесь: https://github.com/presidentbeef/brakeman/blob/master/lib/brakeman/scanner.rb#L39-L40

Brakeman.notify "Processing gems..."
process_gems

Здесь определена функция process_gems: https://github.com/presidentbeef/brakeman/blob/master/lib/brakeman/scanner.rb#L131-L152

  #Process Gemfile
  def process_gems
    gem_files = {}
    if @app_tree.exists? "Gemfile"
      gem_files[:gemfile] = { :src => parse_ruby(@app_tree.read("Gemfile")), :file => "Gemfile" }
    elsif @app_tree.exists? "gems.rb"
      gem_files[:gemfile] = { :src => parse_ruby(@app_tree.read("gems.rb")), :file => "gems.rb" }
    end

    if @app_tree.exists? "Gemfile.lock"
      gem_files[:gemlock] = { :src => @app_tree.read("Gemfile.lock"), :file => "Gemfile.lock" }
    elsif @app_tree.exists? "gems.locked"
      gem_files[:gemlock] = { :src => @app_tree.read("gems.locked"), :file => "gems.locked" }
    end

    if gem_files[:gemfile] or gem_files[:gemlock]
      @processor.process_gems gem_files
    end
  rescue => e
    Brakeman.notify "[Notice] Error while processing Gemfile."
    tracker.error e.exception(e.message + "\nWhile processing Gemfile"), e.backtrace
  end

AppTree ::существует?здесь определена функция: https://github.com/presidentbeef/brakeman/blob/master/lib/brakeman/app_tree.rb#L82-L84

def exists?(path)
  File.exist?(File.join(@root, path))
end

Здесь определена функция GemProcessor :: process_gems: https://github.com/presidentbeef/brakeman/blob/master/lib/brakeman/processors/gem_processor.rb#L11

...lots of code...

Я не вижу ни одного кода, который бы пропустил этофункциональность, если определенный тормоз предоставляется тормозному механизму.Это также выглядит как AppTree :: Существует?функция не учитывает, был ли предоставлен файл для опции --skip-files.

К сожалению, я считаю, что текущий ответ таков: вы не можете полностью игнорировать файлы gem.

Вы можете создать PR, чтобы сделать то, что вы хотите, и посмотреть, если команда Brakeman включит его в следующую сборку: https://brakemanscanner.org/docs/contributing/

Дайте нам знать, если вы найдете способ решить вашу проблему.

...