Class: YAVDB::Sources::Victims::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/yavdb/sources/victims.rb

Defined Under Namespace

Classes: Language

Constant Summary collapse

REPOSITORY_URL =
'https://github.com/victims/victims-cve-db'.freeze
LANGUAGES =
[
  Language.new('java', 'maven', lambda { |affected_package| "#{affected_package['groupId']}:#{affected_package['artifactId']}" }),
  Language.new('python', 'pypi', lambda { |affected_package| affected_package['name'] })
]

Class Method Summary collapse

Class Method Details

.advisoriesObject



37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/yavdb/sources/victims.rb', line 37

def self.advisories
  LANGUAGES.map do |language|
    glob = language_glob(language.name)
    YAVDB::SourceTypes::GitRepo.search(glob, REPOSITORY_URL).map do |repo_path, file_paths|
      Dir.chdir(repo_path) do
        file_paths.map do |file_path|
          advisory_hash = YAML.load_file(file_path)
          url           = "#{REPOSITORY_URL}/blob/master/#{file_path}"
          create(advisory_hash, language, url)
        end
      end
    end
  end.flatten
end