Class: Intigriti::Programs

Inherits:
Object
  • Object
show all
Defined in:
lib/scopes_extractor/platforms/intigriti/programs.rb

Overview

Intigrit Sync Programs

Class Method Summary collapse

Class Method Details

.parse_programs(programs, options, results, token) ⇒ Object



16
17
18
19
20
21
22
23
24
25
# File 'lib/scopes_extractor/platforms/intigriti/programs.rb', line 16

def self.parse_programs(programs, options, results, token)
  programs.each do |program|
    next if options[:skip_vdp] && !program['maxBounty']['value'].positive?
    next if program['status'] == 4 # Suspended

    results[program['name']] = program_info(program)
    results[program['name']]['scopes'] =
      Scopes.sync({ handle: program['handle'], company: program['companyHandle'] }, token)
  end
end

.program_info(program) ⇒ Object



27
28
29
30
31
32
33
# File 'lib/scopes_extractor/platforms/intigriti/programs.rb', line 27

def self.program_info(program)
  {
    slug: program['handle'],
    enabled: true,
    private: program['confidentialityLevel'] != 4 # == public
  }
end

.sync(results, options, token) ⇒ Object



8
9
10
11
12
13
14
# File 'lib/scopes_extractor/platforms/intigriti/programs.rb', line 8

def self.sync(results, options, token)
  response = HttpClient.get('https://api.intigriti.com/core/researcher/programs', token)
  return unless response&.code == 200

  programs = JSON.parse(response.body)
  parse_programs(programs, options, results, token)
end