Sha256: d875733f45bd0d41f59297c5801f9995f1ae93cdb31bd2af2e983365684c9430
Contents?: true
Size: 1.6 KB
Versions: 1
Compression:
Stored size: 1.6 KB
Contents
class Bot attr_reader :organization def initialize(organization, gh_token) @organization = organization @gh_client = Octokit::Client.new(access_token: gh_token) end def clonar_entrega!(nombre) result = @gh_client.search_repositories "org:#{@organization} #{nombre} in:name", {per_page: 200} puts "Encontrados #{result.total_count} repositorios." FileUtils.mkdir_p nombre Dir.chdir(nombre) do result.items.each do |repo| puts "Clonando #{repo.name}..." Git.clone repo.ssh_url, repo.name end end end def preparar_correccion!(entrega, commit_base) entrega.crear_branch! 'base', commit_base entrega.crear_branch! 'entrega', 'master' renombrar_proyecto_wollok! entrega publicar_cambios! entrega crear_pull_request! entrega end def nombre 'Yanapiri Bot' end def email 'bot@yanapiri.org' end def git_author "#{nombre} <#{email}>" end def github_user @gh_client.user end private def crear_pull_request!(entrega) @gh_client.create_pull_request("#{@organization}/#{entrega.id}", "base", "entrega", "Corrección", entrega.mensaje_pull_request) rescue nil end def renombrar_proyecto_wollok!(entrega) entrega.repo.chdir do xml = File.read proyecto_wollok File.open(proyecto_wollok, "w") {|file| file.puts xml.sub(/<name>.*<\/name>/, "<name>#{entrega.id}</name>") } end entrega.repo.commit_all 'Renombrado proyecto Wollok', author: git_author end def publicar_cambios!(entrega) entrega.repo.push 'origin', '--all' end def proyecto_wollok '.project' end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
yanapiri-0.1.0 | lib/yanapiri/bot.rb |