class RuboCop::Formatter::GitHubActionsFormatter

in GitHub check annotations when run within GitHub Actions.
This formatter formats report data as GitHub Workflow commands resulting

def file_finished(file, offenses)

def file_finished(file, offenses)
  @offenses_for_files[file] = offenses unless offenses.empty?
end

def finished(_inspected_files)

def finished(_inspected_files)
  @offenses_for_files.each do |file, offenses|
    offenses.each do |offense|
      report_offense(file, offense)
    end
  end
  output.puts
end

def github_escape(string)

def github_escape(string)
  string.gsub(Regexp.union(ESCAPE_MAP.keys), ESCAPE_MAP)
end

def github_severity(offense)

def github_severity(offense)
  offense.severity < minimum_severity_to_fail ? 'warning' : 'error'
end

def minimum_severity_to_fail

def minimum_severity_to_fail
  @minimum_severity_to_fail ||= begin
    # Unless given explicitly as `fail_level`, `:info` severity offenses do not fail
    name = options.fetch(:fail_level, :refactor)
    RuboCop::Cop::Severity.new(name)
  end
end

def report_offense(file, offense)

def report_offense(file, offense)
  output.printf(
    "\n::%<severity>s file=%<file>s,line=%<line>d,col=%<column>d::%<message>s",
    severity: github_severity(offense),
    file: PathUtil.smart_path(file),
    line: offense.line,
    column: offense.real_column,
    message: github_escape(offense.message)
  )
end

def started(_target_files)

def started(_target_files)
  @offenses_for_files = {}
end