class PrMigrator::Export
Attributes
client[RW]
exported_prs[RW]
failed_prs[RW]
folder_name_for_exported_files[RW]
pr_numbers[RW]
repo_name[RW]
Public Class Methods
new(options = {})
click to toggle source
# File lib/pr_migrator/export.rb, line 11 def initialize(options = {}) @client = Octokit::Client.new(access_token: PrMigrator.configuration.source_access_token) @repo_name = options[:repo_name] @pr_numbers = options[:pr_numbers] @folder_name_for_exported_files = "export_#{SecureRandom.urlsafe_base64(5)}" @failed_prs = [] @exported_prs = [] end
Public Instance Methods
start()
click to toggle source
Start the process of exporting The exported files will be json files
# File lib/pr_migrator/export.rb, line 22 def start Dir.mkdir(File.join(Dir.getwd, @folder_name_for_exported_files)) Parallel.map(@pr_numbers, in_processes: 10 ) do |pr_number| begin response = @client.pull_request(@repo_name, pr_number) File.open("#{@folder_name_for_exported_files}/pr-#{pr_number}.json","w") do |f| f.write(JSON.pretty_generate(response.to_attrs)) end @exported_prs << pr_number rescue @failed_prs << pr_number end sleep 2 end puts "PR's exported were: #{@exported_prs}" puts "PR's Not exported were :#{@failed_prs}" end