Class: Bugcrowd::Programs
- Inherits:
-
Object
- Object
- Bugcrowd::Programs
- Defined in:
- lib/scopes_extractor/platforms/bugcrowd/programs.rb
Overview
Bugcrowd Sync Programs
Class Method Summary collapse
- .parse_programs(programs, options, results, cookie) ⇒ Object
- .program_info(program) ⇒ Object
- .sync(results, options, cookie, page_id = 1) ⇒ Object
Class Method Details
.parse_programs(programs, options, results, cookie) ⇒ Object
20 21 22 23 24 25 26 27 28 |
# File 'lib/scopes_extractor/platforms/bugcrowd/programs.rb', line 20 def self.parse_programs(programs, , results, ) programs.each do |program| next if program['status'] == 4 # Disabled next if program['min_rewards'].nil? && [:skip_vdp] results[program['name']] = program_info(program) results[program['name']]['scopes'] = Scopes.sync(program_info(program), ) end end |
.program_info(program) ⇒ Object
30 31 32 33 34 35 36 |
# File 'lib/scopes_extractor/platforms/bugcrowd/programs.rb', line 30 def self.program_info(program) { slug: program['code'], enabled: true, private: false } end |
.sync(results, options, cookie, page_id = 1) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/scopes_extractor/platforms/bugcrowd/programs.rb', line 8 def self.sync(results, , , page_id = 1) response = HttpClient.get( "https://bugcrowd.com/programs.json?page[]=#{page_id}&waitlistable[]=false&joinable[]=false", ) return unless response&.code == 200 body = JSON.parse(response.body) parse_programs(body['programs'], , results, ) sync(results, , , page_id + 1) unless page_id == body['meta']['totalPages'] end |