Module: Gitrob::CLI::Commands::Analyze::Analysis
- Included in:
- Gitrob::CLI::Commands::Analyze
- Defined in:
- lib/gitrob/cli/commands/analyze/analysis.rb
Instance Method Summary collapse
- #analyze_blobs(blobs, db_repo, db_owner, progress) ⇒ Object
- #analyze_repositories ⇒ Object
- #report_findings(finding_count, repo, progress) ⇒ Object
Instance Method Details
#analyze_blobs(blobs, db_repo, db_owner, progress) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/gitrob/cli/commands/analyze/analysis.rb', line 23 def analyze_blobs(blobs, db_repo, db_owner, progress) findings = 0 blobs.each do |blob| db_blob = @db_assessment.save_blob(blob, db_repo, db_owner) Gitrob::BlobObserver.observe(db_blob) if db_blob.flags.count > 0 findings += 1 @db_assessment.findings_count += 1 db_owner.findings_count += 1 db_repo.findings_count += 1 end end db_owner.save db_repo.save progress.increment report_findings(findings, db_repo, progress) rescue => e progress.error("#{e.class}: #{e.}") end |
#analyze_repositories ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/gitrob/cli/commands/analyze/analysis.rb', line 6 def analyze_repositories do |progress| github_data_manager.owners.each do |owner| @db_owner = @db_assessment.save_owner(owner) thread_pool do |pool| repositories_for_owner(owner).each do |repo| pool.process do db_repo = @db_assessment.save_repository(repo, @db_owner) blobs = blobs_for_repository(repo) analyze_blobs(blobs, db_repo, @db_owner, progress) end end end end end end |
#report_findings(finding_count, repo, progress) ⇒ Object
43 44 45 46 47 48 49 |
# File 'lib/gitrob/cli/commands/analyze/analysis.rb', line 43 def report_findings(finding_count, repo, progress) return if finding_count.zero? files = finding_count == 1 ? "1 file" : "#{finding_count} files" progress.info( "Flagged #{files.to_s.light_yellow} " \ "in #{repo.full_name.bold}") end |