#!/usr/bin/env ruby # lib/rspec_flaky/flaky_examples_collection.rb is requiring # `active_support/hash_with_indifferent_access`, and we install the `activesupport` # gem manually on the CI require 'rubygems' # In newer Ruby, alias_method is not private then we don't need __send__ singleton_class.__send__(:alias_method, :require_dependency, :require) # rubocop:disable GitlabSecurity/PublicSend $:.unshift(File.expand_path('../lib', __dir__)) require 'rspec_flaky/report' report_file = ARGV.shift unless report_file puts 'usage: prune-old-flaky-specs ' exit 1 end new_report_file = ARGV.shift || report_file report = RspecFlaky::Report.load(report_file) puts "Loading #{report_file}..." puts "Current report has #{report.size} entries." new_report = report.prune_outdated puts "New report has #{new_report.size} entries: #{report.size - new_report.size} entries older than 90 days were removed." puts "Saved #{new_report_file}." if new_report.write(new_report_file)