def lints_and_stats(lint_by_path = false, git_shas = compare, nuclear = false)
      return false if git_shas.blank?

      base_branch = branch
      git_ouput = {}

      git_shas.each do |sha, exts|
        create_branch(sha) unless @psuedo_commit
        sha = sha.to_s
        puts sha.color(:blue)

        exts.each do |ext, files|
          # For relevant_lines data
          lint_opts = {
            git_files: files,
            config: @config,
            file_paths: (lint_file_paths(files, ext) if lint_by_path)
          }

          git_ouput[sha] = nuclear ? lints_and_stats_nuclear(lint_opts) : lints_and_stats_switch(ext, lint_opts)

        end

        destroy_branch(base_branch, sha) unless @psuedo_commit
      end

      git_ouput
    end
def lints_and_stats(lint_by_path = false, git_shas = compare, nuclear = false)
      return false if git_shas.blank?

      base_branch = branch
      git_ouput = {}

      git_shas.each do |sha, exts|
        create_branch(sha) unless @psuedo_commit
        sha = sha.to_s
        puts sha.color(:blue)

        exts.each do |ext, files|
          # For relevant_lines data
          lint_opts = {
            git_files: files,
            config: @config,
            file_paths: (lint_file_paths(files, ext) if lint_by_path)
          }

          git_ouput[sha] = nuclear ? lints_and_stats_nuclear(lint_opts) : lints_and_stats_switch(ext, lint_opts)

        end

        destroy_branch(base_branch, sha) unless @psuedo_commit
      end

      git_ouput
    end
Run appropriate lint for every sha in commit history.
 For each sha a new branch is created then deleted

 @example sample output
   {
     'sha': {
       lints: {
         scsslint: {
           files_inspec...
         },
       },
       statisti...
     },
     'sha'...
   }

 @see compare
 @param lint_by_path [Boolean] only lint by files in git commit and
   not the commit as a whole
 @param git_shas [Hash] (#compare) a hash of gitcommit shas
   and relevant file types in the commit
 @param nuclear [Boolean] do everything regardless of what's in the commit
 @return [Hash] data all data grouped by task