Class: GemXray::Analyzers::ArchiveAnalyzer

Inherits:
Base
  • Object
show all
Defined in:
lib/gemxray/analyzers/archive_analyzer.rb

Constant Summary

Constants inherited from Base

Base::AUTOLOADED_GEMS

Instance Method Summary collapse

Methods inherited from Base

#initialize

Constructor Details

This class inherits a constructor from GemXray::Analyzers::Base

Instance Method Details

#analyze(gems) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/gemxray/analyzers/archive_analyzer.rb', line 6

def analyze(gems)
  token = config.archive_github_token
  overrides = config.archive.fetch(:overrides, {})
  finder = RepositoryFinder.new(overrides: overrides)
  checker = ArchiveChecker.new(token: token)

  gems.filter_map do |gem_entry|
    next if skipped?(gem_entry)

    owner_repo = finder.find(gem_entry.name)
    next unless owner_repo

    result = checker.check(owner_repo)
    next unless result.archived

    build_result(
      gem_entry: gem_entry,
      type: :archived,
      severity: :warning,
      detail: "source repository is archived: #{owner_repo}"
    )
  end
end